Роли - Identity Server 4 - PullRequest
0 голосов
/ 25 мая 2018

У меня есть проект, выполненный с использованием API Asp.Net Core 2.0, Identity Server и приложения WPF.Я могу получить доступ к API из WPF после входа в систему.

Теперь я пытаюсь реализовать роли, чтобы иметь возможность авторизовать доступ к API только определенным пользователям.

В Config.cs я объявляю своего Клиента и добавляю в область действия:

  new Client
            {
             AllowedScopes =
                {
                    IdentityServerConstants.StandardScopes.OpenId,
                    IdentityServerConstants.StandardScopes.Profile,
                    IdentityServerConstants.StandardScopes.Email,
                    IdentityServerConstants.StandardScopes.OfflineAccess,
                    "fiver_auth_api",
                    "role"
                },
            AlwaysIncludeUserClaimsInIdToken=true
           }

Объявление TestUser:

  return new List<TestUser>
        {
            new TestUser
            {
                SubjectId = "", Username = "", Password = "",
                Claims = new List<Claim>
                {
                    new Claim(JwtClaimTypes.Email, "AliceSmith@email.com"),
                    new Claim(JwtClaimTypes.EmailVerified, "true", ClaimValueTypes.Boolean),
                    new Claim(JwtClaimTypes.Role, "Admin"),
                    new Claim(JwtClaimTypes.Scope, "openid offline_access fiver_auth_api")
                }
            }
       }   

И в контроллере я использую:

[Authorize(Roles = "Admin")]

Почему я не получаю заявки пользователей в токене?

1 Ответ

0 голосов
/ 25 мая 2018

Для тех, кто заинтересован, есть, как я это исправил: в вашем конфигурационном файле добавьте список ваших ролей:

new ApiResource
 (
   "fiver_auth_api", 
   "Fiver.Security.AuthServer.Api", 
    new List<string> {"role"} <--- Add this line to your API
  )
...