建立 Amazon 驗證的許可身分來源 - Amazon Verified Permissions

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

建立 Amazon 驗證的許可身分來源

下列程序會將身分識別來源新增至現有的原則存放區。新增身分識別來源之後,您必須將屬性新增至結構描述

當您在 [已驗證的權限] 主控台中建立新的原則存放區時,也可以建立身分識別來源。在此過程中,您可以將身分識別來源 Token 中的宣告自動匯入實體屬性。選擇 [引導式設定] 或 [使用 API Gateway 和身分識別提供者設定] 選項。這些選項也會建立初始策略。

注意

在您建立原則存放區之前,身分識別來源無法在左側的導覽窗格中使用。您建立的身分識別來源與目前的原則存放區相關聯。

當您使用 [已驗證權限 API] AWS CLI 或 CreateIdentity [來源] 中的 [建立身分識別來源] 建立識別來源時,可以省略主體實體類型。但是,空白實體類型會建立實體類型為的識別來源AWS::Cognito。此實體名稱與原則存放區結構描述不相容。若要將 Amazon Cognito 身分與您的政策存放區結構描述整合,您必須將主體實體類型設定為支援的政策存放區實體。

Amazon Cognito 身份來源

AWS Management Console
若要建立 Amazon Cognito 使用者集區身分識別來源
  1. https://console.aws.amazon.com/verifiedpermissions/ 開啟「已驗證的權限」主控台。選擇您的政策存放區。

  2. 在左側的導覽窗格中,選擇 [身分識別來源]。

  3. 選擇建立身分識別來源

  4. Cognito 使用者集區詳細資料中,選取 AWS 區域 並輸入身分識別來源的使用者集區 ID

  5. 在 [主參與者] 組態中,選擇識別來源的 [主參與者] 類型。來自已連線 Amazon Cognito 使用者集區的身分將對應至選取的主體類型。

  6. 如果您要對應使用者集區cognito:groups宣告,請在 [群組設定] 中選取 [使用 Cognito 群組]。選擇作為主參與者類型父項的實體類型。

  7. 用戶端應用程式驗證中,選擇是否驗證用戶端應用程式 ID。

    • 若要驗證用戶端應用程式 ID,請選擇「僅接受具有相符用戶端應用程式 ID 的 為要驗證的每個用戶端應用程式 ID 選擇新增用戶端應用程式 ID。若要移除已新增的用戶端應用程式 ID,請選擇用戶端應用程式 ID 旁邊的 [移除]。

    • 如果您不想驗證用戶端應用程式 ID,請選擇不驗證用戶端應用程式 ID。

  8. 選擇建立身分識別來源

  9. 在您可以參考從 Cedar 政策中的身分識別或存取權杖擷取的屬性之前,您必須先更新結構描述,讓 Cedar 知道您的身分識別來源所建立的主體類型。結構描述的新增項目必須包含您要在 Cedar 原則中參照的屬性。如需將 Amazon Cognito 權杖屬性對應至 Cedar 主要屬性的詳細資訊,請參閱在結構描述和原則中使用身分識別來源

    當您建立 API 連結的原則存放區時,已驗證的權限會查詢您的使用者集區中的使用者屬性,並建立結構描述,其中您的主參與者類型會填入使用者集區屬性。

AWS CLI
若要建立 Amazon Cognito 使用者集區身分識別來源

您可以使用「來源」作業建立身分識別CreateIdentity來源。下列範例會建立可從 Amazon Cognito 使用者集區存取已驗證身分的身分識別來源。

下列config.txt檔案包含 Amazon Cognito 使用者集區的詳細資訊,以供命令中的--configuration 參數使用。create-identity-source

{ "cognitoUserPoolConfiguration": { "userPoolArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_1a2b3c4d5", "clientIds":["a1b2c3d4e5f6g7h8i9j0kalbmc"], "groupConfiguration": { "groupEntityType": "MyCorp::UserGroup" } } }

命令:

$ aws verifiedpermissions create-identity-source \ --configuration file://config.txt \ --principal-entity-type "User" \ --policy-store-id 123456789012 { "createdDate": "2023-05-19T20:30:28.214829+00:00", "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-05-19T20:30:28.214829+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }

在您可以參考從 Cedar 政策中的身分識別或存取權杖擷取的屬性之前,您必須先更新結構描述,讓 Cedar 知道您的身分識別來源所建立的主體類型。結構描述的新增項目必須包含您要在 Cedar 原則中參照的屬性。如需將 Amazon Cognito 權杖屬性對應至 Cedar 主要屬性的詳細資訊,請參閱在結構描述和原則中使用身分識別來源

當您建立 API 連結的原則存放區時,已驗證的權限會查詢您的使用者集區中的使用者屬性,並建立結構描述,其中您的主參與者類型會填入使用者集區屬性。

如需有關針對已驗證的使用者使用 Amazon Cognito 存取權和身分權杖的詳細資訊,請參閱 Amazon Cognito 開發人員指南中的使用 Amazon 驗證許可授權

OIDC 身分識別來源

AWS Management Console
若要建立 OpenID Connect (OIDC) 身分識別來源
  1. https://console.aws.amazon.com/verifiedpermissions/ 開啟「已驗證的權限」主控台。選擇您的政策存放區。

  2. 在左側的導覽窗格中,選擇 [身分識別來源]。

  3. 選擇建立身分識別來源

  4. 選擇「外部 OIDC 提供者」。

  5. 發行者網址中,輸入 OIDC 發行者的網址。例如,這是提供授權伺服器、簽署金鑰和其他提供者相關資訊的服務端點https://auth.example.com。您的發行者 URL 必須在上託管 OIDC 探索文件。/.well-known/openid-configuration

  6. 權杖類型中,選擇您希望應用程式提交以進行授權的 OIDC JWT 類型。如需詳細資訊,請參閱 在結構描述和原則中使用身分識別來源

  7. 在 [使用者和群組宣告] 中,選擇身分識別來源的使用者實體和使用者宣告使用者實體是您原則存放區中的一個實體,您想要參考來自 OIDC 提供者的使用者。U ser 聲明是一種聲明sub,通常來自您的 ID 或訪問令牌,該 ID 或訪問令牌包含要評估的實體的唯一標識符。來自連線 OIDC IdP 的識別會對應至選取的主參與者類型。

  8. 在 [使用者和群組宣告] 中,選擇身分識別來源的群組實體和群組宣告。群組實體使用者實體的父系。群組宣告會對應至此實體。Group 宣告是一項宣告groups,通常來自您的 ID 或存取權杖,其中包含要評估之實體的字串、JSON 或空格分隔的使用者群組名稱字串。來自連線 OIDC IdP 的識別會對應至選取的主參與者類型。

  9. 對象驗證中,輸入您希望政策存放區在授權請求中接受的用戶端 ID 或對象 URL(如果有)。

  10. 選擇建立身分識別來源

  11. 更新您的結構描述,讓 Cedar 知道身分識別來源所建立的主體類型。結構描述的新增項目必須包含您要在 Cedar 原則中參照的屬性。如需將 Amazon Cognito 權杖屬性對應至 Cedar 主要屬性的詳細資訊,請參閱在結構描述和原則中使用身分識別來源

    當您建立 API 連結的原則存放區時,已驗證的權限會查詢您的使用者集區中的使用者屬性,並建立結構描述,其中您的主參與者類型會填入使用者集區屬性。

AWS CLI
若要建立 OIDC 身分識別來源

您可以使用「來源」作業建立身分識別CreateIdentity來源。下列範例會建立可從 Amazon Cognito 使用者集區存取已驗證身分的身分識別來源。

下列config.txt檔案包含 OIDC IdP 的詳細資訊,以供指令的--configuration參數使用。create-identity-source此範例會為 ID 權杖建立 OIDC 身分識別來源。

{ "openIdConnectConfiguration": { "issuer": "https://auth.example.com", "tokenSelection": { "identityTokenOnly": { "clientIds":["1example23456789"], "principalIdClaim": "sub" }, }, "entityIdPrefix": "MyOIDCProvider", "groupConfiguration": { "groupClaim": "groups", "groupEntityType": "MyCorp::UserGroup" } } }

下列config.txt檔案包含 OIDC IdP 的詳細資訊,以供指令的--configuration參數使用。create-identity-source此範例會為存取權杖建立 OIDC 身分識別來源。

{ "openIdConnectConfiguration": { "issuer": "https://auth.example.com", "tokenSelection": { "accessTokenOnly": { "audiences":["https://auth.example.com"], "principalIdClaim": "sub" }, }, "entityIdPrefix": "MyOIDCProvider", "groupConfiguration": { "groupClaim": "groups", "groupEntityType": "MyCorp::UserGroup" } } }

命令:

$ aws verifiedpermissions create-identity-source \ --configuration file://config.txt \ --principal-entity-type "User" \ --policy-store-id 123456789012 { "createdDate": "2023-05-19T20:30:28.214829+00:00", "identitySourceId": "ISEXAMPLEabcdefg111111", "lastUpdatedDate": "2023-05-19T20:30:28.214829+00:00", "policyStoreId": "PSEXAMPLEabcdefg111111" }

在您可以參考從 Cedar 政策中的身分識別或存取權杖擷取的屬性之前,您必須先更新結構描述,讓 Cedar 知道您的身分識別來源所建立的主體類型。結構描述的新增項目必須包含您要在 Cedar 原則中參照的屬性。如需將 Amazon Cognito 權杖屬性對應至 Cedar 主要屬性的詳細資訊,請參閱在結構描述和原則中使用身分識別來源

當您建立 API 連結的原則存放區時,已驗證的權限會查詢您的使用者集區中的使用者屬性,並建立結構描述,其中您的主參與者類型會填入使用者集區屬性。