3

如何让用户使用他们的 Google 帐户登录我的网络应用程序,并验证他们是否从某个 Google Apps 域登录?

谷歌授权服务的hd参数是否确保只有选定的域可以用于登录?

或者我可以获取登录用户的电子邮件并验证它是否以“@domain.com”结尾?这似乎不是一个好主意。

登录后,我还需要访问用户的 Google 联系人,根据文档需要AuthSub 代理身份验证

4

3 回答 3

1

查看其他人建议的 OpenID 文档。简而言之,您需要根据用户的域名将用户重定向到自定义登录 URL - 即您需要在重定向之前找出他们的域名,即您的 hd 参数,这确实会强制登录到指定的域

这也是支持 Google Apps 域的 SSO 所必需的,其中用户的身份验证不是由 Google 而是由第三方服务处理的。

确保在获得身份验证信息后检查 openID 提供商,而不仅仅是电子邮件地址域名。

于 2011-07-05T09:04:15.883 回答
-1

您可以将 OpenID 端点用于 Google Apps 域,如下所述:http ://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains

根据您的 OpenID 库,您可能/可能无法使用它。例如 openid4java 还不支持

于 2011-06-29T06:59:56.933 回答
-1

看来我可以使用OpenID+OAuth 混合协议来识别用户并获取对数据 API 的访问令牌,如本文所述。

编辑:更新了实时博客文章的死链接。

有关如何使用 OpenID 获取用户电子邮件的信息,请参阅此问题。我想我可以验证它是否以正确的域名结尾。

于 2010-09-09T07:42:59.130 回答