Okta
Okta 可以設定為用於存取 AgentCore Gateway 和執行期的身分提供者,或用於傳出資源存取的 AgentCore Identity 憑證提供者。這可讓您的代理程式以 Okta 身分提供者和授權伺服器身分驗證和授權代理程式使用者,或您的代理程式取得登入資料以存取 Okta 授權的資源。
傳入
若要新增 Okta 做為存取 AgentCore Gateway 和 Runtime 的身分提供者和授權伺服器,您必須:
-
從 Okta 租用戶設定探索 URL。這有助於 AgentCore Identity 取得與您的 OAuth 授權伺服器和權杖驗證金鑰相關的中繼資料。
-
輸入字符的有效
aud宣告。這有助於驗證來自 IdP 的字符,並允許存取包含預期宣告的字符。
設定 Okta 以進行傳入身分驗證
-
開啟 Okta 開發人員主控台。
-
在左側導覽列中,選擇應用程式。
-
選擇 Create App Integration (建立應用程式整合)。
-
選擇 OIDC - OpenID Connect 作為應用程式的登入方法。
-
選擇 Web 應用程式做為您的應用程式類型。
-
為您的應用程式提供名稱。
-
根據您的需求選取授權碼和/或用戶端登入資料。
-
對於登入重新導向 URIs,新增將接收 Okta 字符的應用程式端點。
-
根據您的需求,視需要調整指派區段。
-
選擇儲存。
-
建立 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 開發人員主控台,並將唯一的回呼 URL 新增至應用程式的登入重新導向 URIs。
-
登入 Okta 開發人員主控台,並開啟您在步驟 1 中建立的 OIDC 應用程式。
-
開啟一般索引標籤並編輯 LOGIN 設定。
-
將 傳回
callbackUrl的值新增至CreateOauth2CredentialProvider登入重新導向 URIs。 -
選擇儲存。