IdentityServer4 с AspNetIdentity - добавление утверждений ролей - PullRequest
0 голосов
/ 05 мая 2020

Я использую профиль IdentityServerSPA с IdentityServer4 и AspNetIdentity. Я хочу включить роли из AspNetIdentity в качестве требований ролей. В моем настраиваемом ProfileService я вижу, что утверждения ролей добавляются в ClaimPrincipal с помощью AspNetIdentity, но не попадают в клиентское приложение. Я считаю, что это проблема с «AllowedScopes», но я попытался добавить их в конфигурацию клиента в настройках приложения. json, но ничего не работает. Я уверен, что что-то упускаю, но у меня не хватает времени и лба, чтобы продолжать стучать именно по этой стене.

1 Ответ

0 голосов
/ 13 мая 2020

Не совсем так. Вот что решило проблему для меня.

В AppSettings. json добавьте область для имени и роли

"IdentityServer": {
    "Clients": {
      "PrymeServer": {
        "Profile": "IdentityServerSPA",
        "Scope": "openid profile name role PrymeServerAPI"
      }
    }
  }

Затем в ProfileService клиента добавьте утверждения в контекст

public Task GetProfileDataAsync(ProfileDataRequestContext context)
{
    var roleClaims = context.Subject.FindAll(JwtClaimTypes.Role);
    var nameClaims = context.Subject.FindAll(JwtClaimTypes.Name);
    context.IssuedClaims.AddRange(roleClaims);
    context.IssuedClaims.AddRange(nameClaims);
    return Task.CompletedTask;
}

Big кричите Броку Аллену и Доминику Байеру за помощь!

...