如何在 Amazon Cognito 用户群体中将 Okta 设置为 OpenID Connect 身份提供者?

3 分钟阅读
0

我想在 Amazon Cognito 用户群体中使用 Okta 作为 SAML 2.0 身份提供者(IdP)。

简述

Amazon Cognito 用户群体允许通过第三方(联合身份验证)登录,包括通过 Okta 这样的 IdP 登录。有关详细信息,请参阅通过第三方添加用户群体登录向用户群体添加 OIDC 身份提供商

与 Okta 集成的用户群体允许您的 Okta 应用程序中的用户从 Amazon Cognito 获取用户群体令牌。有关更多信息,请参阅将令牌与用户群体结合使用

解决方案

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

  1. 创建用户群体
    注意:在创建过程中,默认选择标准属性电子邮件。有关更多信息,请参阅配置用户群体属性
  2. 在您的用户群体中创建一个应用程序客户端。有关更多信息,请参阅添加应用程序客户端并设置托管 UI
  3. 为您的用户群体添加域名

注册 Okta 开发者账户

**注意:**如果您已经有 Okta 开发者账户,请登录。

  1. Okta Developer 注册网页上,输入您的个人信息,然后选择 SIGN UP。Okta Developer 团队会向您提供的电子邮件地址发送一封验证电子邮件。
  2. 在验证电子邮件中,找到您账户的登录信息。选择 ACTIVATE,登录,然后完成账户创建工作。

创建一个 Okta 应用程序

  1. 打开 Okta Developer Console。有关控制台的更多信息,请参阅在 Okta Developer Blog 上的 Okta’s Redesigned Admin Console and Dashboard—Now in GA!
  2. 在导航菜单中,展开 Applications,然后选择 Applications。这将打开 Applications Console。有关更多信息,请参阅 Okta Developer 网站 Okta Organizations 页面上的 Administrator Console
  3. 选择 Create App Integration
  4. Create a new app integration页面上,选择 OpenID Connect,选择 Web Application,然后选择 Next

为您的 Okta 应用程序配置设置

  1. New Web App Integration 页面的 General Settings 下,输入应用程序的名称。例如,TestApp
  2. Grant type 下,确认已选中 Authorization Code 复选框。您的用户群体使用此流程与 Okta OIDC 通信以进行联合用户登录。
  3. 对于 Sign-in redirect URLs,请输入 https://myUserPoolDomain/oauth2/idpresponse。这是 Okta 发送身份验证响应和 ID 令牌的地址。
    注意:myUserPoolDomain 替换为您的 Amazon Cognito 用户群体域名。您可以在 Amazon Cognito 控制台的域名页面上找到您的用户群体的这个域名。
  4. 配置 OPENID CONNECT 下,对于 登录重定向URLs,请输入 https://myUserPoolDomain/oauth2/idpresponse。这是 Okta 发送身份验证响应和 ID 令牌的地址。
    注意:myUserPoolDomain 替换为您的 Amazon Cognito 用户群体域名。您可以在 Amazon Cognito 控制台域名页面上找到您的用户群体的这个域名。
  5. 受控访问 中,选择您的首选访问设置,然后选择保存
  6. 客户凭证中,复制客户端 ID ** 和客户机密钥**。您需要这些凭证才能在您的 Amazon Cognito 用户群体中配置 Okta。
  7. 点击登录
  8. 登录页面上,在 ** OpenID Connect ID 令牌中,记下发行者**网址。您需要此 URL 才能在用户群体中配置 Okta。

在您的用户群体中添加 OIDC IdP

  1. Amazon Cognito 控制台中,选择管理用户群体,然后选择您的用户群体。
  2. 在左侧导航窗格中的联合身份验证下,选择身份提供者
  3. 选择 OpenID Connect
  4. 请执行以下操作:
    提供者名称中,输入 IdP 的名称。此名称会出现在 Amazon Cognito 托管的 Web UI 中。
    注意:创建提供者后,您将无法更改此字段。如果您计划在应用程序中包含此字段或使用 Amazon Cognito 托管的 Web UI,请使用一个适合展现给应用程序用户的名称。
    对于
    客户端 ID
    ,请粘贴您之前在 Okta 中记下的客户端 ID
    对于客户端密钥(可选),粘贴您之前在 Okta 中记下的客户端密钥
    对于属性请求方法,保留设置为 GET
    授权范围中,输入要授权的 OIDC 范围值,用空格分隔。有关更多信息,请参阅 OpenID 网站上OpenID Connect Basic Client Implementer's Guide 1.0 中的 Scope values
    重要信息:OIDC IdP 需要 openid 范围,您可以根据自己的用户群体配置添加其他范围。例如,如果您在创建用户群体时将电子邮件保留为必填属性,则请输入 email openid 以同时包含这两个范围。您可以稍后在此设置中将电子邮件属性映射到您的用户群体。
    对于发行人,请粘贴您之前从 Okta 复制的发行人 URL。
    对于标识符(可选),您可以选择输入自定义字符串,以便稍后在端点 URL 中代替 OIDC IdP 的名称。
  5. 选择运行发现,以获取 Okta 的 OIDC 配置端点。
  6. 选择创建提供者

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

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

  1. Amazon Cognito 控制台中,选择管理用户群体,然后选择您的用户群体。
  2. 在左侧导航窗格的应用程序集成下,选择应用程序客户端设置
  3. 在应用程序客户端页面上,执行以下操作:
    已启用的身份提供者下,为之前创建的 IdP 选中 OIDC 提供者复选框。
    (可选)选中 Cognito 用户群体复选框。
    对于回调 URL,请输入您希望用户登录后被重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/
    注销 URL 中,输入您希望用户在注销后重定向到的 URL。要进行测试,您可以输入任何有效的 URL,例如 https://example.com/
    允许的 OAuth 流程下,选择与您希望应用程序在 Cognito 进行身份验证后接收的授权类型相对应的流程。
    注意:您启用的 OAuth 流量决定了您可以将哪些值(代码令牌)用于端点 URL 中的 response_type 参数
    允许的 OAuth 范围下,至少选中电子邮件openid 复选框。
  4. 选择保存更改

有关更多信息,请参阅应用程序客户端设置术语

将电子邮件属性映射到用户群体属性

如果您之前授权了电子邮件 OIDC 范围值,请将其映射到用户群体属性。

  1. Amazon Cognito 控制台中,选择管理用户群体,然后选择您的用户群体。
  2. 在左侧导航窗格中的联合身份验证下,选择属性映射
  3. 在属性映射页面上,选择 OIDC 选项卡。
  4. 如果您的用户群体中有多个 OIDC 提供者,请从下拉列表中选择您的新提供者。
  5. 确认 OIDC 属性映射到用户群体属性用户名
  6. 选择添加 OIDC 属性,然后执行以下操作:
    OIDC 属性中,输入电子邮件
    用户群体属性中,选择电子邮件

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

登录以测试您的设置

打开Amazon Cognito 托管的 Web UI,使用 Okta 进行身份验证。成功登录后,系统会将您重定向到应用程序客户端的回调 URL。授权码或用户群体令牌会显示在 Web 浏览器地址栏的 URL 中。

有关更多信息,请参阅使用 Amazon Cognito 托管 UI 进行注册和登录

相关信息

OIDC 用户群体 IdP 身份验证流程

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

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