Okta
Okta は、AgentCore Gateway とランタイムにアクセスするための ID プロバイダー、またはアウトバウンドリソースアクセス用の AgentCore Identity 認証情報プロバイダーとして設定できます。これにより、エージェントは ID プロバイダーおよび認可サーバーとして Okta を使用してエージェントユーザーを認証および認可できます。また、エージェントは Okta によって認可されたリソースにアクセスするための認証情報を取得できます。
インバウンド
AgentCore Gateway とランタイムにアクセスするための ID プロバイダーと認可サーバーとして Okta を追加するには、以下を実行する必要があります。
-
Okta テナントから検出 URL を設定します。これにより、AgentCore Identity は OAuth 認可サーバーとトークン検証キーに関連するメタデータを取得できます。
-
トークンの有効な
audクレームを入力します。これにより、IdP からのトークンを検証し、予想されるクレームを含むトークンへのアクセスを許可します。
インバウンド認証用に Okta を設定するには
-
Okta デベロッパーコンソールを開きます。
-
左側のナビゲーションバーで、アプリケーションを選択します。
-
[Create App Integration] (アプリの統合の作成) を選択します。
-
アプリケーションのサインイン方法として OIDC - OpenID Connect を選択します。
-
アプリケーションタイプとしてウェブアプリケーションを選択します。
-
アプリケーションの名前を入力します。
-
必要に応じて、認可コードやクライアント認証情報を選択します。
-
サインインリダイレクト URIsOkta トークンを受け取るアプリケーションエンドポイントを追加します。
-
必要に応じて割り当てセクションを調整します。
-
[保存] を選択します。
-
アプリケーションを表す Okta API を作成します。
-
左側のナビゲーションバーで、セキュリティを選択します。
-
API に移動し、認可サーバーの追加を選択します。
-
フローに従って、Okta テナント専用の認可サーバーを作成します。
-
認可サーバーを作成したら、概要ページのアクセスポリシータブを選択して、適切なアクセスポリシーを設定します。
-
アプリケーションに必要な認可サーバーに必要なカスタムスコープを定義します。
-
-
Okta テナントの検出 URL を作成します。
https://your-tenant.okta.com/oauth2/your-authorization-server -
次の値を使用してインバウンド認証を設定します。
-
検出 URL: 前のステップで構築された URL
-
許可された対象者: ステップ 11 で API を作成するときに指定した対象者の値
-
詳細については、Okta のドキュメント
アクセストークンクレームに client_id クレームを追加する
デフォルトでは、Okta はトークンに標準クレームclient_idとして を含めません。トークンにクレームを入力するには、トークンの発行に使用する認可サーバーを使用してクレームをカスタマイズする必要があります。
アクセストークンに client_id クレームを追加するには
-
左側のナビゲーションバーで、セキュリティ を選択します。API に移動し、アプリケーションに使用する認可サーバーを選択します。
-
認可サーバーの詳細ページで、クレームタブを選択し、クレームの追加を選択します。
-
新しいクレーム client_id に名前を付け、値を app.clientId に設定します。
-
トークンタイプに含めてアクセストークンに設定します。
-
[保存] を選択します。
詳細については、Okta のドキュメント
アウトバウンド
注記
AgentCore Identity は、作成する認証情報プロバイダーごとに一意の OAuth2 コールバック URL を発行します。一意のコールバック URL により、セッションバインディングが有効になります。これにより、OAuth2 認可コード交換をクロスプロバイダーリプレイや CSRF 形式の攻撃から保護できます。これにより、認可レスポンスは、それを開始した特定の認証情報プロバイダーに対してのみ引き換えることができます。URL はプロバイダーごとに一意であるため、 を呼び出すまでわかりませんCreateOauth2CredentialProvider。最初に Okta OIDC アプリケーションを作成し、次に Okta デベロッパーコンソールに戻り、AgentCore Identity がコールバック URL を発行したら、コールバック URL を登録します。
ステップ 1: Okta OIDC アプリケーションを作成する
「インバウンド」セクションの手順に従って、Okta OIDC アプリケーションと認可サーバーを作成します。アプリケーション設定でサインインリダイレクト URIs の入力を求められたら、ここでは フィールドを空のままにします。ステップ 3 で一意のコールバック URL を追加します。
ステップ 2: AgentCore Identity 認証情報プロバイダーを作成する
AgentCore Identity で Okta をアウトバウンドリソースプロバイダーとして設定するには、以下を使用します。
{ "name": "Okta", "credentialProviderVendor": "OktaOauth2", "oauth2ProviderConfigInput" : { "includedOauth2ProviderConfig": { "clientId": "your-client-id", "clientSecret": "your-client-secret", "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize", "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token", "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server" } } }
Okta OAuth 2.0 on-behalf-of
{ "name": "Okta", "credentialProviderVendor": "CustomOauth2", "oauth2ProviderConfigInput": { "customOauth2ProviderConfig": { "clientAuthenticationMethod": "CLIENT_SECRET_BASIC", "clientId": "your-client-id", "clientSecret": "your-client-secret", "oauthDiscovery": { "authorizationServerMetadata": { "authorizationEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/authorize", "tokenEndpoint": "https://your-tenant.okta.com/oauth2/your-authorization-server/v1/token", "issuer": "https://your-tenant.okta.com/oauth2/your-authorization-server" } }, "onBehalfOfTokenExchangeConfig": { "grantType": "TOKEN_EXCHANGE", "tokenExchangeGrantTypeConfig": { "actorTokenContent": "NONE" } } } } }
CreateOauth2CredentialProvider レスポンスには callbackUrlフィールドが含まれます。この URL はこの認証情報プロバイダーに固有であり、 のようになりますhttps://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX。次のステップでこの値を保存します。
ステップ 3: Okta に一意のコールバック URL を登録する
Okta 開発者コンソールに戻り、アプリケーションのサインインリダイレクト URIs に一意のコールバック URL を追加します。
-
Okta デベロッパーコンソールにサインインし、ステップ 1 で作成した OIDC アプリケーションを開きます。
-
全般タブを開き、LOGIN 設定を編集します。
-
によって返された
callbackUrl値をサインインリダイレクト URICreateOauth2CredentialProviderに追加します。 URIs -
[保存] を選択します。