首页 新闻 会员 周边

IdentityServer 报错:"idp claim is missing"

0
悬赏园豆:30 [已解决问题] 解决于 2021-02-15 15:11

一个使用 IdentityServer4 的 ASP.NET Core 项目在完成登录后跳转到 /connect/authorize/callback 时报错,对应的错误日志如下:

Unhandled exception: idp claim is missing
System.InvalidOperationException: idp claim is missing
   at IdentityServer4.Extensions.PrincipalExtensions.GetIdentityProvider(IIdentity identity)
   at IdentityServer4.Extensions.PrincipalExtensions.GetIdentityProvider(IPrincipal principal)
   at IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator.ProcessLoginAsync(ValidatedAuthorizeRequest request)
   at IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator.ProcessInteractionAsync(ValidatedAuthorizeRequest request, ConsentResponse consent)
   at IdentityServer4.Endpoints.AuthorizeEndpointBase.ProcessAuthorizeRequestAsync(NameValueCollection parameters, ClaimsPrincipal user, ConsentResponse consent)
   at IdentityServer4.Endpoints.AuthorizeEndpoint.ProcessAsync(HttpContext context)
   at IdentityServer4.Hosting.IdentityServerMiddleware.Invoke(HttpContext context, IEndpointRouter router, IUserSession session, IEventService events, IBackChannelLogoutService backChannelLogoutService)

请问如何解决?

问题补充:

正常时的 Claims

{
  "sub": "bd42420b-63cf-dd11-9e4d-001cf0cd135",
  "idp": "local",
  "amr": "pwd",
  "auth_time": "1613349406"
}

报错时的 Claims

{
  "sub": "bd42420b-63cf-dd11-9e4d-001cf0cd1235"
}
dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2021-02-15 08:10

必须要再claims里面带上"idp"么

Code_Song 3年前
< >
分享
最佳答案
0

通过下面的代码解决了,详见博文 解决 IdentityServer 授权与登录分离的问题

var isu = new IdentityServerUser(userId.ToString());
isu.IdentityProvider = IdentityServerConstants.LocalIdentityProvider;
isu.AuthenticationMethods.Add(OidcConstants.AuthenticationMethods.Password);
isu.AuthenticationTime = DateTime.UtcNow;

await HttpContext.SignInAsync(
    IdentityServerAuthentication.DefaultScheme,
    isu.CreatePrincipal());
dudu | 高人七级 |园豆:31003 | 2021-02-15 15:11
其他回答(1)
0

OIDC对idtoken的规范中idp并不是必选的,iss,sub以及有效时间两个字段是必选的。

这里报错应该是ids4自身的实现要求的吧。

收获园豆:30
Timetombs | 园豆:3954 (老鸟四级) | 2021-02-15 10:36

是 ids4 自身的要求

支持(0) 反对(0) dudu | 园豆:31003 (高人七级) | 2021-02-15 12:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册