View a markdown version of this page

為客戶受管應用程式啟用 AWS 帳戶存取 - AWS IAM Identity Center

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為客戶受管應用程式啟用 AWS 帳戶存取

您可以透過設定信任的權杖發行者,在 IAM Identity Center 中啟用客戶受管應用程式 AWS 的帳戶存取。信任的權杖發行者是 OAuth 2.0 授權伺服器,代表已驗證的使用者發出簽署的權杖。IAM Identity Center 會交換這些字符做為登入資料,讓您的應用程式以程式設計方式存取指派給這些使用者 AWS 的帳戶和角色。信任的權杖發行者也可以用於存取 AWS 受管應用程式。如需詳細資訊,請參閱使用具有受信任權杖發行者的應用程式

注意

您只能為 IAM Identity Center 的組織執行個體啟用此功能。只有管理帳戶管理員或委派管理員可以啟用客戶受管應用程式sso:account:access的範圍。如果您是成員帳戶中的應用程式建置器,請聯絡您的 IAM Identity Center 管理員,為您的應用程式啟用此範圍。

運作方式

管理員啟用客戶受管應用程式sso:account:access的範圍後,會發生下列工作流程:

  1. 使用者透過外部身分提供者 (IdP) 登入您的應用程式。

  2. 您的應用程式會從 IdP 收到已簽署的 JWT 權杖。

  3. 您的應用程式會呼叫具有 JWT 承載授權類型的 CreateTokenWithIAM API (),以此權杖交換 IAM Identity Center 權杖urn:ietf:params:oauth:grant-type:jwt-bearer。此呼叫需要 Signature 第 4 版 (SigV4) 身分驗證。如需詳細資訊,請參閱《IAM Identity Center OIDC API 參考》中的 CreateTokenWithIAM

  4. 您的應用程式使用 IAM Identity Center 權杖來呼叫入口網站 API 操作 (ListAccountsListAccountRolesGetRoleCredentials),以探索指派給使用者的帳戶和角色,並代表他們擷取臨時 AWS 登入資料。

  5. 使用者透過您的應用程式存取 AWS 資源,而不需要任何其他登入步驟。

如果您在設定應用程式時啟用重新整理權杖授予, CreateTokenWithIAM也會傳回重新整理權杖與存取權杖。您的應用程式可以使用此重新整理字符來取得新的存取字符,而無需重複完整的 JWT Bearer 字符交換。若要重新整理存取字符,CreateTokenWithIAM請使用 refresh_token 授予類型呼叫 。

先決條件

啟用客戶受管應用程式的帳戶存取之前,您需要:

  • 在支援 JSON Web Token (JWTs) 的 IAM Identity Center 中設定的客戶受管應用程式。應用程式必須有後端伺服器元件,可以安全地存放登入資料。此功能不支援瀏覽器型應用程式,例如單一頁面應用程式 (SPAs) 和其他公有用戶端。

  • 連接至您應用程式的受信任權杖發行者

  • 存取 IAM Identity Center 的 AWS Organizations 管理帳戶或委派管理員帳戶。成員帳戶中的應用程式建置器無法直接啟用此範圍。

啟用帳戶存取

啟用客戶受管應用程式sso:account:access的範圍
  1. AWS 管理主控台 使用組織的管理帳戶或委派管理員帳戶登入 。

  2. 開啟 IAM Identity Center 主控台

  3. 在導覽窗格中,選擇 Applications (應用程式)

  4. 選擇客戶管理索引標籤。

  5. 選擇您要設定的應用程式名稱。

  6. AWS 帳戶存取區段中,開啟啟用 AWS 帳戶存取

啟用帳戶存取後,應用程式可以透過程式設計方式呼叫 Identity Portal API 操作來列出帳戶和角色,並擷取已驗證使用者有權存取之角色的臨時 AWS 登入資料。

重要

當您啟用應用程式sso:account:access的範圍時,該應用程式可以透過其許可集指派存取已驗證使用者可用的所有帳戶和角色。您無法將應用程式限制為特定帳戶或角色。在啟用此功能之前,請確定您了解此存取層級。

程式設計存取權

您可以使用 PutApplicationAccessScope API,以程式設計方式啟用客戶受管應用程式sso:account:access的範圍。您必須從組織的管理帳戶或委派管理員帳戶呼叫 API。

AWS CLI

aws sso-admin put-application-access-scope \ --application-arn arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-1234567890abcdef \ --scope "sso:account:access"

API 請求:

{ "ApplicationArn": "arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-1234567890abcdef", "Scope": "sso:account:access" }

若要停用帳戶存取,請使用具有相同應用程式 ARN 和範圍值的 DeleteApplicationAccessScope API。

如需詳細資訊,請參閱《IAM Identity Center API 參考》中的 PutApplicationAccessScopeDeleteApplicationAccessScope

安全最佳實務

  • sso:account:access 範圍會授予應用程式對已驗證使用者可用的所有帳戶和角色的存取權。您無法限制對特定帳戶或角色的存取。僅針對需要此存取層級的應用程式啟用此範圍。

  • 在後端伺服器上保留 IAM Identity Center 存取權杖和重新整理權杖。切勿將其公開給用戶端程式碼。

  • 請勿在應用程式日誌、錯誤訊息或偵錯輸出中記錄字符或登入資料。

  • 請勿在 URL 查詢參數中傳遞字符。使用 x-amz-sso_bearer_token標頭做為存取權杖。

  • 使用 AWS CloudTrail 來監控應用程式發出的 API 呼叫。