На стороне Identity Server вы можете создать Службу профилей , чтобы IDS4 включал role
утверждение при выдаче токенов.
Если, например, использовать ASP.NET Identity для управления пользователями /ролей, вы можете создать службу профиля, например:
public class MyProfileService : IProfileService
{
public MyProfileService()
{ }
public Task GetProfileDataAsync(ProfileDataRequestContext context)
{
var roleClaims = context.Subject.FindAll(JwtClaimTypes.Role);
List<string> list = context.RequestedClaimTypes.ToList();
context.IssuedClaims.AddRange(roleClaims);
return Task.CompletedTask;
}
public Task IsActiveAsync(IsActiveContext context)
{
// await base.IsActiveAsync(context);
return Task.CompletedTask;
}
}
и зарегистрироваться в Startup.cs:
services.AddTransient<IProfileService, MyProfileService>();
На стороне клиента вы должны сопоставить заявку на роль из вашего токена JWT и попробоватьниже конфигурации в AddOpenIdConnect
middleware:
options.ClaimActions.MapJsonKey("role", "role", "role");
options.TokenValidationParameters.RoleClaimType = "role";