

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

# 建立 Amazon Verified Permissions OIDC 身分來源
<a name="oidc-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 管理主控台 ]

**建立 OpenID Connect (OIDC) 身分來源**

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

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

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

1. 選擇**外部 OIDC 提供者**。

1. 在**發行者 URL** 中，輸入 OIDC 發行者的 URL。這是提供服務端點，可提供授權伺服器、簽署金鑰，以及有關提供者的其他資訊，例如 `https://auth.example.com`。您的發行者 URL 必須在 託管 OIDC 探索文件`/.well-known/openid-configuration`。

1. 在**字符類型**中，選擇您希望應用程式提交以進行授權的 OIDC JWT 類型。如需詳細資訊，請參閱[將 OIDC 權杖映射至結構描述](oidc-map-token-to-schema.md)。

1. 在將**字符宣告映射至結構描述實體**中，選擇身分來源**的使用者實體**和**使用者宣告**。**使用者實體**是政策存放區中的實體，您想要從 OIDC 供應商參考使用者。**使用者宣告**通常是來自您的 ID 或存取權杖的 宣告`sub`，其中包含要評估之實體的唯一識別符。來自已連線 OIDC IdP 的身分會映射至選取的委託人類型。

1. （選用） 在將**字符宣告映射至結構描述實體**中，選擇身分來源的**群組實體**和**群組宣告**。**群組實體**是**使用者實體**的[父](https://docs.cedarpolicy.com/overview/terminology.html#term-group)項。群組宣告會映射到此實體。**群組宣告**是一種宣告，通常來自您的 ID 或存取權杖`groups`，其中包含要評估之實體的字串、JSON 或以空格分隔的使用者群組名稱字串。來自已連線 OIDC IdP 的身分會映射至選取的委託人類型。

1. 在**驗證 - 選用**中，輸入您希望政策存放區在授權請求中接受的用戶端 IDs 或對象 URLs，如果有的話。

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

1. （選用） 如果您的政策存放區具有結構描述，在您可以參考從 Cedar 政策中的身分或存取權杖擷取的屬性之前，您必須更新結構描述，讓 Cedar 了解您的身分來源建立的主體類型。除了結構描述之外，還必須包含您要在 Cedar 政策中參考的屬性。如需將 OIDC 權杖屬性映射至 Cedar 主體屬性的詳細資訊，請參閱 [將 OIDC 權杖映射至結構描述](oidc-map-token-to-schema.md)。

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 ]

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

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

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

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

   ```
   $ 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 政策中參考的屬性。如需將 OIDC 權杖屬性映射至 Cedar 主體屬性的詳細資訊，請參閱 [將 OIDC 權杖映射至結構描述](oidc-map-token-to-schema.md)。

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)。

------