浏览器应用最佳做法

以下是在桌面浏览器中将Google登录用于工作帐户以使用SaaS产品时要采取的步骤的清单。这些是为SaaS开发人员建议的最佳实践。良好地实现登录可能非常复杂,因此请考虑使用可以为您处理大部分操作的软件和服务。 Google Identity Toolkit是一种选择,但是您也可以评估其他支持这些标准的供应商,例如Ping Identity 。 SaaS登录支持G Suite客户之后,您可能还要求成为G Suite Marketplace中列出的供应商。

  1. 很少有SaaS应用程序需要所有用户使用Google登录,因此首先确定最终用户是否应尝试使用Google登录进行身份验证。有多种方法可以做到这一点。 Google本身是成千上万运营自己的身份提供程序的公司的依赖方。如果您查看桌面应用程序(例如Google云端硬盘),则会发现登录流程的第一步只是询问电子邮件地址。输入密码后,应用程序可以确定是否应将用户重定向到身份提供者或使用密码进行身份验证。但是,并非所有应用程序每个电子邮件地址都有一个帐户,其他应用程序通常需要首先询问用户其租户名称。这的其他变体也是可能的。

  2. 第一步完成后,如果应用程序确定该帐户应通过Google登录进行身份验证,则建议使用我们的Web SDK。如果您的应用程序已经具有用户的电子邮件地址,则可以通过将其包含在您的OpenID Connect请求中来改善流程,以便Google知道仅查找以该域名结尾的帐户。在网络上,这是使用login_hint参数完成的。如果您的应用程序没有完整的电子邮件地址,但知道域名,那么您可以通过该域名,这样Google便会只查找以该域名结尾的帐户。在网络上,使用hd参数完成此操作。

  3. 从Google获得OpenID Connect断言后,请检查Google确认它是由域名管理员控制的帐户。

    • 在JavaScript中,这是使用GoogleUser.getHostedDomain()函数完成的
    • 在服务器上,ID令牌中的hd声明用于验证域是否符合您的期望。请参阅使用后端服务器进行身份验证

    然后,使用断言的电子邮件地址在系统中查找帐户记录。但是,ID令牌中的sub值是一个更稳定的标识符,因此,首选的方法是公司提前在您的系统中预配帐户,包括为您提供该sub ID。

  4. Google的OpenID Connect支持可用于用户的初始身份验证。此后,您的应用需要管理会话。

  5. 如果您已完成上述所有步骤,则应在G Suite市场中注册为供应商。它提供的优点之一是使G Suite IT管理员可以轻松地将您的应用程序添加到允许列表,以便员工可以自动登录,而无需每个员工都同意登录。

    IT管​​理员也可以手动允许您列出应用程序,但是所涉及的步骤更加复杂:

    1. 打开G Suite管理控制台
    2. 单击安全性图标,然后单击显示更多>高级设置>管理API客户端访问
    3. 输入您的SaaS应用程序在Google注册的OAuth客户端ID,通常是字母和数字字符串,后跟.apps.googleusercontent.com
    4. 在“ API范围”字段中,键入以下字符串:
      openid,profile,email
      如果您的应用需要请求其他范围来访问Google API,请在此处也指定它们。
    5. 点击授权。授权将在30分钟左右生效。