LinkedIn を Amazon Cognito ユーザープールのソーシャル ID プロバイダーとして設定するにはどうすればよいですか?
LinkedIn を Amazon Cognito ユーザープールのソーシャル ID プロバイダー (IdP) として設定して、ユーザーが LinkedIn 経由でログインできるようにしたいと考えています。
解決策
LinkedIn では openID connect を通じてユーザーを認証できます。Amazon Cognito ユーザープールの OIDC プロバイダーとして LinkedIn を追加します。
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
これらの前提条件を作成する方法の詳細については、以下のリソースを参照してください:
- チュートリアル: ユーザープールの作成
重要: ユーザープールを作成するときは、標準属性のメールを選択したままにしてください。 - ユーザープールアプリクライアントの設定
- ユーザープールドメインの設定
LinkedIn アプリを作成する
- LinkedIn の開発者スイートを開き、[アプリを作成] を選択します。
- [アプリを作成] ページで、必須項目と推奨項目をすべて入力して、LinkedIn アプリをカスタマイズします。次に、[アプリを作成] を選択します。
- [認証] タブを選択します。リストに、openid、profile、email scope が含まれていることを確認します。これらの権限により、必要な LinkedIn ユーザー情報にアクセスできます。
注: openid、profile、email scope がリストに表示されていない場合は、OpenID Connect を使用して LinkedIn でサインインする製品をアプリケーションに追加してください。これは LinkedIn 開発者ページの [製品] タブにあります。 - [認証] タブの [アプリケーションの認証情報] で、[クライアント ID] と [クライアントシークレット] を見つけてコピーします。LinkedIn をユーザープールの ID プロバイダーとして追加する場合は、これら両方の値が必要です。
- [OAuth 2.0 settings] の [Redirect URLs:] の横にある鉛筆アイコンを選択します。次に、[+ Add redirect URL] を選択します。
- [Redirect URLs:] にhttps://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse と入力します。
注:YourDomainPrefix とリージョンをユーザープールの値に置き換えてください。ユーザープールの [アプリ統合] タブの Amazon Cognito コンソールで確認できます。
ユーザープールに OIDC プロバイダーを追加する
- Amazon Cognito コンソールを開きます。
- ユーザープールを選択します。[サインインエクスペリエンス] タブで、[ID プロバイダーの追加] を選択します。
- [OpenID Connect] を選択します。
- OIDC プロバイダーの詳細情報について、LinkedIn アプリの詳細を入力します。
[プロバイダー名] に、名前 (LinkedIn など) を入力します。この名前は Amazon Cognito がホストするウェブ UI に表示されます。
注: プロバイダーを作成した後は、このフィールドを変更できません。
クライアント ID には、先に LinkedIn アプリケーションからコピーしたクライアント ID を入力します。
[クライアントシークレット] には、先に LinkedIn アプリケーションからコピーしたクライアントシークレットを入力します。
[属性のリクエストメソッド] は、設定を [GET] にままにします。
[承認スコープ] に、「openid プロファイルのメール」と入力します。
[発行者] にはhttps://www.linkedin.com と入力します。
エンドポイント情報を手動で入力する必要がある場合は、LinkedIn ウェブサイトの ](https://www.linkedin.com/oauth/.well-known/openid-configuration)LinkedIn ディスカバリー[を参照してください。 - [プロバイダーの作成] を選択します。
詳細については、「ユーザープールへの OIDC IdP の追加」を参照してください。
OIDC プロバイダーの属性をユーザープールにマッピングする
- Amazon Cognito コンソールを開きます。
- ユーザープールを選択します。
- [サインインエクスペリエンス] タブで、作成した LinkedIn OIDC プロバイダーを選択します。
- [属性マッピング] で、ユーザープール のメール属性を OpenID Connect のメール属性にマッピングします。
- OIDC 属性 sub がユーザープール属性 Username にマップされていることを確認します。
- (オプション) LinkedIn から渡したい任意の OIDC 属性を追加します。例えば、given_name と family_name を対応する Amazon Cognito ユーザープール属性にマッピングできます。
詳細については、「ユーザープールの ID プロバイダー属性マッピングの指定」を参照してください。
ユーザープールのアプリクライアント設定の変更
- Amazon Cognito コンソールを開きます。
- ユーザープールを選択します。
- **[アプリ統合] ** で [アプリクライアント] を選択します。
- [アプリクライアント] ページで、以下のフィールドを入力します:
[コールバック URL] に、ログイン後にユーザーをリダイレクトする URL を入力します。テストでは、https://www.example.com/ などの有効な URL を入力します。
[サインアウト URL] に、ログアウト後にユーザーをリダイレクトする URL を入力します。テストでは、https://www.example.com/ などの有効な URL を入力します。
[ホストされた UI] セクションを編集し、作成した OIDC プロバイダー (LinkedIn など) を ID プロバイダーとして追加します。
[OAuth 2.0 の付与タイプ] で、[認証コード付与] または [暗黙的な付与] チェックボックスのいずれか、あるいはその両方を選択します。
注:OAuth 2.0 の付与タイプによって、エンドポイント URL の response_type パラメーターに使用できる値 (コードまたはトークン) が決まります。
OpenID Connect のスコープで、メール、プロファイル、openid のチェックボックスを選択します。 - [変更を保存] を選択します。
詳しくは、「アプリクライアント設定の用語」を参照してください。
エンドポイント URL を作成する
独自の設定の値を使用して、このエンドポイント URL を作成します:
https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&client_id=YourClientId&redirect_uri=redirectUrl
セットアップに合わせて URL をカスタマイズします:
- YourDomainPrefix と region をユーザープールの値に置き換えてください。ユーザープールの [アプリ統合] タブの Amazon Cognito コンソールで確認できます。
- 過去に [許可されている OAuth フロー] の 暗黙の付与 フローのみを選択した場合は、response_type=code を response_type=token に変更します。
- YourClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。
詳細については、「Amazon Cognito 用にホストされたウェブ UI を設定するにはどうすればよいですか?」と「エンドポイントの認証」をご覧ください。
エンドポイント URL をテストする
- ウェブブラウザにログインエンドポイント URL を入力します。
- ご利用の OIDC プロバイダーの名前 (LinkedIn など) を選択します。
- [LinkedIn でログイン] を選択します。これにより、LinkedIn のサインインページにリダイレクトされます。
注: URL から Amazon Cognito アプリケーションクライアントのコールバック URL にリダイレクトされる場合は、すでに LinkedIn にサインインしています。
- LinkedIn のサインインページで、LinkedIn アカウントのメールアドレス (または電話番号) とパスワードを入力します。
- [サインイン] を選択します。
ログインに成功すると、アプリクライアントのコールバック URL にリダイレクトされます。認証コードまたはユーザープールトークンは、ウェブブラウザのアドレスバーの URL に表示されます。
(オプション) Amazon Cognito でホストされている UI をスキップする
ユーザーがアプリにサインインするときに Amazon Cognito ウェブ UI をスキップさせたい場合は、これをエンドポイント URL として使用してください:
https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&identity_provider=oidcProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
セットアップの URL をカスタマイズするには、次の手順に従います:
- YourDomainPrefix と region をユーザープールの値に置き換えてください。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。
- 過去に [許可されている OAuth フロー] の [暗黙の付与フロー] のみを選択した場合は、response_type=code を response_type=token に変更します。
- oidcProviderName は、ユーザープール内の OIDC プロバイダーの名前 (LinkedIn など) に置き換えてください。
- (オプション)[識別子] フィールドに OIDC プロバイダーの識別子を追加した場合は、identity_provider=oidcProviderName を **idp_identifier=**idpIdentifier に置き換えます。IdpIdentifier をカスタム識別子の文字列に置き換えます。
- yourClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。
- allowedOauthScopes を Amazon Cognito アプリケーションクライアントにリクエストさせたい特定のスコープに置き換えてください。

関連するコンテンツ
- 質問済み 1年前lg...
- 質問済み 2年前lg...
- AWS公式更新しました 22日前