Установить политику авторизации из ролей, хранящихся в JWT - PullRequest
0 голосов
/ 10 февраля 2020

Я настроил Asp. Net Core 3.1 Api-приложение, которое предоставляет токены пользователям.

У пользователей может быть несколько ролей. JWT содержит эти роли в требовании «Роль»:

Role: ["Finance", "Manager"]

Аутентификация работает, но я пытаюсь настроить авторизацию, используя:

services.AddAuthorization(options =>
        {
            options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
        });

Моя проблема в том, что эта политика должна прочитать о существовании «Admin», которое является частью претензии «Role». Как я могу сделать политику, которая ищет элемент в массиве утверждений? Я пробовал RequireClaim, а также пытался связать его, как в policy.RequireClaim ("Роль"). RequireClaim ("Администратор") безрезультатно.

1 Ответ

0 голосов
/ 11 февраля 2020

Я решил эту перегрузку:

services.AddAuthorization(options =>
            {
                options.AddPolicy("Admin", policy => policy.RequireClaim("Roles", "Admin"));
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...