Я пытаюсь внедрить средства защиты в инструмент CLI бэк-офиса (NodeJS), который вызывает API REST (Java / JAX-RS) для выполнения операций с базой данных и т. Д.
Поскольку мы используем Azure AD для всех наших учетных записей, я хотел бы использовать его для аутентификации наших пользователей, а также для авторизации.
Требуется авторизация, поскольку предполагается, что не все члены AD используют CLI, и есть два типа пользователей CLI с различным набором доступных команд, что означает, что даже если вы сможете использовать его, некоторые функции могут быть заблокированы, если вы оператор или администратор.
Мне удалось создать два приложения в Azure AD, одно для CLI и одно для API. Я могу войти в систему, используя наши учетные данные AD, получить токены доступа для идентификатора приложения CLI, запрашивающего возобновление API REST. На стороне клиента я использую https://www.npmjs.com/package/simple-oauth2.
Со стороны Java токены проверяются на наличие открытых ключей Microsoft, так что, кажется, все работает нормально.
Но как мне заблокировать пользователей на роли оператора или администратора? Один наивный способ, который я могу придумать, - это иметь корреляцию между пользователем и ролью в REST API и использовать только поток OAuth для аутентификации пользователя. Но я полагаю, для этого и есть AD ... Могут ли в этом случае помочь области OAuth?
Или REST API должен вызвать AD для запроса членства в группах пользователей, как только он получит токены доступа и узнает личность конечного пользователя?
Заранее спасибо!