oidc

时间:2019-02-19 06:24:09

标签: oauth-2.0 openid-connect

我希望我的依赖方应用程序(RP)能够与任何oidc提供商连接。 这意味着用户将能够设置任何支持openid connect的身份提供程序。

因此,例如,我希望我的RP应用程序具有一个重定向uri

  

http://www.example.com/auth/callback

以便所有IDP在身份验证代码流中都调用相同的IDP。

RP如何区分每个IDP?知道要调用哪个IDP来完成oauth流程?

1 个答案:

答案 0 :(得分:3)

您可以使用auth请求的state参数:

  

state不透明值,用于维持请求和回调之间的状态...

状态值将包含随机部分和auth privider标识符。例如“ google-A41DsGDm”。身份验证提供程序应该返回与包含身份验证代码的重定向URL相同的状态值。因此,您的/auth/callback处理程序将知道(在验证状态值的随机部分之后)调用哪个身份验证提供者的/token端点来获取令牌。

出于完整性考虑,如果您只想使用单个后端处理程序,则可以将以/auth/callback开头的所有URI映射到该处理程序,并接受以下路径参数作为auth provider标识符。例如/auth/callback/google?code=...