如何在 Amazon Cognito 用户池中将 Auth0 设置为 OIDC 提供程序?

2 分钟阅读
0

我想要在 Amazon Cognito 用户池中将 Auth0 设置为 OIDC 提供程序。

简短描述

Amazon Cognito 用户池允许使用第三方 OpenID Connect 身份提供程序 (OIDC) 登录,例如 Salesforce 或 Ping Identity。要将 Auth0 设置为 OIDC 提供程序,您需要一个拥有应用程序客户端和域名的 Amazon Cognito 用户池,以及一个拥有 Auth0 应用程序的 Auth0 账户。

解决方法

请按照以下步骤创建或配置:

  • Auth0 账户
  • Auth0 应用程序
  • OIDC 设置
  • 应用程序客户端设置

如果你尚未执行此操作,请创建一个包含用户应用程序客户端域名Amazon Cognito 用户池

创建 Auth0 账户

如果您已经拥有一个 Auth0 账户,请登录。要创建 Auth0 账户,请按照 Auth0 入门文档中的说明进行操作。

创建 Auth0 应用程序

  1. Auth0 网站中,选择 Dashboard(控制面板)。
  2. 在导航窗格中,展开左窗格中的 Applications(应用程序),然后单击 Create Application(创建应用程序)。
  3. 在对话框中,输入应用程序的名称。例如,App1。
  4. Choose an application type(选择应用程序类型)下,选择 Single Webpage Applications(单网页应用程序)。
  5. 选择 Create(创建)。

记下 Auth0 应用程序的应用程序设置选项卡中的Client ID(客户端 ID)、Client Secret(客户端密钥)和 Domain(域)。

Allowed Callback URL(允许的回调 URL)部分中,确保为用户池添加 Amazon Cognito 回调域。域格式与以下类似:
https://<cognito-domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse.

为用户池配置 OIDC 设置

  1. 打开 Amazon Cognito 控制台,然后选择 Manage User Pools(管理用户池)。
  2. 选择您的用户池,然后在导航窗格中,选择 Identity providers(身份提供程序)。
  3. 选择 OpenID Connect
  4. 输入 Auth0 应用程序的 Client ID(客户端 ID)和 Client secret(客户端密钥)。
  5. 选择 Attributes request method(属性请求方法)下拉列表,然后选择 GET
  6. 对于授权范围,输入电话 电子邮件 openid 配置文件
  7. 对于 Issuer(发布者),通过 Auth0 控制台添加域名。例如:https://example.auth0.com。
  8. 选择 Create provider(创建提供程序),然后选择 Run discovery(运行发现)。
  9. 选择 Create(创建)。
  10. 在导航窗格中,选择 Attribute mapping(属性映射)。
  11. OIDC attribute(OIDC 属性)部分中的 email(电子邮件)创建属性映射。OIDC 属性 email(电子邮件)将映射至用户池属性 email(电子邮件)。

为用户池配置应用程序客户端设置

  1. 打开 Amazon Cognito 控制台,然后选择 App client settings(应用程序客户端设置)。
  2. Enabled identity providers(已启用的身份提供程序)中,选中 Auth0Cognito User Pool 复选框。
  3. 对于 Callback URL(回调 URL),输入一个 URL。
  4. 对于 Sign out URL(注销 URL),输入一个用户在注销之后被重定向到的 URL。
  5. 对于 Allowed OAuth Flows(允许的 OAuth 流),确保至少选中 Implicit grant(隐含授予)复选框。
  6. 对于 Allowed OAuth Scopes(允许的 OAuth 范围),确保至少选中 email(电子邮件)和 openid 复选框。
  7. 选择 Save changes(保存更改)。

测试设置

  1. 打开 Amazon Cognito 控制台,然后选择 Manage User Pools(管理用户池)。
  2. 在导航窗格中,选择 App client settings(应用程序客户端设置)。
  3. 选择您的应用程序客户端,然后选择 Launch Hosted UI(启用托管 UI)。
  4. Hosted UI(托管 UI)页面上,选择 Auth0,然后登录到 Auth0 登录页面。
  5. 该页面将重新定向至在应用程序客户端设置中指定的回调 URL。
  6. (可选)您可以检查在用户池的“用户和组”设置中创建的 Auth0 用户。

相关信息

向用户池添加 OIDC 身份提供程序

AWS 官方
AWS 官方已更新 2 年前