IdentityServer4 - 缺少'sub'声明

时间:2018-04-24 04:19:51

标签: google-app-engine oauth-2.0 identityserver4 claims

我创建了一个示例MVC应用程序,它使用身份服务器对Google进行身份验证。验证工作正常,但当响应返回时,它缺少“子”声明并最终出现“子声明丢失”的错误。

我读了几篇关于将nameidentifier映射到sub的claimmapping的文章。但不知道该怎么做。有些博客说要通知谷歌发布子索赔。但又不知道该怎么做。

期待一些帮助!

3 个答案:

答案 0 :(得分:2)

也许与我昨天看到的相似。我找到了解决方法here

默认情况下,一些标准声明基本上会映射到MS专有键。您可以通过执行以下操作来阻止:JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

希望有所帮助!

答案 1 :(得分:0)

查看JwtSecurityTokenHandler.InboundClaimTypeMap。它允许您指定JWT的声明如何映射到ClaimsIdentity中的声明。 另一个选择是调查OIDC中间件暴露的事件,它们可能允许您拦截和操纵从Google返回的声明。

答案 2 :(得分:0)

或更具体地说,您还可以使用以下内容

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub");