9.10. 第一登录流程
当用户通过身份验证代理登录时,Red Hat Single Sign-On 导入用户在本地数据库中的用户链接。当 Red Hat Single Sign-On 成功通过外部身份提供程序验证用户时,会出现以下两种情况:
- Red Hat Single Sign-On 已导入并把用户帐户与经过身份验证的身份提供程序帐户相关联。在这种情况下,Red Hat Single Sign-On 以现有用户身份进行身份验证,再重新重定向到应用程序。
- 在 Red Hat Single Sign-On 中不存在这个用户的帐户。通常,您将注册并导入一个新帐户到 Red Hat Single Sign-On 数据库,但可能存在有一个具有相同电子邮件地址的现有红帽单点登录帐户。自动将现有本地帐户链接到外部身份提供程序是一个潜在的安全漏洞。您无法始终信任您从外部身份提供程序获取的信息。
在处理其中的一些情况时,不同的机构有不同的要求。在 Red Hat Single Sign-On 中,您可以使用 IDP 设置中的 First Login Flow 选项,为从外部 IDP 登录的用户选择首次登录 的工作流。默认情况下,First Login Flow 选项指向 第一个代理登录流,但您可以为不同的身份提供程序使用流或不同的流。
流位于 Authentication 选项卡下的管理控制台中。当您选择 First Broker Login 流时,您会看到默认使用的验证器。您可以重新配置现有的流。例如,您可以禁用某些验证器,将其部分标记为 必需,或者配置某些验证器。
9.10.1. 默认首次登录流身份验证 复制链接链接已复制到粘贴板!
- 查看配置集
- 此验证器显示配置集信息页,因此用户可以检查其配置集,Red Hat Single Sign-On from a identity provider.
-
您可以在 Actions 菜单中设置
Update Profile On First Login选项。 - 在 ON 时,用户会看到配置集页面,请求额外信息联合该用户的身份。
- 缺少 时,如果身份提供程序未提供强制信息,则会在配置集页面中显示用户,如电子邮件、名字或姓氏。
-
当 OFF 时,配置集页面不会显示,除非用户在
Confirm Link Existing Accountauthenticator 显示的页面中的Review profile info链接中点击。
- 创建用户如果唯一性
此验证器将检查是否有现有的红帽单点登录帐户,该帐户具有相同的电子邮件或用户名,如来自身份提供程序的帐户。如果没有,则验证器只创建一个新的本地 Red Hat Single Sign-On 帐户,并将其与身份提供程序链接,整个流完成。否则,它会进入下一个
Handle Existing Account子流。如果始终需要确保没有重复的帐户,您可以将这个验证器标记为REQUIRED。在这种情况下,如果存在现有的 Red Hat Single Sign-On 帐户并且用户需要通过帐户管理链接身份提供程序帐户,用户会看到错误页面。- 此验证器将验证是否有红帽单点登录帐户与身份提供程序帐户具有相同的电子邮件或用户名。
- 如果帐户不存在,则验证器会创建一个本地 Red Hat Single Sign-On 帐户,将这个帐户与身份提供程序链接,并终止流。
-
如果存在帐户,则验证器将实施下一个
Handle Existing Account子流。 -
为确保没有重复的帐户,您可以将这个验证器标记为
REQUIRED。如果存在 Red Hat Single Sign-On 帐户,该用户会看到错误页面,用户必须通过帐户管理链接其身份提供程序帐户。
- 确认链接现有帐户
-
在信息页面中,用户会看到一个具有相同电子邮件的 Red Hat Single Sign-On 帐户。用户可以再次查看其配置集并使用不同的电子邮件或用户名。流重启并返回到
Review Profile验证器。 - 另外,用户可以确认他们想将其身份提供程序帐户与其现有的红帽单点登录帐户相关联。
- 如果您不希望用户看到此确认页面,请禁用此验证器,并通过电子邮件验证或重新验证来直接链接身份提供程序帐户。
-
在信息页面中,用户会看到一个具有相同电子邮件的 Red Hat Single Sign-On 帐户。用户可以再次查看其配置集并使用不同的电子邮件或用户名。流重启并返回到
- 通过电子邮件验证现有帐户
-
这个验证器
默认为ALTERNATIVE。如果域配置了 SMTP 设置,Red Hat Single Sign-On 会使用这个验证器。 - 验证器将发送电子邮件给用户,以确认他们想将身份提供程序与红帽单点登录帐户链接。
- 如果您不想通过电子邮件确认链接,但希望用户使用密码重新进行身份验证,则禁用此验证器。
-
这个验证器
- 通过 Re-authentication 验证现有帐户
- 如果电子邮件验证器不可用,则使用此验证器。例如,您尚未为您的域配置 SMTP。此身份验证器显示一个登录屏幕,供用户通过身份提供程序链接其 Red Hat Single Sign-On 帐户。
- 用户还可重新与已链接到红帽单点登录帐户的另一个身份提供程序重新进行身份验证。
- 您可以强制用户使用 OTP。否则,如果您为用户帐户设置了 OTP,则它是可选的。
9.10.2. 自动链接现有的第一个登录流 复制链接链接已复制到粘贴板!
AutoLink 验证器在通用环境中具有危险,用户可使用任意用户名或电子邮件地址注册自己。请勿使用此验证器,除非您仔细策展用户注册并分配用户名和电子邮件地址。
要配置第一个登录流,在不提示的情况下自动链接用户,请使用以下两个验证器创建一个新流:
- 创建用户如果唯一性
- 此验证器可确保 Red Hat Single Sign-On 处理唯一的用户。将验证器要求设置为 Alternative。
- 自动设置现有用户
- 此验证器将现有用户设置为身份验证上下文,无需验证。将验证器要求设置为 "Alternative"。
此设置是可用的最简单设置,但也可以使用其他验证器。例如:如果您想要最终用户确认其配置集信息,您可以将 Review Profile 验证器添加到流的开头。* 您可以为这个流程添加验证机制,强制用户验证其凭证。添加验证机制需要复杂的流程。例如,您可以在 "Alternative" 子流中设置 "Automically Set Existing User" 和 "Password Form",作为 "Alternative" 子流。
9.10.3. 禁用自动用户创建 复制链接链接已复制到粘贴板!
默认第一个登录流查找与外部身份匹配的 Red Hat Single Sign-On 帐户,并提供链接它们。如果没有匹配的 Red Hat Single Sign-On 帐户,网络流会自动创建一个。
对于某些设置,这个默认行为可能不适合。例如,当您使用只读 LDAP 用户存储时,会预先创建所有用户。在这种情况下,您必须关闭自动用户创建。
禁用用户创建:
流程
- 在菜单中,单击 Authentication。
- 从列表中选择 First Broker Login。
- 将 Create User If unique to DISABLED 设置为 DISABLED。
- 将 "确认链接现有账户" 设置为 DISABLED。
此配置还意味着红帽单点登录本身无法确定哪个内部帐户与外部身份对应。因此,Verify Existing Account By Re-authentication authenticator 将要求用户提供用户名和密码。
9.10.4. 检测现有的用户首次登录流 复制链接链接已复制到粘贴板!
要配置第一个登录流,请执行以下操作:
- 只有已在此域中注册的用户才能登录,
- 用户会自动链接,而不会被提示,
使用以下两个验证器创建一个新流:
- 检测现有代理用户
-
这个验证器可确保处理唯一的用户。将验证器要求设置为
强制。 - 自动设置现有用户
-
自动将现有用户设置为身份验证上下文,而无需验证。将验证器要求设置为
强制。
您必须将身份提供程序 配置的第一个登录流 设置为该流。如果要更新具有身份提供程序属性的用户配置集(Last Name, First Name…),您也可以将 Sync Mode 设置为 force。
如果要将身份委派给其他身份提供程序(如 github, facebook …)但您希望管理可以登录的用户,可以使用这个流。
使用这个配置,Red Hat Single Sign-On 无法确定哪个内部帐户与外部身份对应。Verify Existing Account By Re-authentication authenticator 请求供应商获取用户名和密码。