我想在 Cognito 用户池中将 Auth0 设置为 OIDC 提供商。
简短描述
Cognito 用户池允许您使用第三方 OpenID Connect (OIDC) 身份提供商(例如 Salesforce 或 Ping Identity)登录。要将 Auth0 设置为 OIDC 提供商,请确保您拥有以下内容:
- 包含应用程序客户端和域名的 Cognito 用户池。
- 包含 Auth0 应用程序的 Auth0 账户。
解决方法
创建 Auth0 账户
如果您有 Auth0 账户,请登录。要创建 Auth0 账户,请参阅 Auth0 网站上的 Get Started。
创建 Auth0 应用程序
完成以下步骤:
- 在 Auth0 网站上登录您的开发者账户。
- 选择 Dashboard(控制面板)。
- 在导航窗格中,从 Applications(应用程序)中单击 Create application(创建应用程序)。
- 在对话框中,输入应用程序的名称。例如,App1。
- 在 Choose an application type(选择应用程序类型)中,选择 Single webpage applications(单页 Web 应用程序),然后选择 Create(创建)。
重要事项: 请记下应用程序设置选项卡中的 Client ID(客户端 ID)、Client secret(客户端密钥)和 Domain(域)值,以用于在后续步骤中为用户池配置 OIDC 设置。
- 在 Settings(设置)选项卡的 Allowed callback URLs(允许的回调 URL)部分中,必须为用户池添加 Cognito 回调域。域格式类似于以下:https://<Cognito Domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse。
- 单击 Save changes(保存更改)。
为用户池配置 OIDC 设置
完成以下步骤:
- 打开 Cognito 控制台。
- 选择 User pools(用户池),然后选择您的用户池。
- 选择 Social and external providers(社交和外部提供商),然后选择 Add identity provider(添加身份提供商)。
- 选择 OpenID Connect (OIDC)。
- 输入 Provider name(提供商名称)。然后,输入从 Auth0 应用程序获取的 Client ID(客户端 ID)和 Client secret(客户端密钥)值。
- 对于 Authorization scopes(授权范围),输入 Phone(电话)、Email(电子邮件)、Openid 和 Profile(配置文件)。
- 选择 Attributes request method(属性请求方法)下拉列表,然后选择 GET。
- 对于 Issuer(发布者),添加从 Auth0 控制台获取的域名。例如,https://example.auth0.com。
- 对于 Attribute mapping(属性映射),在 OIDC attribute(OIDC 属性)部分中为 Email(电子邮件)创建属性映射。OIDC 属性电子邮件将映射到用户池属性电子邮件。
- 选择 Add identity provider(添加身份提供商)。
为用户池配置应用程序客户端设置
完成以下步骤:
- 打开 Cognito 控制台。
- 选择 App clients(应用程序客户端),然后打开您的应用程序客户端。
- 选择 Login pages(登录页面)选项卡。
- 在 Managed login pages configuration(托管登录页面配置)部分中,选择 Edit(编辑)。
- 在 Allow callback URLs(允许回调 URL)中,输入您的集成应用程序的 URL。
- 在 Allow sign out URL(允许注销 URL)中,输入用户在注销后被重定向到的 URL。
- 单击 Identity providers(身份提供商)的下拉列表,然后选中 Auth0 和 Cognito User Pool(Cognito 用户池)复选框。
- 在 Allowed OAuth flows(允许的 OAuth 流)中,必须至少选中 Authorization code grant(授权码授权)复选框。
- 在 Allowed OAuth scopes(允许的 OAuth 范围)中,必须至少选中 Email(电子邮件)和 openid 复选框。
- 单击 Save changes(保存更改)。
测试设置
完成以下步骤:
- 打开 Cognito 控制台。
- 选择 Manage user pools(管理用户池)。
- 打开您的用户池,然后选择 App clients(应用程序客户端)。
- 选择您的应用程序客户端,然后选择 View login page(查看登录页面)。
- 在 Hosted UI(托管 UI)页面上,选择 Auth0。当您被重定向到 Auth0 登录页面时,填写登录页面信息。然后,该页面会重定向到应用程序客户端设置中指定的回调 URL。
- (可选)检查在用户池的用户和组设置中创建的 Auth0 用户。
相关信息
配置用户池域