我在某个网址上托管了Auth服务。我的所有微服务都请求验证以对每个请求进行身份验证。在我的每个服务的StartUp.cs中
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = WebConfigurationManager.AppSettings["IdentityServerURL"],
ValidationMode = ValidationMode.ValidationEndpoint,
//ValidationMode = ValidationMode.Local,
RequiredScopes = new[] { "user-api" },
});
工作正常!在我的控制器方法中,在这种情况下我可以看到
{role:consumer}
但如果我改变
ValidationMode = ValidationMode.Local,
根据这一点,我的要求并没有通过自动化。
我该怎么办?ValidationMode = ValidationMode.Local
具有正常的索赔角色值?
答案 0 :(得分:1)
Microsoft在收到令牌时应用声明映射。要删除此默认映射,请在启动时将其添加到Configuration方法:
JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();
了解更多信息:
How to use InboundClaimTypeMap for claim mapping?
Update of System.IdentityModel.Tokens.Jwt causing breaking change in IdentityServer3 Client