Аутентификация Blazor с Azure AD - получение пользовательских ролей - PullRequest
0 голосов
/ 31 января 2020

Я успешно настроил приложение Blazor для аутентификации с клиентом Azure, где я работаю. Аутентификация работает прекрасно. У меня есть настройка регистрации приложения в Azure с appRoles, определенными в манифесте. Я добавил в приложение нескольких пользователей с назначенными им ролями, однако после проверки подлинности я не получаю никаких утверждений о ролях в контексте пользователя.

Startup.cs

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));


        services.AddControllersWithViews(options =>
        {
            var policy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
            options.Filters.Add(new AuthorizeFilter(policy));

        });

Манифест:

"appRoles": [
    {
        "allowedMemberTypes": [
            "User"
        ],
        "description": "Coming soon.",
        "displayName": "Viewer",
        "id": "{guid goes here}",
        "isEnabled": true,
        "lang": null,
        "origin": "Application",
        "value": "Viewer"
    },
    {
        "allowedMemberTypes": [
            "User"
        ],
        "description": "Coming soon.",
        "displayName": "Manager",
        "id": "{guid goes here}",
        "isEnabled": true,
        "lang": null,
        "origin": "Application",
        "value": "Manager"
    }
],

Я пытаюсь получить эти роли с заявками после проверки подлинности, но роли не выполняются. Это, очевидно, делает IsInRole неработающим, и я не могу найти примеры кода для достижения этой цели.

Буду очень признателен, если кто-нибудь укажет мне правильное направление!

1 Ответ

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

Если пользователю назначены роли приложения, его следует вернуть в токене id. Вы можете декодировать идентификатор токена с помощью https://jwt.io/.

enter image description here

Я не нашел образец блейзора, но вы можете сослаться на этот образец aspnetcore .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...