LinkedIn を Amazon Cognito ユーザープールのソーシャル ID プロバイダーとして設定するにはどうすればよいですか?

所要時間3分
0

LinkedIn を Amazon Cognito ユーザープールのソーシャル ID プロバイダー (IdP) として設定して、ユーザーが LinkedIn 経由でログインできるようにしたいと考えています。

解決策

LinkedIn では openID connect を通じてユーザーを認証できます。Amazon Cognito ユーザープールの OIDC プロバイダーとして LinkedIn を追加します。

アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する

これらの前提条件を作成する方法の詳細については、以下のリソースを参照してください:

LinkedIn アプリを作成する

  1. LinkedIn の開発者スイートを開き、[アプリを作成] を選択します。
  2. [アプリを作成] ページで、必須項目と推奨項目をすべて入力して、LinkedIn アプリをカスタマイズします。次に、[アプリを作成] を選択します。
  3. [認証] タブを選択します。リストに、openidprofileemail scope が含まれていることを確認します。これらの権限により、必要な LinkedIn ユーザー情報にアクセスできます。
    : openidprofileemail scope がリストに表示されていない場合は、OpenID Connect を使用して LinkedIn でサインインする製品をアプリケーションに追加してください。これは LinkedIn 開発者ページの [製品] タブにあります。
  4. [認証] タブの [アプリケーションの認証情報] で、[クライアント ID][クライアントシークレット] を見つけてコピーします。LinkedIn をユーザープールの ID プロバイダーとして追加する場合は、これら両方の値が必要です。
  5. [OAuth 2.0 settings][Redirect URLs:] の横にある鉛筆アイコンを選択します。次に、[+ Add redirect URL] を選択します。
  6. [Redirect URLs:]https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse と入力します。
    注:YourDomainPrefixリージョンをユーザープールの値に置き換えてください。ユーザープールの [アプリ統合] タブの Amazon Cognito コンソールで確認できます。

ユーザープールに OIDC プロバイダーを追加する

  1. Amazon Cognito コンソールを開きます。
  2. ユーザープールを選択します。[サインインエクスペリエンス] タブで、[ID プロバイダーの追加] を選択します。
  3. [OpenID Connect] を選択します。
  4. 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 ディスカバリー[を参照してください。
  5. [プロバイダーの作成] を選択します。

詳細については、「ユーザープールへの OIDC IdP の追加」を参照してください。

OIDC プロバイダーの属性をユーザープールにマッピングする

  1. Amazon Cognito コンソールを開きます。
  2. ユーザープールを選択します。
  3. [サインインエクスペリエンス] タブで、作成した LinkedIn OIDC プロバイダーを選択します。
  4. [属性マッピング] で、ユーザープール のメール属性を OpenID Connect のメール属性にマッピングします。
  5. OIDC 属性 sub がユーザープール属性 Username にマップされていることを確認します。
  6. (オプション) LinkedIn から渡したい任意の OIDC 属性を追加します。例えば、given_namefamily_name を対応する Amazon Cognito ユーザープール属性にマッピングできます。

詳細については、「ユーザープールの ID プロバイダー属性マッピングの指定」を参照してください。

ユーザープールのアプリクライアント設定の変更

  1. Amazon Cognito コンソールを開きます。
  2. ユーザープールを選択します。
  3. **[アプリ統合] ** で [アプリクライアント] を選択します。
  4. [アプリクライアント] ページで、以下のフィールドを入力します:
    [コールバック 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 のチェックボックスを選択します。
  5. [変更を保存] を選択します。

詳しくは、「アプリクライアント設定の用語」を参照してください。

エンドポイント URL を作成する

独自の設定の値を使用して、このエンドポイント URL を作成します:

https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&client_id=YourClientId&redirect_uri=redirectUrl

セットアップに合わせて URL をカスタマイズします:

  • YourDomainPrefixregion をユーザープールの値に置き換えてください。ユーザープールの [アプリ統合] タブの Amazon Cognito コンソールで確認できます。
  • 過去に [許可されている OAuth フロー]暗黙の付与 フローのみを選択した場合は、response_type=coderesponse_type=token に変更します。
  • YourClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。

詳細については、「Amazon Cognito 用にホストされたウェブ UI を設定するにはどうすればよいですか?」と「エンドポイントの認証」をご覧ください。

エンドポイント URL をテストする

  1. ウェブブラウザにログインエンドポイント URL を入力します。
  2. ご利用の OIDC プロバイダーの名前 (LinkedIn など) を選択します。
  3. [LinkedIn でログイン] を選択します。これにより、LinkedIn のサインインページにリダイレクトされます。

注: URL から Amazon Cognito アプリケーションクライアントのコールバック URL にリダイレクトされる場合は、すでに LinkedIn にサインインしています。

  1. LinkedIn のサインインページで、LinkedIn アカウントのメールアドレス (または電話番号) とパスワードを入力します。
  2. [サインイン] を選択します。

ログインに成功すると、アプリクライアントのコールバック 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 をカスタマイズするには、次の手順に従います:

  • YourDomainPrefixregion をユーザープールの値に置き換えてください。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。
  • 過去に [許可されている OAuth フロー][暗黙の付与フロー] のみを選択した場合は、response_type=coderesponse_type=token に変更します。
  • oidcProviderName は、ユーザープール内の OIDC プロバイダーの名前 (LinkedIn など) に置き換えてください。
  • (オプション)[識別子] フィールドに OIDC プロバイダーの識別子を追加した場合は、identity_provider=oidcProviderName**idp_identifier=**idpIdentifier に置き換えます。IdpIdentifier をカスタム識別子の文字列に置き換えます。
  • yourClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。Amazon Cognito コンソールのユーザープールの [アプリの統合] タブで確認できます。
  • allowedOauthScopes を Amazon Cognito アプリケーションクライアントにリクエストさせたい特定のスコープに置き換えてください。
AWS公式
AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ