基本上我们需要一个解决方案(基于PHP或集成可能),使用户能够使用凭据(双因素身份验证)登录到我们的门户网站,然后应该自动/静默登录到我们的谷歌应用程序域的特定用户?我们在这里有什么选择?我们是否应该使用某种形式的SSO/SAML联合,或使用Google OAuth2 API等自动执行登录过程?谷歌应用程序 - 自动登录域用户
1
A
回答
0
您可以使用SAML2,但这是一个巨大的努力。如果您已经使用SAML2来登录用户,我建议将您的PHP应用程序与SAML2身份提供程序集成。
使用OAuth2进行登录过程要简单得多。 It is documented here,附带PHP示例。
基本上你需要将用户重定向到URL这样的:
https://accounts.google.com/o/oauth2/auth?
client_id=424911365001.apps.googleusercontent.com&
response_type=code&
scope=openid%20email&
redirect_uri=https://yourapp/oauth2callback&
state=security_token%3D138r5719ru3e1%26url%3Dhttps://yourapp/pagewheretheusermustbesentback&
openid.realm=yourdomain.com&
hd=yourdomain.com
的state
参数是文档中详细介绍,它可提供为您的应用重定向URL知道在哪里可以发送用户时他的身份验证以及您应用必须检查的安全令牌,以确保没有人欺骗用户登录。
您必须通过Google Cloud Console生成client_id
参数。首先创建一个项目,然后为您的应用程序生成“Web Application”类型的证书。注意提供正确的重定向uri。
当用户接受认证时,他被重定向到https://yourapp/oauth2callback
,用code
参数检索用户的信息,包括电子邮件。这是通过一个POST请求完成:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
code=the_code_you_got_when_the_user_was_redirected
client_id=424911365001.apps.googleusercontent.com&
client_secret=yourclientsecret&
redirect_uri=https://yourapp/oauth2callback&
grant_type=authorization_code
的回应将是这样的:
{"iss":"accounts.google.com",
"at_hash":"HK6E_P6Dh8Y93mRNtsDB1Q",
"email_verified":"true",
"sub":"10769150350006150715113082367",
"azp":"1234987819200.apps.googleusercontent.com",
"email":"[email protected]",
"aud":"1234987819200.apps.googleusercontent.com",
"iat":1353601026,
"exp":1353604926 }
现在你有用户的电子邮件,将其存储在会话,你是好去!
请注意,此方法将向用户显示同意书。如果您要让知情同意书消失,请在安全>高级>管理OAuth客户端访问中将您的客户端ID添加到Google Apps控制面板中,其范围为email
和profile
。
相关问题
- 1. 如何使用谷歌自动登录当用户kill应用程序
- 2. 谷歌加登录android应用程序
- 3. 谷歌应用程序登录文件
- 4. 通过在Android应用程序谷歌登录验证用户
- 5. 使用谷歌认证登录烧瓶应用程序的自定义域
- 6. 如何在谷歌应用程序中设置谷歌登录?
- 7. django登录谷歌应用帐户
- 8. 通过谷歌帐户登录到iPhone应用程序。
- 9. 登录谷歌帐户选项在谷歌App Engine网络应用程序
- 10. 完全自定义登录谷歌应用程序引擎
- 11. 自定义登录谷歌应用程序引擎
- 12. 谷歌登录Android应用程式
- 13. 谷歌应用引擎用户登录谷歌帐户不适用于java
- 14. 使用Windows窗体应用程序自动登录用户?
- 15. 谷歌+登录iOS应用程序拒绝使用谷歌SDK v3.x
- 16. 让用户自动登录谷歌文档
- 17. 自动登录应用程序
- 18. Web应用程序自动登录
- 19. BlackBerry应用程序自动登录
- 20. 自动登录到Zoho应用程序
- 21. iPhone应用程序自动登录
- 22. 谷歌应用程序脚本区域
- 23. Android应用程序:使用谷歌ID登录?
- 24. 如何在iPhone应用程序中使用谷歌AdSense登录?
- 25. 使用谷歌登录Android应用程序和API之间
- 26. 以编程方式登录谷歌应用程序引擎C#
- 27. 如何使用谷歌登录信息登录到我的应用程序
- 28. 自动登录Facebook用户到应用程序
- 29. 自动将用户登录到Laravel 4应用程序的URL
- 30. OSX应用程序商店和自动登录应用程序
您是否试图将用户(自动)登录到他们的Google帐户(即登录到您的门户,然后登录到他们的Gmail)?在这种情况下,SAML是唯一的选择。 – nvnagr 2014-10-28 08:31:53