如何让用户使用自己的Google帐户登录我的网络应用,并验证他们是否从某个Google Apps域登录?
Google授权服务的hd parameter是否确保只能使用所选的域进行登录?
或者我可以获取登录用户的电子邮件并验证它是否以“@ domain.com”结尾?这似乎不是一个好主意。
登录后,我还需要访问用户的Google通讯录,根据文档要求AuthSub proxy authentication。
答案 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还不支持它