Looking for the plugin's configuration parameters? You can find them in the OpenID Connect configuration reference doc.
OpenID Connect (1.0) プラグイン(OIDCとも呼ばれます)は、標準化された方法でサードパーティのアイデンティティプロバイダ(IdP) との統合を可能にします。このプラグインは、Kongを(プロキシされた)OAuth 2.0のリソースサーバー(RS)やクライアントとアップストリームサービス間のOpenID Connectリライングパーティ(RP)として実装するために使用できます。
このプラグインは、数種類の認証情報と権限をサポートしており、いくつかのOpenID Connectプロバイダでテストされています。 すべてを確認するには、サポートリファレンスを参照してください。
OpenID Connectについて
OpenID Connectは何をするものですか?
OpenID Connectは、 アイデンティティプロバイダ (IdP) との フェデレーション を形成する方法を提供します。アイデンティティプロバイダは、アカウント認証情報を保存するサードパーティです。 アイデンティティプロバイダがユーザーを認証すると、アプリケーションはそのプロバイダを信頼し、ユーザーへのアクセスを許可します。 IDプロバイダは、ユーザーの認証情報を保護し、信頼性を確保する責任を負うため、アプリケーションが単独でその責任を負う必要がなくなります。
OpenID Connectは、アイデンティティプロバイダに責任を委譲するだけでなく、ユーザーのローカルマシンに認証情報を保存せずにシングルサインオンを可能にします。
最後に、企業は1つの中央記録システムで多数のアプリケーションのアクセス制御を管理する必要が生じる場合があります。 たとえば、従業員がEメールアドレスとパスワードを使用してさまざまなアプリケーションにアクセスできるようにしたい場合などです。 また、アクセスを一元的に変更する必要(たとえば、従業員の退職や役職の変更など)が生じるかもしれません。 OpenID Connectは、さまざまなアプリケーションが同じサードパーティ ID プロバイダを通じてユーザーを認証する方法を提供することで、この問題に対処します。
KongのOpenID Connectプラグインは何をするものですか?
開発者は、OpenID Connectによって認証を他の当事者にオフロードできるようになるのと同様に、Kongによってプロセス全体をアプリケーションから分離できるようになります。 サービス内 でOpenID Connectのコードを手書きする必要はなく、Kongをサービスの前に配置し、Kongに認証を処理させることができます。 この分離により、開発者はアプリケーション内のビジネスロジックに集中できるようになります。 また、フロントドアでの認証を維持したまま、簡単にサービスを入れ替えることができ、 新しい サービスにも同じ認証を簡単に展開することができます。
Kongユーザーは、Key AuthやBasic Authなどの他の認証タイプよりもOpenID Connectを好むかもしれません。なぜなら、パスワードを保存するデータベースを管理する必要がないためです。代わりに、選択した信頼できるIDプロバイダにタスクを委任します。
OpenID Connectプラグインはさまざまなユースケースに適合し、JWT(JSON Web Token)や0Auth 2.0など他のプラグインにも拡張できますが、最も一般的な使用例は、認証コードフローです。
使用ガイドとデモ
以下の例はシンプルさを念頭に置いて構築されており、 実稼働環境向けではありません。 これらの例では
httpbin.org
がアップストリームサービスなので、情報が漏洩する可能性が高いため、プロダクションアイデンティティプロバイダーでこれらの例を実行 しない ことをお勧めします。例ではプレーンなHTTPプロトコルも使用していますが、本番環境では 絶対に使用しない でください。
フローやグラントを実施する前に、重要な設定パラメータを確認することをお勧めします。
認証フローとグラント
HTTPie を使用して例を実行します。読みやすくするために出力は省略されています。httpbin.orgはアップストリームサービスとして使用されます。
プラグインをテストするときはAdmin APIを使用すると便利ですが、宣言形式でも同様の設定をセットアップできます。
このプラグインが複数のグラント/フローで構成されている場合、認証情報の順序はハードコードされます。
- Session認証
- JWTアクセストークン認証
- Kong OAuthトークン認証
- イントロスペクション認証
- ユーザー情報認証
- リフレッシュトークンの付与
- パスワードの付与
- クライアント認証情報の付与
- 認証コードフロー
認証情報が見つかると、プラグインはそれ以上の検索を停止します。複数のグラントが同じ認証情報を共有する場合があります。たとえば、パスワードとクライアント認証情報の付与は、どちらもAuthorization
ヘッダーを介した基本的なアクセス認証を使用できます。
承認
OpenID Connectプラグインには、粗粒度の認証を行うための機能がいくつかあります。
Kong ManagerでのOIDC認証
Kong GatewayはOpenID Connectを使用してKong Managerを保護できます。 バックグラウンドでOpenID Connectプラグインを使用して、Kong Manager管理者の認証を組織の OpenID Connect Identityプロバイダにバインドする機能を提供します。
プラグインを直接設定する必要はありません。代わりに、 Kong Gatewayがkong.conf
の設定を通じてOIDCプラグインにアクセスします。
OIDCを使用してKong ManagerでRBACを設定するには、以下を参照してください。