我有一个使用oidc-client的角应用程序来访问使用IdentityServer3提供OpenID Connect身份验证的API。
在身份验证期间,oidc-client会抛出错误:
sub from user info endpoint does not match sub in access_token
仅供参考,以下步骤成功:
/openid/login?signin=xxx
/openid/connect/authorize
但是后来oidc-client调用了API的/openid/connect/userinfo
。
API未实现userinfo端点,/openid/connect/userinfo
返回一个空对象:{}
。
然后oidc-client通过上面的错误消息停止了整个过程。
oidc-client中是否有一个选项可以跳过对userinfo端点的调用?或者,API是否必须实现该端点?
答案 0 :(得分:2)
oidc将始终在内部将userinfo调用验证用户,因为默认设置为 true ,并通过查询.well-known / openid-configuration来调用其传入的access_token 。 跳过这个也不是一个好主意。您的客户端应用程序是否在IDP上正确注册。
查看以下控制userinfo端点的oidc-client选项配置: