Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何在 Amazon Cognito 用户池中将 Okta 设置为 SAML 身份提供者?
我想在用户池中将 Okta 配置为 SAML 2.0 身份提供者 (IdP),以便我的应用程序用户从 Amazon Cognito 获取令牌。
简短描述
Okta SAML IdP 与 Amazon Cognito 的集成需要在两个平台上进行配置。首先,在 Okta 中创建和配置 SAML 应用程序集成。然后,将 Okta 作为 IdP 添加到您的 Amazon Cognito 用户池中,并配置应用程序客户端设置以允许 Okta 身份验证。设置完成后,最佳做法是测试身份验证流程,确认用户在通过 Okta 登录后能够收到来自 Amazon Cognito 的令牌。
解决方法
在将 Okta 配置为 SAML IdP 之前,请执行以下操作:
(可选)注册 Okta 开发者账户
**注意:**如果您已有 Okta 开发者账户,请登录。
完成以下步骤:
- 在 Okta Developer 网站上打开 Okta Developer signup(Okta Developer 注册)页面。
- 输入所需信息,然后选择 Sign up(注册)。Okta 会向您提供的电子邮件地址发送一封验证电子邮件。
- 从验证电子邮件中,查找您账户的登录信息。
- 选择 Activate account(激活账户),然后登录以完成账户创建。
创建 SAML 应用程序并为 Okta 应用程序配置 SAML 集成
完成以下步骤:
- 打开 Okta Developer 控制台。
- 在导航窗格中,展开 Applications(应用程序),然后选择 Applications(应用程序)。
- 选择 Create app integration(创建应用程序集成)。
- 在 Create a new app integration(创建新的应用程序集成)菜单中,对于 Sign-in method(登录方法),选择 SAML 2.0。
- 选择 Next(下一步)。
- 在 Create SAML Integration(创建 SAML 集成)页面的 General Settings(常规设置)下,输入应用程序的名称。
- (可选)上传徽标并选择应用程序的可见性设置。
- 选择 Next(下一步)。
- 在 SAML Settings(SAML 设置)下,对于 Single sign on URL(单点登录 URL),输入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse。
**注意:**请将 yourDomainPrefix 和 region 替换为用户池的值。要查找这些值,请打开 Amazon Cognito 控制台,然后从 Branding(品牌)部分选择 Domain(域)。 - 对于 Audience URI (SP Entity ID)(受众 URI(SP 实体 ID)),输入 urn:amazon:cognito:sp:yourUserPoolId。
**注意:**请将 yourUserPoolId 替换为您的用户池 ID。要查找用户池 ID,请查看 Amazon Cognito 控制台上的 Overview(概览)部分。 - 在 Attribute Statements (optional)(属性声明(可选))中,添加一条声明并使用以下信息:
对于 Name(名称),输入 SAML 属性名称 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress。
对于 Value(值),输入 user.email。
对于页面上的其他设置,请使用默认值或根据您的要求进行调整。 - 选择 Next(下一步)。
- 出现提示时,选择有关应用程序设置体验的反馈响应。
**注意:**这是 Okta 标准应用程序创建流程的一部分,用于收集用户体验反馈。 - 选择 Finish(完成)。
为 Okta 应用程序分配用户
完成以下步骤:
- 在 Okta 应用程序的 Assignments(分配)选项卡上,对于 Assign(分配),选择 Assign to People(分配给人员)。
- 选择要分配用户旁边的 Assign(分配)。
**注意:**如果是新账户,则只能选择自己作为用户。 - (可选)对于 User Name(用户名称),输入自定义用户名。如果您未指定用户名,Okta 会使用用户的电子邮件地址作为用户名。
- 选择 Save and Go Back(保存并返回)以完成用户分配。
- 选择 Done(完成)。
获取 Okta 应用程序的 IdP 元数据
在 Okta 应用程序的 Sign On(登录)选项卡上,在 Metadata details(元数据详细信息)下复制 Metadata URL(元数据 URL)。
在用户池中将 Okta 配置为 SAML IdP
完成以下步骤:
- 打开 Amazon Cognito 控制台。
- 选择您的用户池。
- 在导航窗格的 Authentication(身份验证)下,选择 Social and external providers(社交和外部提供商)。
- 选择 Add identity provider(添加身份提供者),然后选择 SAML。
- 在 Register your app with your SAML provider(向 SAML 提供者注册应用程序)下,对于 Provider name(提供者名称),输入 Okta。
- (可选)为 Okta 添加用于路由登录和注销请求的 SAML 标识符。
- (可选)激活 single logout(单点注销),以便在用户注销用户池时同步注销 Okta。
- 在 Metadata document source(元数据文档源)下,选择 Enter metadata document endpoint URL(输入元数据文档端点 URL),然后粘贴从 Okta **Sign On **(登录)选项卡复制的 Metadata URL(元数据 URL)。
- 在 Map attributes between your SAML provider and your user pool(在 SAML 提供者和用户池之间映射属性)下,为 SAML attribute(SAML 属性)指定 email。
- 选择 Add identity provider(添加身份提供者)。
有关详细信息,请参阅在用户池中添加和管理 SAML 身份提供商。
更改用户池的应用程序客户端设置
完成以下步骤:
- 从 Amazon Cognito 控制台的 App clients(应用程序客户端)下,选择您的用户池。
- 在导航窗格的 Applications(应用程序)下,选择 App clients(应用程序客户端)。
- 在应用程序客户端页面上,导航到 Login pages(登录页面)部分。然后,在 Managed login pages configuration(管理登录页面配置)下,选择 Edit(编辑)。
- 从 Identity Providers(身份提供者)下拉列表中,选择 Okta 和 Cognito User Pool(Cognito 用户池)。
对于 Callback URL(s)(回调 URL),指定用户成功登录后的目标 URL。
对于 Sign out URL(s)(注销 URL),指定用户注销后的目标 URL。
**注意:**如果您想测试集成,请使用占位符 URL,如 https://www.example.com/。之后可以使用应用程序的 URL 更新此占位符。
在 Allowed OAuth Flows(允许的 OAuth 流)下,选择 Implicit grant(隐式授予)。
在 Allowed OAuth Scopes(允许的 OAuth 范围)下,选择 email 和 openid。 - 选择 Save changes(保存更改)。
有关详细信息,请参阅应用程序客户端术语。
访问登录页面以测试 SAML 身份验证流程
您可以通过 Amazon Cognito 控制台访问登录页面,也可以创建登录端点 URL。
- 从 Amazon Cognito 控制台的 App clients(应用程序客户端)下,选择您的用户池。
- 选择 Login pages(登录页面)选项卡,然后选择 View login page(查看登录页面)。
-or-
创建登录端点 URL。要创建登录端点,请使用以下命名模式:
https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
**注意:**请将 yourDomainPrefix 和 region 替换为用户池的值。要在 Amazon Cognito 控制台中查找这些值,请选择 Domain name(域名)页面。 - 在登录端点网页上,选择 Okta。
**注意:**如果系统将您重定向到应用程序客户端的回调 URL,则表示您已经登录了 Okta 账户。继续执行步骤 5。 - 在 Okta Sign In(登录)页面上,输入您分配给应用程序用户的用户名和密码。
- 选择 Sign in(登录)。
- 在浏览器的地址栏中查找用户池令牌。
(可选)绕过 Amazon Cognito 托管 UI
要绕过 Amazon Cognito 托管 Web UI 并将用户直接发送到 Okta 进行登录,请使用以下 /oauth2/authorize 端点 URL:
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
注意:请将yourDomainPrefix、region、samlProviderName、yourClientId、redirectUrl 以及 allowedOauthScopes 替换为您的值。要查找 yourDomainPrefix 和 region,请从 Amazon Cognito 控制台的 Branding(品牌)部分选择 Domain(域)。对于 yourClientId 和 redirectUrl,选择 Amazon Cognito 控制台中的 App client(应用程序客户端)设置页面。
(可选)如果您添加了 SAML 标识符,请将占位符identity_provider=samlProviderName 替换为 idp_identifier=idpIdentifier。将 idpIdentifier 替换为您的自定义标识符字符串。
相关信息
在 Amazon Cognito 用户池中启动 SAML 会话
如何使用 Amazon Cognito 用户池设置第三方 SAML 身份提供者?
- 语言
- 中文 (简体)
