如何让用户使用他们的 Google 帐户登录我的网络应用程序,并验证他们是否从某个 Google Apps 域登录?
谷歌授权服务的hd参数是否确保只有选定的域可以用于登录?
或者我可以获取登录用户的电子邮件并验证它是否以“@domain.com”结尾?这似乎不是一个好主意。
登录后,我还需要访问用户的 Google 联系人,根据文档需要AuthSub 代理身份验证。
如何让用户使用他们的 Google 帐户登录我的网络应用程序,并验证他们是否从某个 Google Apps 域登录?
谷歌授权服务的hd参数是否确保只有选定的域可以用于登录?
或者我可以获取登录用户的电子邮件并验证它是否以“@domain.com”结尾?这似乎不是一个好主意。
登录后,我还需要访问用户的 Google 联系人,根据文档需要AuthSub 代理身份验证。
查看其他人建议的 OpenID 文档。简而言之,您需要根据用户的域名将用户重定向到自定义登录 URL - 即您需要在重定向之前找出他们的域名,即您的 hd 参数,这确实会强制登录到指定的域
这也是支持 Google Apps 域的 SSO 所必需的,其中用户的身份验证不是由 Google 而是由第三方服务处理的。
确保在获得身份验证信息后检查 openID 提供商,而不仅仅是电子邮件地址域名。
您可以将 OpenID 端点用于 Google Apps 域,如下所述:http ://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains
根据您的 OpenID 库,您可能/可能无法使用它。例如 openid4java 还不支持