asp.net mvc и Azure авторизация на основе группы безопасности активного каталога
Я ищу помощь для приложения ASP.NET MVC. Аутентифицируют пользователей активного каталога с одним клиентом Azure и могут авторизовать пользователей с помощью группы безопасности активного каталога. то есть, если пользователь является частью этой группы безопасности, то разрешить доступ только к сайту, в противном случае доступ запрещен.
Аутентификация в Active Directory может быть выполнена самой Visual Studio с помощью мастера, но не уверен, как выполнить авторизацию через группу безопасности AAD.
PS Я новичок в безопасности ASP.NET
1 ответ
Когда пользователь входит в приложение, входящий токен из Azure AD будет содержать групповые утверждения, как только вы соответствующим образом измените манифест приложения (шаги см. В приведенной ниже ссылке на пример приложения). Код вашего приложения может затем прочитать эти заявления и принять решения об авторизации на их основе.
Вот пример приложения, которое выполняет авторизацию на основе групповых утверждений:
Авторизация в веб-приложении с использованием групп и утверждений Azure AD
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ДЛЯ РАССМОТРЕНИЯ ПРИ РЕАЛИЗАЦИИ АВТОРИЗАЦИОННОЙ ЛОГИКИ
Вы специально задали вопрос о группах, но вам также следует рассмотреть возможность использования ролей приложений, которые могут помочь вам реализовать логику авторизации на основе ролей. Посмотрите на ссылку на документацию Microsoft. Вот ссылка на другой похожий вопрос, где я предоставил немного более подробную информацию о ролях приложений и группах и ссылки на пример кода для обоих. Интеграция Azure Active Directory с настраиваемым RBAC
Как только вы поймете использование / назначение ролей и групп приложений, вы вполне сможете решить, что вы хотите основывать свою логику авторизации на комбинации информации о ролях и группах для вошедшего в систему пользователя, а не на одной.
В случае, когда пользователь входит в состав многих групп (6 или более AFAIK), токен Azure AD не отправляет через "группы" напрямую как часть токена, вместо этого он отправляет индикатор превышения, а затем вы можете запросить группы в отдельный звонок. Взгляните на документацию, связанную с токеном, здесь - Претензии в id_tokens