Openid 如何将Google联合登录限制到特定的应用程序域?

Openid 如何将Google联合登录限制到特定的应用程序域?,openid,google-apps,Openid,Google Apps,我想在客户的应用程序中实现单点登录。该客户通过谷歌应用程序托管了电子邮件。由于谷歌提供OpenID,这可能相对容易实现。但是,用户可能没有登录到正确的Google帐户(甚至多个帐户) 因此,当使用Google OpenID端点https://www.google.com/accounts/o8/id用户可以选择要登录的谷歌账户。由于该应用程序将只允许从Google Apps域登录,因此可以跳过此步骤,以增加用户体验。然而,我找不到这样做的方法。有这样的,但链接都死了或参考过时的规格。此外,我在规

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

因此,当使用Google OpenID端点
https://www.google.com/accounts/o8/id
用户可以选择要登录的谷歌账户。由于该应用程序将只允许从Google Apps域登录,因此可以跳过此步骤,以增加用户体验。然而,我找不到这样做的方法。有这样的,但链接都死了或参考过时的规格。此外,我在规格中找不到任何提示

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


虽然我找不到官方记录,但特定谷歌应用程序域的终点是:

https://google.com/accounts/o8/site-xrds?hd=<domain>
https://google.com/accounts/o8/site-xrds?hd=
使用此方法时,请注意,您将遇到特定于google的修改:

Google稍微改变了IdP发现和用户XRDS检查的方式,以某种格式为Google应用程序用户提供openid,而不要求用户构建自己的openid服务器。对于小公司来说,如果使用谷歌应用程序,人们只需一个域名就可以在自己的域名下获得openid


这对我在GAE和users下使用python是不起作用的。使用上面的url作为联合身份参数创建_login_url()。还有其他人试过吗?关于这个问题,我问了另外一个问题
https://google.com/accounts/o8/site-xrds?hd=<domain>