如何在 Amazon Cognito 用户群体中将 LinkedIn 设置为社交身份提供者?
我想在 Amazon Cognito 用户群体中将 LinkedIn 配置为社交身份提供者(IdP),如此一来,用户就可以通过 LinkedIn 登录。
解决方案
LinkedIn 允许您通过 OpenID Connect 对用户进行身份验证。在 Amazon Cognito 用户群体中添加 LinkedIn 作为 OIDC 提供商。
创建一个包含应用客户端和域名的 Amazon Cognito 用户群体
有关如何创建这些先决条件的更多信息,请参阅以下资源:
- 教程: 创建用户群体
**重要事项:**创建用户群体时,一定要选择标准属性电子邮件。 - 配置用户群体应用客户端
- 配置用户群体域
创建 LinkedIn 应用
- 打开 LinkedIn 上的开发者套件,然后选择创建应用。
- 在创建应用页面上,填写所有必填字段和首选字段,定制您的 LinkedIn 应用。然后,选择创建应用。
- 选择身份验证选项卡。确认授权范围列表中包含 openid、profile 和 email。这些权限允许您访问所需的 LinkedIn 用户信息。
注意: 如果您看到此处的授权范围没有列出 openid、profile 和 email,请在您的应用中添加使用 LinkedIn 通过 OpenID Connect 登录。这位于您的 LinkedIn 开发者页面的产品选项卡上。 - 在身份验证选项卡的应用程序凭证下,找到客户端 ID和客户端密钥,然后复制它们。当您在用户群体中添加 LinkedIn 作为身份提供者时,您需要这两个值。
- 在 OAuth 2.0 设置下,在**重定向 URL:**旁边,选择铅笔图标。然后,选择 + 添加重定向 URL。
- 在**重定向 URL:**下,输入 https://YourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse。
注意:请将 YourDomainPrefix 和 region 替换为您的用户群体的值。您可以在用户群体的应用程序集成选项卡上的 Amazon Cognito 控制台中找到这些设置项目。
将 OIDC 提供商添加到您的用户群体
- 打开 Amazon Cognito 控制台。
- 选择您的用户群体。在登录体验选项卡下,选择添加身份提供者。
- 选择 OpenID Connect。
- 输入您的 LinkedIn 应用的详细信息以获取 OIDC 提供商的详细信息:
在提供商名称中,输入一个名称(例如,LinkedIn)。此名称会出现在 Amazon Cognito 托管的网页 UI 中。
注意:创建提供商后,您将无法更改此字段。
对于客户端 ID,请输入您之前从 LinkedIn 应用程序中复制的客户端 ID。
对于客户端密钥,请输入您之前从 LinkedIn 应用程序中复制的客户端密钥。
对于属性请求方法,保留设置为 GET。
在授权范围中,输入 openid profile email。
对于发布者,请输入 https://www.linkedin.com。
如果您需要手动输入端点信息,请参阅在 LinkedIn 网站上的 LinkedIn discovery。 - 选择创建提供商。
有关更多信息,请参阅将 OIDC IdP 添加到您的用户群体。
将 OIDC 提供商的属性映射到您的用户群体
- 打开 Amazon Cognito 控制台。
- 选择您的用户群体。
- 在登录体验选项卡中,选择您创建的 LinkedIn OIDC 提供商。
- 在属性映射下,将用户群体电子邮件属性映射到 OpenID Connect 属性电子邮件。
- 确认 OIDC 属性子映射到用户群体属性用户名。
- (可选)添加您想从 LinkedIn 传递的任何 OIDC 属性。例如,您可以将 given_name 和 family_name 映射到相应的 Amazon Cognito 用户群体属性。
有关更多信息,请参阅为您的用户群体指定身份提供商属性映射。
更改用户群体的应用客户端设置
- 打开 Amazon Cognito 控制台。
- 选择您的用户群体。
- 在应用程序集成下,选择应用程序客户端。
- 在应用程序客户端页面上,填写以下字段:
对于回调 URL,输入您希望用户登录后被重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/。
对于注销 URL,输入您希望用户在注销后被重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/。
编辑托管 UI 部分,并将您创建的 OIDC 提供商(例如 LinkedIn)添加为身份提供者。
在 OAuth 2.0 授权类型下,选中授权码授权和/或隐式授权复选框。
**注意:**OAuth 2.0 授权类型决定了您可以将哪些值(code 或 token)用于端点 URL 中的 response_type 参数。
在 OpenID Connect 范围下,选中 email、profile 和 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 配置托管 Web UI?和授权端点。
测试端点 URL
- 在 Web 浏览器中输入构造的端点 URL。
- 选择您的 OIDC 提供商的名称(例如 LinkedIn)。
- 选择使用 LinkedIn 登录。这会将您重定向到 LinkedIn 的登录页面。
**注意:**如果该 URL 将您重定向到 Amazon Cognito 应用客户端的回调 URL,这说明您已经登录了 LinkedIn。
- 在 LinkedIn 登录页面上,输入您的 LinkedIn 账户的电子邮件地址(或电话号码)和密码。
- 点击登录。
成功登录后,系统会将您重定向到应用客户端的回调 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,请执行以下步骤:
- 请将 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 应用程序客户端请求的特定范围。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 6 个月前
- AWS 官方已更新 10 个月前