

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

# 建立 Amazon Verified Permissions Amazon Cognito 身分來源
<a name="cognito-create"></a>

下列程序會將身分來源新增至現有的政策存放區。

您也可以在 Verified Permissions 主控台中[建立新的政策存放區時建立](policy-stores-create.md)身分來源。在此程序中，您可以將身分來源字符中的宣告自動匯入實體屬性。選擇**引導式設定**或使用 ** API 閘道 和身分提供者設定**選項。這些選項也會建立初始政策。

**注意**  
除非您已建立政策存放區，否則左側導覽窗格中無法使用**身分來源**。您建立的身分來源與目前的政策存放區相關聯。

當您在 中建立具有 [create-identity-source](https://docs.aws.amazon.com/cli/latest/reference/verifiedpermissions/create-identity-source.html) 的身分來源， AWS CLI 或在 Verified Permissions API 中建立 [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) 時，可以排除委託人實體類型。不過，空白實體類型會建立實體類型為 的身分來源`AWS::Cognito`。此實體名稱與政策存放區結構描述不相容。若要將 Amazon Cognito 身分與您的政策存放區結構描述整合，您必須將委託人實體類型設定為支援的政策存放區實體。

------
#### [ AWS 管理主控台 ]

**建立 Amazon Cognito 使用者集區身分來源**

1. 開啟 [Verified Permissions 主控台](https://console.aws.amazon.com/verifiedpermissions/)。選擇您的政策存放區。

1. 在左側導覽窗格中，選擇**身分來源**。

1. 選擇**建立身分來源**。

1. 在 **Cognito 使用者集區詳細資訊**中，選取 ， AWS 區域 然後輸入身分來源**的使用者集區 ID**。

1. 在**委託人組態**中，針對**委託人類型**，從此來源選擇委託人的實體類型。來自已連線 Amazon Cognito 使用者集區的身分將對應至選取的委託人類型。

1. 在**群組組態**中，如果您想要對應使用者集區`cognito:groups`宣告，請選取**使用 Cognito 群組**。選擇做為委託人類型父項的實體類型。

1. 在**用戶端應用程式驗證**中，選擇是否要驗證用戶端應用程式 IDs。
   + 若要驗證用戶端應用程式 IDs，請選擇**僅接受具有相符用戶端應用程式 IDs字符**。為每個要驗證的**用戶端應用程式 ID 選擇新增**用戶端應用程式 ID。若要移除已新增的用戶端應用程式 ID，請選擇用戶端應用程式 ID 旁的**移除**。
   + 如果您不想**驗證用戶端應用程式 IDs**，請選擇不要驗證用戶端應用程式 IDs。

1. 選擇**建立身分來源**。

1. （選用） 如果您的政策存放區有結構描述，在您可以參考從 Cedar 政策中的身分或存取權杖擷取的屬性之前，您必須先更新結構描述，讓 Cedar 了解您的身分來源建立的主體類型。除了結構描述之外，還必須包含您要在 Cedar 政策中參考的屬性。如需將 Amazon Cognito 字符屬性映射至 Cedar 主體屬性的詳細資訊，請參閱 [將 Amazon Cognito 字符映射至結構描述](cognito-map-token-to-schema.md)。
**注意**  
當您建立 [API 連結政策存放](policy-stores-api-userpool.md)區，或在建立政策存放區時使用**設定 API 閘道 和身分提供者**時，Verified Permissions 會查詢您的使用者集區以取得使用者屬性，並建立結構描述，其中您的主體類型會填入使用者集區屬性。

1. 建立使用字符資訊進行授權決策的政策。如需詳細資訊，請參閱[建立 Amazon Verified Permissions 靜態政策](policies-create.md)。

現在您已建立身分來源、更新結構描述和建立政策，請使用 `IsAuthorizedWithToken`讓 Verified Permissions 進行授權決策。如需詳細資訊，請參閱《*Amazon Verified Permissions API 參考指南*》中的 [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)。

------
#### [ AWS CLI ]

**建立 Amazon Cognito 使用者集區身分來源**  
您可以使用 [CreateIdentitySource](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreateIdentitySource.html) 操作來建立身分來源。下列範例會建立可從 Amazon Cognito 使用者集區存取已驗證身分的身分來源。

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

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

1. 執行下列命令來建立 Amazon Cognito 身分來源。

   ```
   $ 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"
   }
   ```

1. （選用） 如果您的政策存放區有結構描述，在您可以參考從 Cedar 政策中的身分或存取權杖擷取的屬性之前，您必須先更新結構描述，讓 Cedar 了解您的身分來源建立的主體類型。除了結構描述之外，還必須包含您要在 Cedar 政策中參考的屬性。如需將 Amazon Cognito 字符屬性映射至 Cedar 主體屬性的詳細資訊，請參閱 [將 Amazon Cognito 字符映射至結構描述](cognito-map-token-to-schema.md)。
**注意**  
當您建立 [API 連結政策存放](policy-stores-api-userpool.md)區，或在建立政策存放區時使用**設定 API 閘道 和身分提供者**時，Verified Permissions 會查詢您的使用者集區是否有使用者屬性，並建立結構描述，其中您的主體類型會填入使用者集區屬性。

1. 建立使用字符資訊進行授權決策的政策。如需詳細資訊，請參閱[建立 Amazon Verified Permissions 靜態政策](policies-create.md)。

現在您已建立身分來源、更新結構描述和建立政策，請使用 `IsAuthorizedWithToken`讓 Verified Permissions 進行授權決策。如需詳細資訊，請參閱《*Amazon Verified Permissions API 參考指南*》中的 [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)。

------

如需在 Verified Permissions 中使用已驗證使用者的 Amazon Cognito 存取和身分字符的詳細資訊，請參閱《Amazon *Amazon Cognito * [Permissions 授權](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html)。