如何在 Amazon Cognito 用户群体中将 LinkedIn 设置为社交身份提供者?

2 分钟阅读
0

我想在 Amazon Cognito 用户群体中将 LinkedIn 配置为社交身份提供者(IdP),如此一来,用户就可以通过 LinkedIn 登录。

解决方案

LinkedIn 允许您通过 OpenID Connect 对用户进行身份验证。在 Amazon Cognito 用户群体中添加 LinkedIn 作为 OIDC 提供商。

创建一个包含应用客户端和域名的 Amazon Cognito 用户群体

有关如何创建这些先决条件的更多信息,请参阅以下资源:

创建 LinkedIn 应用

  1. 打开 LinkedIn 上的开发者套件,然后选择创建应用
  2. 创建应用页面上,填写所有必填字段和首选字段,定制您的 LinkedIn 应用。然后,选择创建应用
  3. 选择身份验证选项卡。确认授权范围列表中包含 openidprofileemail。这些权限允许您访问所需的 LinkedIn 用户信息。
    注意: 如果您看到此处的授权范围没有列出 openidprofileemail,请在您的应用中添加使用 LinkedIn 通过 OpenID Connect 登录。这位于您的 LinkedIn 开发者页面的产品选项卡上。
  4. 身份验证选项卡的应用程序凭证下,找到客户端 ID客户端密钥,然后复制它们。当您在用户群体中添加 LinkedIn 作为身份提供者时,您需要这两个值。
  5. OAuth 2.0 设置下,在**重定向 URL:**旁边,选择铅笔图标。然后,选择 + 添加重定向 URL
  6. 在**重定向 URL:**下,输入 https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse
    注意:请将 YourDomainPrefixregion 替换为您的用户群体的值。您可以在用户群体的应用程序集成选项卡上的 Amazon Cognito 控制台中找到这些设置项目。

将 OIDC 提供商添加到您的用户群体

  1. 打开 Amazon Cognito 控制台
  2. 选择您的用户群体。在登录体验选项卡下,选择添加身份提供者
  3. 选择 OpenID Connect
  4. 输入您的 LinkedIn 应用的详细信息以获取 OIDC 提供商的详细信息:
    提供商名称中,输入一个名称(例如,LinkedIn)。此名称会出现在 Amazon Cognito 托管的网页 UI 中。
    注意:创建提供商后,您将无法更改此字段。
    对于
    客户端 ID
    ,请输入您之前从 LinkedIn 应用程序中复制的客户端 ID。
    对于客户端密钥,请输入您之前从 LinkedIn 应用程序中复制的客户端密钥。
    对于属性请求方法,保留设置为 GET
    授权范围中,输入 openid profile email
    对于发布者,请输入 https://www.linkedin.com
    如果您需要手动输入端点信息,请参阅在 LinkedIn 网站上的 LinkedIn discovery
  5. 选择创建提供商

有关更多信息,请参阅将 OIDC IdP 添加到您的用户群体

将 OIDC 提供商的属性映射到您的用户群体

  1. 打开 Amazon Cognito 控制台
  2. 选择您的用户群体。
  3. 登录体验选项卡中,选择您创建的 LinkedIn OIDC 提供商。
  4. 属性映射下,将用户群体电子邮件属性映射到 OpenID Connect 属性电子邮件。
  5. 确认 OIDC 属性映射到用户群体属性用户名
  6. (可选)添加您想从 LinkedIn 传递的任何 OIDC 属性。例如,您可以将 given_namefamily_name 映射到相应的 Amazon Cognito 用户群体属性。

有关更多信息,请参阅为您的用户群体指定身份提供商属性映射

更改用户群体的应用客户端设置

  1. 打开 Amazon Cognito 控制台
  2. 选择您的用户群体。
  3. 应用程序集成下,选择应用程序客户端
  4. 应用程序客户端页面上,填写以下字段:
    对于回调 URL,输入您希望用户登录后被重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/。
    对于注销 URL,输入您希望用户在注销后被重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/。
    编辑托管 UI 部分,并将您创建的 OIDC 提供商(例如 LinkedIn)添加为身份提供者。
    OAuth 2.0 授权类型下,选中授权码授权和/或隐式授权复选框。
    **注意:**OAuth 2.0 授权类型决定了您可以将哪些值(codetoken)用于端点 URL 中的 response_type 参数。
    OpenID Connect 范围下,选中 email、profile 和 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=code 改为 response_type=token
  • YourClientId 替换为应用客户端的 ID,并将 redirectUrl 替换为应用客户端的回调 URL。您可以在 Amazon Cognito 控制台找到这些信息,在用户群体的应用程序集成选项卡上。

有关更多信息,请参阅如何为 Amazon Cognito 配置托管 Web UI?授权端点

测试端点 URL

  1. 在 Web 浏览器中输入构造的端点 URL。
  2. 选择您的 OIDC 提供商的名称(例如 LinkedIn)。
  3. 选择使用 LinkedIn 登录。这会将您重定向到 LinkedIn 的登录页面。

**注意:**如果该 URL 将您重定向到 Amazon Cognito 应用客户端的回调 URL,这说明您已经登录了 LinkedIn。

  1. 在 LinkedIn 登录页面上,输入您的 LinkedIn 账户的电子邮件地址(或电话号码)和密码。
  2. 点击登录

成功登录后,系统会将您重定向到应用客户端的回调 URL。授权码或用户群体令牌会显示在 Web 浏览器地址栏的 URL 中。

(可选)跳过 Amazon Cognito 托管 UI

如果您希望用户在登录您的应用时跳过 Amazon Cognito 网页 UI,请使用以下 URL 作为端点 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=code 改为 response_type=token
  • oidcProviderName 替换为用户群体中 OIDC 提供商的名称(例如 LinkedIn)。
  • (可选)如果您在识别符字段中为 OIDC 提供商添加了标识符,请将 identity_provider=oidcProviderName 替换为 **idp_identifier=**idpIdentifier。将 idpIdentifier 替换为您的自定义标识符字符串。
  • yourClientId 替换为应用客户端的 ID,并将 redirectUrl 替换为应用客户端的回调 URL。您可以在 Amazon Cognito 控制台找到这些信息,在用户群体的应用程序集成选项卡上。
  • allowedOauthScopes 替换为您希望 Amazon Cognito 应用程序客户端请求的特定范围。
AWS 官方
AWS 官方已更新 7 个月前