在Identity Server端,您可以创建
Profile Service
使IDS4包含
role
发行代币时索赔。
如果示例,如果使用ASP.NET标识要管理用户/角色,可以创建配置文件服务,如:
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;
}
}
然后注册启动.cs:
services.AddTransient<IProfileService, MyProfileService>();
AddOpenIdConnect
中间件:
options.ClaimActions.MapJsonKey("role", "role", "role");
options.TokenValidationParameters.RoleClaimType = "role";