如何限制Google联合登录特定的Apps域?

Bou*_*uke 6 openid google-apps

我想在客户的应用程序中实现单点登录.客户通过Google Apps托管了电子邮件.Google提供OpenID,这可能相对容易实现.但是,用户可能无法登录到正确的Google帐户(甚至是多个帐户).

因此,在使用Google OpenID端点时https://www.google.com/accounts/o8/id,系统会向用户显示他/她想要登录的Google帐户.由于该应用程序只允许从Google Apps域登录,因此可以跳过此步骤,并应提高用户体验.但是,我无法找到办法做到这一点.在SO上有这个问题,但链接都已死或参考过时的规格.此外,我在Google帐户用户联合登​​录规范中找不到提示.

有些地方说应该使用https://www.google.com/a/[domain]/o8/ud?be=o8,但这似乎不起作用(不再):

$ wget --header='Accept: application/xrds+xml' https://www.google.com/a/[domain]/o8/ud?be=o8
2012-01-24 09:29:53 ERROR 400: Bad Request.
Run Code Online (Sandbox Code Playgroud)

Bou*_*uke 6

虽然我找不到官方记录,但特定Google Apps域的终点是:

https://google.com/accounts/o8/site-xrds?hd=<domain>
Run Code Online (Sandbox Code Playgroud)

使用此方法时,请注意您将进行特定于谷歌的修改:

谷歌改变了IdP发现的方式,用户XRDS检查了一下,以http://example.com/openid?id=108441225163454056756格式为Google Apps用户提供openid,而不要求用户构建自己的openid服务器.对于小公司而言,如果他们使用Google Apps,人们就可以在他们的域名下使用少量域名.资源