Amazon Cognito
Amazon Cognitoは、ウェブおよびモバイルアプリのエンドユーザー向けにSSOアイデンティティ管理を提供します。Cloudflare Zero TrustのOIDCアイデンティティプロバイダーとしてAmazon Cognitoを統合できます。
- Amazon Cognitoのuser pool ↗
統合を設定するために必要なAmazon Cognitoの値は次のとおりです:
- App (client) ID
- Client secret
- Auth URL
- Token URL
- Certificate (key) URL
これらの値を取得するには:
-
Amazon Cognitoの管理ポータルにログインします。
-
User poolsに移動し、ユーザープールを選択します。
-
App integrationタブを選択します。
-
Domainの下で、ユーザープールのドメインをコピーするか、新しいドメインを設定 ↗します。
-
次の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です。)
- Auth URL:
-
App client listの下で、Create app clientを選択します。
-
App typeで、Confidential clientを選択します。
-
アプリケーションのApp client nameを入力します。
-
Generate a client secretが選択されていることを確認します。
-
次のHosted UI settingsを設定します:
-
Allowed callback URLsに次のURLを追加します:
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callbackチーム名はZero TrustのSettings > Custom Pagesで確認できます。
-
このアプリクライアントで使用するIdentity providersを選択します。最低限、Cognito user poolをプロバイダーとして有効にします。
-
OAuth 2.0 grant typesで、Authorization code grantを選択します。
-
OpenID Connect scopesで、OpenID、Email、およびProfileを選択します。
-
-
Create app clientを選択します。
-
次に、作成したアプリクライアントを選択します。
-
Client IDとClient secretをコピーします。
-
Zero Trust ↗に移動し、Settings > Authenticationに行きます。
-
Login methodsの下で、Add newを選択します。
-
OpenID Connectを選択します。
-
アイデンティティプロバイダーに名前を付け、Amazon Cognitoから取得した情報で必要なフィールドを埋めます。
-
(オプション)IdPがサポートしている場合は、Proof of Key Exchange (PKCE) ↗を有効にします。PKCEはすべてのログイン試行で実行されます。
-
(オプション)Optional configurationsの下で、ユーザーのアイデンティティに追加したいcustom OIDC claimsを入力します。この情報はuser identity endpointで利用可能です。
-
Saveを選択します。
接続が機能しているかをテストするには、Testを選択します。
{ "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"}