sso使用oauth2 / OIDC登录而无需重定向 - 可能吗?

时间:2018-04-23 18:05:27

标签: php single-sign-on oidc

我正在试图弄清楚我需要做些什么来实施SSO。 所以基本上我正在建设:

a)php网站(example.com)
b)android app(com.android.example)

网站和应用程序将有一个登录表单+社交登录按钮,通过Twitter,FB等进行身份验证。

我不理解的是 - 人们如何在没有重定向的情况下在OIDC服务器上进行身份验证的站点上实现登录表单?如果我理解正确 - OIDC流程要求将人员重定向到不同的网站进行登录...如何避免这种情况,以便用我的个人OIDC服务器无缝登录(对于其他社交登录,如谷歌 - 我真的不在乎关于重定向)?

1 个答案:

答案 0 :(得分:1)

如果您已有登录表单并收集用户凭据,则可以利用“资源所有者凭据”流,即“密码”授权类型。这是一种由OAuth规范定义的类型,由OIDC继承。

密码授予类型允许OAuth / OIDC客户端直接将用户的凭据发送到OAuth / OIDC服务器。对于Web和本机设备应用程序中受信任的第一方客户,此授权是一种良好的用户体验。

您基本上向OIDC服务器的/accessToken端点发送请求,提供:

grant_type=password&client_id=ID&client_secret=<SECRET>&username=USERNAME&password=PASSWORD

更多信息,请访问:https://tools.ietf.org/html/rfc6749#section-1.3.3