旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。
Kong ManagerのOIDCを有効にする
Kong Gateway は、OpenID Connect プラグインを使用して、Kong Manager 管理者の認証を組織の OpenID Connect Identity プロバイダにバインドする機能を提供します。
注 :以下の設定を使用することで、OpenID Connect認証は Kong Managerで有効になります。Admin APIまたはKong Manager経由でOpenID Connectプラグインを手動で有効にする必要はありません。
OIDC を使用して RBAC を設定
以下は、Google を IdP として使用し、
デフォルトの URL http://127.0.0.1:8002
から Kong Manager を扱う例です。
admin_gui_auth_config
値は有効なJSONである必要があります。以下は構成の例です。
enforce_rbac = on
admin_gui_auth=openid-connect
admin_gui_session_conf = { "secret":"set-your-string-here" }
admin_gui_auth_conf={ \
"issuer": "https://accounts.google.com/", \
"client_id": ["<enter_your_client_id id="sl-md0000000">"], \
"client_secret": ["<enter_your_client_secret_here id="sl-md0000000">"], \
"consumer_by": ["username","custom_id"], \
"ssl_verify": false, \
"admin_claim": ["email"], \
"leeway": 60, \
"redirect_uri": ["http://localhost:8002/default"], \
"login_redirect_uri": ["http://localhost:8002/default"], \
"logout_methods": ["GET", "DELETE"], \
"logout_query_arg": "logout", \
"logout_redirect_uri": ["http://localhost:8002/default"], \
"scopes": ["openid","profile","email","offline_access"], \
"auth_methods": ["authorization_code"] \
}
セッションプラグイン (admin_gui_session_conf
で構成)にはシークレットが必要であり、デフォルトで安全に構成されています。
- どのような状況でも、
secret
は手動で文字列に設定する必要があります。 - HTTPS ではなく HTTP を使用する場合は、
cookie_secure
を手動でfalse
に設定する必要があります。 - Admin APIとKong Managerに異なるドメインを使用する場合は、
cookie_same_site
をLax
に設定する必要があります。
これらのプロパティの詳細については、Kong ManagerのSessionセキュリティを参照し、構成例を確認してください。
<>
で囲まれたエントリを、IdP に有効な値に置き換えます。
たとえば、Google の認証情報はここにあります:
https://console.cloud.google.com/projectselector/apis/credentials
管理者の作成
IDプロバイダーがログイン成功時に返すメールとユーザー名が 一致する管理者を作成してください。
curl -i -X POST http://localhost:8001/admins \
--data username="<admin_email id="sl-md0000000">" \
--data email="<admin_email id="sl-md0000000">" \
--header Kong-Admin-Token:<rbac_token id="sl-md0000000">
たとえば、あるユーザーのメールアドレスがexample_user@example.com
の場合:
curl -i -X POST http://localhost:8001/admins \
--data username="example_user@example_com" \
--data email="example_user@example.com" \
--header Kong-Admin-Token:<rbac_token id="sl-md0000000">
注: リクエストに入力されるアドミンのメールアドレスは招待メールを確実に受信するために使用されます。一方ユーザー名はプラグインがIdPと併用する属性です。
ロールを管理者に割り当て
新しいアドミンに少なくとも1つのロールを割り当てて、Kongエンティティにログインしてアクセスできるようにします。
curl -i -X POST http://localhost:8001/admins/<admin_email id="sl-md0000000">/roles \
--data roles="<role-name id="sl-md0000000">" \
--header Kong-Admin-Token:<rbac_token id="sl-md0000000">
たとえば、以下の方法で、 example_user@example.com
にスーパー管理者ロールをグラントします。
curl -i -X POST http://localhost:8001/admins/example_user@example.com/roles \
--data roles="super-admin" \
--header Kong-Admin-Token:<rbac_token id="sl-md0000000">