使用登录提示时的单点登录 (SSO) 登录流程

作为 IdP,Google 支持登录提示参数,以便在用户执行服务提供商 (SP) 发起的登录时简化登录流程。存在登录提示时,Google 身份验证服务器会使用提示执行以下操作:

  • 预填充电子邮件地址字段:身份验证服务器会在登录表单中预填充电子邮件地址,从而为用户省去这一步。
  • 启用直接登录:如果与提示关联的用户已与 Google 建立有效会话,服务器会自动使其登录,从而提供流畅的体验。

对服务提供商的要求

如果您的应用知道尝试登录的用户的身份,则可以在发送到单点登录网址的 HTTP 请求中包含登录提示参数 (login_hint)。login_hint 的值应为用户的 NameID,如以下示例所示:

https://www.accounts.google.com/o/saml2/idp?idpid=<customer_id>&login_hint=<email_id_of_the_user>

注意:Google 的 SAML IdP 不会使用 AuthnRequest 的 Subject 元素中可能存在的 NameID。请改用 login_hint

使用登录提示时的登录行为

下表总结了当 SAML 请求中存在登录提示参数时,用户登录 Google 的方式会有什么不同:

已登录的用户 登录提示值 行为
不存在 用户会看到常规的 Google 登录页面。
user@domain.com Google 登录页面上的电子邮件地址会使用 user@domain.com 进行预填充。user@domain.com
user1@domain.com 不存在 系统会绕过 Google 登录页面,并让 user1 直接登录服务提供商。
user1@domain.com
user2@domain.com Google 登录页面会使用 user2@domain.com 进行预填充。user2@domain.com
user1@domain.com
user2@domain.com
不存在 Google 账号选择器界面会显示所有已登录的用户。
user1@domain.com

系统会绕过 Google 登录页面,并让 user1 直接登录服务提供商。

user2@domain.com 系统会绕过 Google 登录页面,并让 user2 直接登录服务提供商。

user3@domain.com
(用户未登录有效会话)

Google 登录页面会使用 user3@domain.com 进行预填充。user3@domain.com