如何使用 Amazon Cognito 用户群体将 OneLogin 设置为 SAML 身份提供商?

2 分钟阅读
0

我希望使用 Amazon Cognito 用户群体将 OneLogin 设置为安全断言标记语言 2.0(SAML 2.0)身份提供商(IdP)。

简短描述

Amazon Cognito 用户群体允许通过第三方(联合身份验证)登录。这包括通过诸如 OneLogin 之类的 SAML IdP 登录。有关详细信息,请参阅通过第三方添加用户群体登录向用户群体添加 SAML 身份提供者。要将 OneLogin 设置为 SAML IdP,您需要一个 Amazon Cognito 用户群体和一个带有应用程序的 OneLogin 账户。

解决方法

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

有关详细信息,请参阅以下文章:

**注意:**创建用户群体时,系统会默认选择标准属性 email。有关详细信息,请参阅用户群体属性

创建 OneLogin 账户

  1. 打开 OneLogin 网站,然后选择免费试用
  2. 在账户创建页面的您的 OneLogin 域下,记下 OneLogin 提供的域。

创建 OneLogin 应用程序

  1. 在 OneLogin 门户页面(https://your-new-domain.onelogin.com/portal/)上,选择管理
  2. 在“管理”页面上,将鼠标悬停在应用程序上,然后选择添加应用程序
  3. 查找应用程序下的搜索栏中,输入 saml,然后选择 SAML 测试连接器(IdP)。打开**添加 SAML 测试连接器(IdP)**页面。
  4. (可选)在添加 SAML 测试连接器(IdP)页面上,执行以下所有步骤:
    显示名称
    中,输入名称和描述。例如,Cognito 设置(IdP)
    对于矩形图标方形图标,根据页面上的规范上传缩略图图标。
    描述中,输入简短的概述。例如,用于 Amazon Cognito 用户群体
  5. 选择保存

编辑 OneLogin 应用程序配置

  1. 在 OneLogin 门户页面(https://your-new-domain.onelogin.com/portal/)上,选择配置
  2. 配置页面上,完成以下步骤:
    对于 RelayState,输入有效的 URL,如 https://www.example.com
    对于受众,输入 urn:amazon:cognito:sp:yourUserPoolId
    对于接收者,输入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    对于ACS(使用者)URL 验证器,输入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    对于 ACS(使用者)URL,输入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    对于单个注销 URL,将该字段留空。
    注意:对于受众,请将 yourUserPoolId 替换为您的 Amazon Cognito 用户群体 ID。在 Amazon Cognito 控制台中可以找到该 ID,它位于您的用户群体管理页面的常规设置选项卡中。
    对于 ACS(使用者)URL 验证器ACS(使用者)URL,请将 yourDomainPrefixregion 替换为您的用户群体对应的值。在 Amazon Cognito 控制台中可以找到这些值,它们位于您的用户群体管理页面的域名选项卡中。

编辑 OneLogin 应用程序的参数

  1. 在 OneLogin 门户页面(https://your-new-domain.onelogin.com/portal/)上,选择参数
    注意:****参数页面会默认列出参数 NameID (fka Email)
  2. 选择添加参数以创建新的自定义参数。
  3. 新建字段对话框的字段名称中输入 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
  4. 对于标志,选中包含在 SAML 断言中复选框。
  5. 选择保存
  6. 对于,从列表中选择电子邮件
  7. 选择保存

复制 OneLogin 应用程序的 IdP 元数据

  1. 在 OneLogin 门户页面(https://your-new-domain.onelogin.com/portal/)上,选择 SSO
  2. 发布者 URL 下,复制 URL。
  3. 选择保存

在 Amazon Cognito 中将 OneLogin 配置为 SAML IdP

要在 Amazon Cognito 中将 OneLogin 配置为 SAML IdP,请参阅为用户群体创建和管理 SAML 身份提供商(AWS 管理控制台)。按照在您的用户群体中配置 SAML 2.0 身份提供商下的说明操作。创建 SAML IdP 时,对于元数据文档,粘贴您之前复制的发布者 URL

将电子邮件地址从 IdP 属性映射到用户群体属性

要将电子邮件地址从 IdP 属性映射到用户群体属性,请参阅为您的用户群体指定身份提供商属性映射。按照指定 SAML 提供商属性映射下的说明操作。在属性映射下添加 SAML 属性时,对于 SAML 属性,请输入 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier。对于用户群体属性,从列表中选择电子邮件

在 Amazon Cognito 中更改应用程序客户端设置

注意:这是用于测试目的的示例设置。对于生产设置,最佳做法是为您的应用程序客户端设置使用授权代码授予 OAuth 流。使用该流时,在重定向 URL 中进行身份验证后,您将收到一个授权代码。您必须通过向令牌端点发出请求来交换 JSON Web 令牌(JWT)的授权代码。

  1. Amazon Cognito 控制台应用程序集成下,选择应用程序客户端设置。然后完成以下步骤:
    启用的身份提供商下,选择全选复选框。
    对于回调 URL,输入您希望用户登录后被重定向到的 URL。要进行测试,输入任何有效的 URL,例如 https://www.example.com
    对于注销 URL,输入您希望用户在注销后被重定向到的 URL。要进行测试,输入任何有效的 URL,例如 https://www.example.com
    允许的 OAuth 流下,至少选中隐式授予复选框。
    允许的 OAuth 范围下,至少选中电子邮件openid 复选框。
  2. 选择保存更改。有关详细信息,请参阅更新用户群体应用程序客户端(AWS CLI 和 AWS API)

测试登录端点

  1. 在浏览器中,输入 https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
    注意:请将 yourDomainPrefixregion 替换为您的用户群体的值。在 Amazon Cognito 控制台中可以找到这些值,它们位于您的用户群体管理页面的域名选项卡中。将 yourClientId 替换为应用程序客户端的 ID,并将 redirectUrl 替换为应用程序客户端回调 URL。在 Amazon Cognito 控制台中可以找到这些值,它们位于您的用户群体管理页面的应用程序客户端设置选项卡中。有关详细信息,请参阅如何为 Amazon Cognito 配置托管 Web UI?登录端点
  2. 选择 OneLogin
    **注意:**如果您被重定向到应用程序客户端的回调 URL,则表示您已经在浏览器中登录了 OneLogin 账户。所有内容都已正确设置。
  3. 在 OneLogin 页面上,对于用户名,输入您的 OneLogin 账户用户名。
  4. 选择继续
  5. 密码中,输入您的 OneLogin 账户密码。
  6. 选择继续

相关信息

将第三方 SAML 身份提供商与 Amazon Cognito 用户群体集成

SAML 用户群体 IdP 身份验证流

AWS 官方
AWS 官方已更新 8 个月前