Ограничьте количество пользователей, разрешенных с помощью Entra и учетных записей, в любой учетной записи организации и личных учетных записях Microsoft

У меня есть веб-приложение, в котором я хочу разрешить членам моего клуба доступ к сайту, но я не хочу обрабатывать пароли/авторизацию, поэтому я хочу использовать Entra для аутентификации.

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

Проблема, с которой я столкнулся, заключается в том, что в настоящее время доступ к сайту разрешен ЛЮБОМУ пользователю. Есть ли способ ограничить количество пользователей, которые могут получить доступ к сайту, без необходимости приглашать каждого пользователя присоединиться к моему каталогу, чтобы затем я мог добавить им роль. Я просто хочу, чтобы пользователи могли делать мне запросы (может быть, переходя на определенную веб-страницу или сообщая мне в WhatsApp свой адрес электронной почты), а затем я могу предоставить им доступ, не переходя туда и обратно.

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

Есть ли лучший способ добиться этого?

Мое приложение — .Net8, работающее на Blazor (чистый WebAssembly) и имеющее отдельный WebApi, который имеет доступ к базе данных, предоставляющей все данные.

Чтобы ограничить количество пользователей, которые могут получить доступ к вашему веб-приложению, не приглашая каждого пользователя присоединиться к вашему каталогу, вы можете использовать группы Azure AD для управления доступом к вашему приложению. Вы можете создать группу в Azure AD и добавить в нее пользователей, которые должны иметь доступ к вашему приложению. Затем вы можете настроить свое приложение так, чтобы доступ разрешался только пользователям, которые являются членами этой группы.

Rukmini 17.07.2024 09:18

Это можно сделать, обновив параметр «Требуется назначение пользователя?». установите значение «Да» и выберите группу, которая должна иметь доступ к приложению.

Rukmini 17.07.2024 09:18

@rukmini, проблема в том, как мне добавить людей в эту группу, не добавляя их предварительно в свой домен? Также у меня есть только базовая (бесплатная) входная плата, поэтому я не могу создавать группы (только роли)

Mog0 17.07.2024 17:28

Тогда нет никакого способа добиться этого, вам нужно добавить пользователей в свой арендатор.

Rukmini 17.07.2024 17:45

Могу ли я опубликовать это как ответ?

Rukmini 18.07.2024 15:03

Пожалуйста, сделайте Рукмини. Это тот ответ, которого я ожидал, но надеялся, что есть какая-то особенность, о которой я не знал 🙂

Mog0 18.07.2024 16:50
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
6
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратите внимание: Чтобы добавить роль пользователю, пользователь должен быть добавлен в каталог.

  • Вы можете создать группу и добавить пользователей, но даже для этого пользователей необходимо добавить в каталог.
  • Вы можете настроить свое приложение так, чтобы доступ разрешался только пользователям, назначенным приложению/роли.
  • Установите для параметра «Требуется назначение пользователя» значение «Да» и выберите группу/пользователей, которые должны иметь доступ к приложению.

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

Следовательно, невозможно добавить роль пользователям без добавления пользователей в каталог.

Создал группу безопасности Azure AD и добавил гостя в качестве участника:

Назначенная роль:

Для примера сгенерированный токен доступа:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
scope:api://xxx/.default
grant_type:authorization_code
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret

Когда я декодировал токен, роль пользователя присутствует:

Спасибо, Рукмини. В итоге я сохранил список пользователей в своей базе данных, который кэширую в памяти, и при каждом событии аутентификации (т. е. при каждом входящем запросе к моему API) я проверяю, находится ли пользователь в этом списке пользователей.

Mog0 22.07.2024 11:29

Это хороший подход :)

Rukmini 22.07.2024 11:33

Другие вопросы по теме