コンテンツにスキップ

Amazon Cognito

Amazon Cognitoは、ウェブおよびモバイルアプリのエンドユーザー向けにSSOアイデンティティ管理を提供します。Cloudflare Zero TrustのOIDCアイデンティティプロバイダーとしてAmazon Cognitoを統合できます。

前提条件

Amazon Cognitoの設定 (OIDC)

1. Amazon Cognitoの設定を取得する

統合を設定するために必要なAmazon Cognitoの値は次のとおりです:

  • App (client) ID
  • Client secret
  • Auth URL
  • Token URL
  • Certificate (key) URL

これらの値を取得するには:

  1. Amazon Cognitoの管理ポータルにログインします。

  2. User poolsに移動し、ユーザープールを選択します。

  3. App integrationタブを選択します。

  4. Domainの下で、ユーザープールのドメインをコピーするか、新しいドメインを設定します。

  5. 次のAmazon Cognito OIDCエンドポイントをメモします:

    • Auth URL: https://<your user pool domain>/oauth2/authorize
    • Token URL: https://<your user pool domain>/oauth2/token
    • Certificate (key) URL: https://cognito-idp.<region>.amazonaws.com/<your user pool ID>/.well-known/jwks.json(これはUser pool overviewに表示されるToken signing key URLです。)
  6. App client listの下で、Create app clientを選択します。

  7. App typeで、Confidential clientを選択します。

  8. アプリケーションのApp client nameを入力します。

  9. Generate a client secretが選択されていることを確認します。

  10. 次のHosted UI settingsを設定します:

    1. Allowed callback URLsに次のURLを追加します:

      https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

      チーム名はZero TrustのSettings > Custom Pagesで確認できます。

    2. このアプリクライアントで使用するIdentity providersを選択します。最低限、Cognito user poolをプロバイダーとして有効にします。

    3. OAuth 2.0 grant typesで、Authorization code grantを選択します。

    4. OpenID Connect scopesで、OpenIDEmail、およびProfileを選択します。

  11. Create app clientを選択します。

  12. 次に、作成したアプリクライアントを選択します。

  13. Client IDClient secretをコピーします。

2. Amazon Cognitoをアイデンティティプロバイダーとして追加する

  1. Zero Trustに移動し、Settings > Authenticationに行きます。

  2. Login methodsの下で、Add newを選択します。

  3. OpenID Connectを選択します。

  4. アイデンティティプロバイダーに名前を付け、Amazon Cognitoから取得した情報で必要なフィールドを埋めます。

  5. (オプション)IdPがサポートしている場合は、Proof of Key Exchange (PKCE)を有効にします。PKCEはすべてのログイン試行で実行されます。

  6. (オプション)Optional configurationsの下で、ユーザーのアイデンティティに追加したいcustom OIDC claimsを入力します。この情報はuser identity endpointで利用可能です。

  7. Saveを選択します。

接続が機能しているかをテストするには、Testを選択します。

例 API 設定

{
"config": {
"client_id": "<your client id>",
"client_secret": "<your client secret>",
"auth_url": "https://<your user pool domain>/oauth2/authorize",
"token_url": "https://<your user pool domain>/oauth2/token",
"certs_url": "https://cognito-idp.<region>.amazonaws.com/<your user pool ID>/.well-known/jwks.json",
"scopes": ["openid", "email", "profile"],
"claims": ["sub", "cognito:username", "name", "cognito:groups"]
},
"type": "oidc",
"name": "Amazon Cognito example"
}