При использовании Azure AD B2 C, где я должен хранить заявки и роли для моего основного сайта pnet - PullRequest
1 голос
/ 14 апреля 2020

Итак, я следовал https://about-azure.com/using-azure-ad-b2c-with-angular-8/ и теперь могу войти на мой angular сайт и контроллеры доступа с атрибутом [Authorize].

Но чтобы сделать это более полезным, я потребуются административные, платные, роли / политика Globaladmin, чтобы я мог выполнять

services.AddAuthorization(options =>
            {
                options.AddPolicy("AdminOnly", policy => policy.RequireClaim("IsAdmin"));
            });

[Authorize(Policy = "AdminOnly")]

или

[Authorize(Roles= "IsAdmin")]

Но я нигде не могу найти учебник о том, как и где я должен хранить это информация о каждом пользователе, я бы предположил, что эти дополнительные требования должны храниться в AD B2 C, но я ничего не могу найти, когда просматриваю https://portal.azure.com/#blade / Microsoft_AAD_B2CAdmin / TenantManagementMenuBlade / Overview

Должен ли я просто создать отдельную базу данных, в которой я храню пользователя с ролями, а затем вручную проверяю это и добавляю эти роли при доступе к веб-сайту?

1 Ответ

0 голосов
/ 14 апреля 2020

Несколько подходов к этому сценарию. Вы можете хранить информацию о пользователе в пользовательских атрибутах, которым можно присвоить значение на основе логики c, которую вы контролируете (а не пользователя). Во время выдачи id_token вы отправляете эти пользовательские атрибуты обратно в приложение как роли.

В качестве альтернативы вы можете выбрать отдельную базу данных, в которой хранится сопоставление пользователя с ролями. Во время входа в систему вы можете выполнить вызов REST-API в базе данных, чтобы прочитать роли, назначенные пользователю, и отправить их обратно в id_token.

Я бы склонялся ко второму подходу, так как он обеспечивает лучшее разделение интересов и свободу в разработке системы на основе ролей, которая работает лучше всего для вас.

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