選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

撰寫應用程式使用 Web 聯合身分

焦點模式
撰寫應用程式使用 Web 聯合身分 - Amazon DynamoDB

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

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

若要使用 Web 聯合身分,您的應用程式必須假設您建立的 IAM 角色。完成後,應用程式會遵守您連接到角色的存取政策。

在執行時間,如果您的應用程式使用 Web 聯合身分,則必須遵循下列步驟進行:

  1. 使用第三方身分提供者進行身分驗證。您的應用程式必須使用身分提供者所提供的界面來呼叫身分提供者。對使用者進行身分驗證的確切方式取決於供應商以及執行應用程式的平台。一般而言,如果使用者尚未登入,則身分供應商會負責顯示該供應商的登入頁面。

    身分提供者對使用者進行身分驗證之後,供應商會將 Web 身分字符傳回給應用程式。此字符的格式取決於供應商,但通常是極長的字元字串。

  2. 取得臨時 AWS 安全登入資料。若要執行此操作,您的應用程式會將 AssumeRoleWithWebIdentity 請求傳送至 AWS Security Token Service (AWS STS)。此請求包含以下項目:

    • 先前步驟中的 Web 身分字符

    • 來自身分提供者的應用程式 ID

    • 您為此身分提供者為此應用程式建立之IAM角色的 Amazon Resource Name (ARN)

    AWS STS 會傳回一組在一段時間後過期 AWS 的安全登入資料 (預設為 3,600 秒)。

    以下是 AWS STS中 AssumeRoleWithWebIdentity 動作的範例請求和回應。Web 身分字符取自 Login with Amazon 身分提供者。

    GET / HTTP/1.1 Host: sts.amazonaws.com Content-Type: application/json; charset=utf-8 URL: https://sts.amazonaws.com/?ProviderId=www.amazon.com &DurationSeconds=900&Action=AssumeRoleWithWebIdentity &Version=2011-06-15&RoleSessionName=web-identity-federation &RoleArn=arn:aws:iam::123456789012:role/GameRole &WebIdentityToken=Atza|IQEBLjAsAhQluyKqyBiYZ8-kclvGTYM81e...(remaining characters omitted)

    <AssumeRoleWithWebIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <AssumeRoleWithWebIdentityResult> <SubjectFromWebIdentityToken>amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE</SubjectFromWebIdentityToken> <Credentials> <SessionToken>AQoDYXdzEMf//////////wEa8AP6nNDwcSLnf+cHupC...(remaining characters omitted)</SessionToken> <SecretAccessKey>8Jhi60+EWUUbbUShTEsjTxqQtM8UKvsM6XAjdA==</SecretAccessKey> <Expiration>2013-10-01T22:14:35Z</Expiration> <AccessKeyId>06198791C436IEXAMPLE</AccessKeyId> </Credentials> <AssumedRoleUser> <Arn>arn:aws:sts::123456789012:assumed-role/GameRole/web-identity-federation</Arn> <AssumedRoleId>AROAJU4SA2VW5SZRF2YMG:web-identity-federation</AssumedRoleId> </AssumedRoleUser> </AssumeRoleWithWebIdentityResult> <ResponseMetadata> <RequestId>c265ac8e-2ae4-11e3-8775-6969323a932d</RequestId> </ResponseMetadata> </AssumeRoleWithWebIdentityResponse>
  3. 存取 AWS 資源。 AWS STS 的回應包含應用程式存取 DynamoDB 資源所需的資訊:

    • AccessKeyIDSecretAccessKeySessionToken 欄位包含只適用於此使用者和此應用程式的安全登入資料。

    • Expiration 欄位表示這些登入資料的時間限制,在此時間之後就不再有效。

    • AssumedRoleId 欄位包含應用程式已擔任之工作階段特定 IAM 角色的名稱。應用程式會在此工作階段期間遵守 IAM 政策文件中的存取控制。

    • SubjectFromWebIdentityToken 欄位包含出現在此特定身分提供者的 IAM 政策變數中的唯一 ID。以下是所支援供應商的 IAM 政策變數,及其範例值:

      政策變數 範例值
      ${www.amazon.com:user_id} amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE
      ${graph.facebook.com:id} 123456789
      ${accounts.google.com:sub} 123456789012345678901

如需使用這些政策變數的範例 IAM 政策,請參閱 範例政策:使用條件進行精細定義存取控制

如需如何 AWS STS 產生臨時存取登入資料的詳細資訊,請參閱 IAM 使用者指南中的請求臨時安全登入資料

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。