我希望我的依赖方应用程序(RP)能够与任何oidc提供商连接。 这意味着用户将能够设置任何支持openid connect的身份提供程序。
因此,例如,我希望我的RP应用程序具有一个重定向uri
以便所有IDP在身份验证代码流中都调用相同的IDP。
RP如何区分每个IDP?知道要调用哪个IDP来完成oauth流程?
答案 0 :(得分:3)
您可以使用auth请求的state参数:
state
不透明值,用于维持请求和回调之间的状态...
状态值将包含随机部分和auth privider标识符。例如“ google-A41DsGDm”。身份验证提供程序应该返回与包含身份验证代码的重定向URL相同的状态值。因此,您的/auth/callback
处理程序将知道(在验证状态值的随机部分之后)调用哪个身份验证提供者的/token
端点来获取令牌。
出于完整性考虑,如果您只想使用单个后端处理程序,则可以将以/auth/callback
开头的所有URI映射到该处理程序,并接受以下路径参数作为auth provider标识符。例如/auth/callback/google?code=...
。