12.6. 身份验证成员
当您为域启用机构时,会更改用户身份验证。如果在机构上下文中识别了用户进行身份验证,则身份验证流程会基于每个机构而变化。
创建域时,会自动更新身份验证流程,以启用特定步骤验证和加入机构成员。更新身份验证流有:
- 浏览器
- 第一个代理登录
浏览器 流的主要变化是,默认为身份优先登录,以便在提示其凭据之前识别用户。对于第一个代理登录流,主更改会在通过与机构关联的身份提供程序进行身份验证并成功完成流后自动将用户添加为机构。
使用身份优先登录或不依赖于域中机构存在的选择。如果不存在机构,用户遵循常见的步骤来使用用户名和密码进行身份验证,或者在浏览器流中配置的任何其他步骤。否则,首先要求用户输入用户名或电子邮件来继续向域进行身份验证。
身份优先登录主要目的是识别用户:
- 用户是现有用户还是新用户?
- 用户是否是域内任何机构的成员?
- 如果机构成员,用户是否链接到与机构关联的任何身份提供程序?
根据识别用户时的结果,身份验证流程会改变通过要求用户的凭证进行身份验证,或者最终通过身份提供程序在机构安全边界内自动重定向用户以进行身份验证。
12.6.1. 了解身份优先登录
除了提供用户名后识别用户外,身份优先登录还负责:
- 将电子邮件域与组织匹配。
- 决定身份验证流程是否应该继续,如果提供的用户名已存在帐户
- 根据如何将域和身份提供程序配置为机构来确定用户应如何进行身份验证
- 如果电子邮件域与身份提供程序集匹配,请通过与机构关联的身份提供程序无缝验证用户
身份优先登录提供了与通常登录页面提供的相同功能,以及用户名和密码字段。用户仍可点注册链接,或者选择任何没有链接到该域中机构的身份或社交代理。
identity-first 登录页面
对于不存在的用户,如果用户尝试使用与机构域匹配的电子邮件域进行身份验证,则身份优先登录页面会再次显示提供的用户名无效的消息。此时不需要要求用户提供凭据。
用户不存在时 identity-first
有几个选项可用于注册允许用户向域进行身份验证并加入机构的用户。
如果 realm 启用了 self-registration 设置,用户可以单击 identity-first 登录页面中的 Register 链接,并在 realm 中创建一个帐户。之后,管理员可以向用户发送邀请链接,或者手动将用户添加为机构的成员。如需了解更多详细信息,请参阅管理成员。
如果机构有一个没有域的身份提供程序,并且 Hide on login page 设置为 OFF,用户也可以单击 identity-first 登录页面上的身份提供程序链接,以便在通过身份提供程序进行身份验证后自动创建帐户并加入机构。如需了解更多详细信息,请参阅管理身份提供程序。
在与上一节中类似的情况中,组织可能设置了身份提供程序,并设置其中一个机构域。在这种情况下,如果用户的电子邮件与来自机构的特定域匹配,则用户会被重定向到身份提供程序。流完成后,会创建一个帐户,用户加入机构。
12.6.2. 配置现有身份验证流
如前文所述,身份验证流会使用支持机构和验证其成员的必要步骤自动更新。对于现有域,除了为域启用机构外,您还需要手动更新现有(自定义)身份验证流。
按照以下步骤更改 浏览器 流:
流程
- 重复当前的流绑定到 浏览器流 绑定类型,以避免破坏您当前使用的流
- 点 Add sub-flow 并为它指定一个名称,如 My Organization
- 在 Identity Provider Redirector 执行步骤后,移动新添加的 My Organization 子流,使其正确执行。这里的主要点是,子流应在使用您在域支持的任何凭证验证用户的其他子流或执行步骤之前发生。添加后,将 Requirement 更改为 alternatives。
- 单击 My Organization 子流中的 Add sub-flow,并为它指定一个名称,如 My Organization - Conditional。添加后,将 Requirement 更改为 Conditional。
- 点 My Organization - Conditional sub-flow 中的 Add condition,然后选择 Condition - user configured。添加后,将 Requirement 更改为 Required。
点 My Organization - Conditional sub-flow 中的 Add 步骤,然后选择 *Organization Identity-First Login
- 执行步骤.添加后,将 Requirement 更改为 alternatives。
- 将身份验证流绑定到 浏览器 绑定类型。
机构浏览器流
在为域启用 Organizations 设置并至少创建一个机构后,您应该可以看到身份优先登录页面并开始使用域中的机构。
按照以下步骤更改 第一个代理登录流 :
流程
- 重复当前的流绑定到 第一个代理登录流 绑定类型,以避免破坏您当前使用的流
-
单击 Add sub-flow,并为它指定一个名称,如
Organization Member - Conditional
。添加后,将 Requirement 更改为 Conditional。 - 点 Organization Member - Conditional sub-flow 中的 Add condition,然后选择 Condition - user configured。添加后,将 Requirement 更改为 Required。
- 点 Organization Member - Conditional sub-flow 中的 Add step,再选择 Organization Member Onboard execution 步骤。添加后,将 Requirement 更改为 Required。
- 将身份验证流绑定到 First 代理登录 绑定类型。
机构第一个代理流
现在,您应该可以使用与某个机构关联的任何身份提供程序进行身份验证,并让用户在完成第一个浏览器登录流后立即加入机构。
12.6.3. 配置用户身份验证方式
如果流支持机构,您可以配置一些步骤来更改用户向域进行身份验证的方式。
例如,一些用例只有在是域中任何或特定机构的成员时才需要用户向域进行身份验证。
要启用此行为,您需要通过单击其设置来在 Organization Identity-First Login
execution 步骤上启用 Requires 用户成员资格
设置。
如果启用,并在用户在身份优先登录页面中提供用户名或电子邮件后,服务器将尝试通过查看任何现有成员资格或基于机构范围的语义(如果请求)来解析该用户是成员的 机构。如果没有机构的成员,则会显示错误页面。