将Google帐户登录信息限制为指定的Apps域

时间:2010-09-08 15:35:54

标签: google-apps google-authentication

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

Google授权服务的hd parameter是否确保只能使用所选的域进行登录?

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

登录后,我还需要访问用户的Google通讯录,根据文档要求AuthSub proxy authentication

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:-1)

似乎我可以使用 OpenID + OAuth混合协议来识别用户并获取数据API的访问令牌,如this blog post中所述。

编辑:更新了实时博客帖子的死链接。

有关如何使用OpenID获取用户电子邮件的信息,请参阅this question。我想我可以验证它以正确的域名结束。

答案 2 :(得分:-1)

您可以使用此处所述的Google Apps域的OpenID端点:http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains

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