我正在试图弄清楚我需要做些什么来实施SSO。 所以基本上我正在建设:
a)php网站(example.com)
b)android app(com.android.example)
网站和应用程序将有一个登录表单+社交登录按钮,通过Twitter,FB等进行身份验证。
我不理解的是 - 人们如何在没有重定向的情况下在OIDC服务器上进行身份验证的站点上实现登录表单?如果我理解正确 - OIDC流程要求将人员重定向到不同的网站进行登录...如何避免这种情况,以便用我的个人OIDC服务器无缝登录(对于其他社交登录,如谷歌 - 我真的不在乎关于重定向)?
答案 0 :(得分:1)
如果您已有登录表单并收集用户凭据,则可以利用“资源所有者凭据”流,即“密码”授权类型。这是一种由OAuth规范定义的类型,由OIDC继承。
密码授予类型允许OAuth / OIDC客户端直接将用户的凭据发送到OAuth / OIDC服务器。对于Web和本机设备应用程序中受信任的第一方客户,此授权是一种良好的用户体验。
您基本上向OIDC服务器的/accessToken
端点发送请求,提供:
grant_type=password&client_id=ID&client_secret=<SECRET>&username=USERNAME&password=PASSWORD