翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザープールでの OIDC ID プロバイダーの使用
ユーザーは、OpenID Connect (OIDC) ID プロバイダー (IdP) の既存アカウントを使用してアプリケーションにサインインできます。OIDC プロバイダーを使用すると、独立したシングルサインオンシステムのユーザーは、アプリケーションがユーザープールの共有形式で OIDC トークンを受信する間、既存の認証情報を提供できます。OIDC IdP を設定するには、ユーザープールを RP として処理するように IdP を設定し、ユーザープールを IdP として処理するようにアプリケーションを設定します。Amazon Cognito は、複数の OIDC IdPs とアプリケーション間の中間ステップとして機能します。ユーザープールは、プロバイダーがユーザープールに直接渡す ID トークンとアクセストークンのクレームに属性マッピングルールを適用します。次にAmazon Cognito は、マッピングされたユーザー属性と、Lambda トリガーを使用して認証フローに加えた追加の調整に基づいて新しいトークンを発行します。
OIDC IdP でサインインするユーザーは、ユーザープールアプリケーションにアクセスするために、新しい認証情報や情報を提供する必要はありません。アプリケーションは、ユーザープールを使用して、サインインのために IdP にサイレントにリダイレクトできます。この場合、ユーザープールは、アプリケーションのトークン形式を標準化するバックグラウンドのツールとして使用されます。IdP リダイレクトの詳細については、「認可エンドポイント」を参照してください。
他のサードパーティー ID プロバイダーと同様に、アプリケーションを OIDC プロバイダーに登録し、ユーザープールに接続する IdP アプリケーションに関する情報を取得する必要があります。ユーザープール OIDC IdP には、クライアント ID、クライアントシークレット、リクエストするスコープ、プロバイダーサービスエンドポイントに関する情報が必要です。ユーザープールが検出エンドポイントからプロバイダーの OIDC エンドポイントを検出すできますが、ユーザーが手動で入力することもできます。また、プロバイダー ID トークンを調べ、IdP とユーザープール内の属性に関して属性マッピングを作成する必要があります。

この認証フローの詳細についてはOIDC ユーザープール IdP 認証フロー、「」を参照してください。
注記
サードパーティー (フェデレーション) 経由のサインインは、Amazon Cognito のユーザープールで使用できます。この機能は、Amazon Cognito アイデンティティプールを使用した OIDC フェデレーションとは無関係です。
OIDC IdP は AWS Management Console、、、またはユーザープール API メソッド CreateIdentityProvider を使用して AWS CLI、ユーザープールに追加できます。
前提条件
開始するには、以下が必要です。
-
アプリケーションクライアントとユーザープールドメインを使用するユーザープール。詳細については、「ユーザープールの作成」を参照してください。
-
次の設定を持つ OIDC IdP。
-
client_secret_post
クライアント認証をサポートします。Amazon Cognito は、IdP の OIDC ディスカバリエンドポイントでのtoken_endpoint_auth_methods_supported
クレームをチェックしません。Amazon Cognito は、client_secret_basic
クライアント認証をサポートしていません。クライアント認証の詳細については、OpenID Connect ドキュメントの「クライアント認証」を参照してください。 -
openid_configuration
、userInfo
、およびjwks_uri
などの OIDC エンドポイントにのみ HTTPS を使用します。 -
OIDC エンドポイントには TCP ポート 80 および 443 のみを使用します。
-
HMAC-SHA、ECDSA または RSA アルゴリズムで ID トークンにのみ署名します。
-
キー ID
kid
クレームをjwks_uri
で発行し、そのトークンにkid
クレームをフックみます。 -
有効なルート CA トラストチェーンを持つ、有効期限が切れていないパブリックキーを表示します。
-
OIDC IdP にアプリケーションを登録する
OIDC IdP をユーザープール設定に追加してアプリケーションクライアントに割り当てる前に、IdP で OIDC クライアントアプリケーションを設定します。ユーザープールは、IdP による認証を管理する依存パーティアプリケーションです。
OIDC IdP に登録する
-
OIDC IdP のデベロッパーアカウントを作成します。
OIDC IdP へのリンク OIDC IdP インストール方法 OIDC 検出 URL Salesforce https://
MyDomainName
.my.salesforce.com/.well-known/openid-configurationOneLogin OIDC 対応アプリを接続する https://
your-domain.onelogin.com
/oidc/2/.well-known/openid-configurationJumpCloud OIDC を使用した SSO https://oauth.id.jumpcloud.com/.well-known/openid-configuration
Okta https://
Your Okta subdomain
.okta.com/.well-known/openid-configurationMicrosoft Entra ID https://login.microsoftonline.com/
{tenant}
/v2.0の値には、テナント ID、
common
、organizations
、または を含めるtenant
ことができますconsumers
。 -
OIDC IdP を使用して、
/oauth2/idpresponse
エンドポイントを持つユーザープールドメインを登録します。そうすることで、OIDC IdP が後ほど、ユーザーの認証時に Amazon Cognito からこれを受け入れることが確実になります。https://
mydomain.auth.us-east-1.amazoncognito.com
/oauth2/idpresponse -
ユーザーディレクトリがユーザープールと共有するスコープを選択します。OIDC IdPs がユーザー情報を提供するには、スコープ openid が必要です。
email
スコープは、email
およびemail_verified
クレームへのアクセスを許可するために必要です。OIDC 仕様のその他のスコープは、すべてのユーザー属性 profile
と およびphone_number
phone
ですphone_number_verified
。 -
OIDC IdP は、クライアント ID とクライアントシークレットを提供します。これらの値をメモし、後でユーザープールに追加する OIDC IdP の設定に追加します。
例: Salesforce を OIDC IdP としてユーザープールで使用する
OIDC 互換 IdP (Salesforce など) とユーザープールの間で信頼性を確立するときに OIDC IdP を使用します。
-
Salesforce 開発者ウェブサイトでアカウントを作成
します。 -
前のステップで設定した開発者アカウントを使用してサインイン
します。 -
Salesforce ページで、次のいずれかの操作を行います。
-
Lightning Experience を使用している場合は、歯車アイコンを選択してから、[Setup Home] (ホームの設定) を選択します。
-
Salesforce Classic を使用しており、ユーザーインターフェイスのヘッダーに [Setup (設定)] が表示されている場合は、選択します。
-
Salesforce Classic を使用しており、ヘッダーに [Setup (設定)] が表示されていない場合は、上部のナビゲーションバーで名前を選択し、ドロップダウンリストより [Setup (設定)] を選択します。
-
-
左のナビゲーションバーで、[Company Settings (組織の設定)] を選択します。
-
ナビゲーションバーで、[Domain] (ドメイン) を選択してドメインを入力し、[Create] (作成) を入力します。
-
左のナビゲーションバーで、[Platform Tools] (プラットフォームツール) に移動し、[Apps] (アプリケーション) を選択します。
-
[アプリケーションマネージャ] を選択します。
-
-
[New connected app] (新規接続アプリケーション) を選択します。
-
必須フィールドに入力します。
[Start URL] (開始 URL) で、Salesforce IdP でサインインするユーザープールドメインの
/authorize
エンドポイントの URL を入力します。ユーザーが接続アプリケーションにアクセスすると、Salesforce はこの URL に誘導してサインインを完了します。次に、Salesforce はユーザーをアプリクライアントに関連付けたコールバック URL にリダイレクトします。https://
mydomain.auth.us-east-1.amazoncognito.com
/authorize?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
&identity_provider=CorpSalesforce
-
OAuth 設定を有効にし、コールバック URL にユーザープールドメインの
/oauth2/idpresponse
エンドポイントの URL を入力します。これは、Amazon Cognito が OAuth トークンと交換する認可コードを Salesforce が発行する URL です。https://
mydomain.auth.us-east-1.amazoncognito.com
/oauth2/idpresponse
-
-
スコープ
を選択します。スコープ openid を含める必要があります。email および email_verified クレーム にアクセスを付与するには、email スコープが必要です。スコープはスペースで区切ります。 -
[作成] を選択します。
Salesforce では、クライアント ID は [コンシューマーキー]、クライアントシークレットは [コンシューマーシークレット] と呼ばれます。クライアント ID とクライアントシークレットを書き留めます。これらは次のセクションで使用します。
ユーザープールに OIDC IdP を追加する
IdP を設定したら、OIDC IdP で認証リクエストを処理するようにユーザープールを設定できます。
OIDC IdP の設定をテストする
アプリケーションで、ユーザーが OIDC プロバイダーでサインインできるように、ユーザーのクライアントでブラウザを呼び出す必要があります。前のセクションのセットアップ手順を完了したら、プロバイダーとのサインインをテストします。次の URL の例では、プレフィックスドメインを持つユーザープールのサインインページをロードします。
https://
mydomain.auth.us-east-1.amazoncognito.com
/oauth2/authorize?response_type=code&client_id=1example23456789
&redirect_uri=https://www.example.com
このリンクは、アプリクライアントメニューに移動し、アプリクライアントを選択し、ログインページタブに移動し、ログインページの表示を選択すると、Amazon Cognito から指示されるページです。ユーザープールドメインの詳細については、「ユーザープールのドメインを設定する」を参照してください。クライアント IDs URLs 「」を参照してくださいアプリケーションクライアントによるアプリケーション固有の設定。
次のリンク例では、identity_provider
クエリパラメータ認可エンドポイントを使用して からMyOIDCIdP
プロバイダーへのサイレントリダイレクトを設定します。この URL は、マネージドログインによるインタラクティブなユーザープールのサインインをバイパスし、IdP サインインページに直接移動します。
https://
mydomain.auth.us-east-1.amazoncognito.com
/oauth2/authorize?identity_provider=MyOIDCIdP
&response_type=code&client_id=1example23456789
&redirect_uri=https://www.example.com