Чтобы ограничить доступ пользователей / групп к вашему приложению, вы можете попробовать следующие решения:
Ограничить пользователей / группы, используя Azure AD:
Как мой предыдущий ответ , вы всегда можете найти принцип обслуживания по идентификатору клиента после согласия / регистрации приложения в арендаторе. Вы можете использовать функцию назначения пользователей / групп :
Войдите на портал Azure с учетной записью администратора или как владелец приложения.
Выберите Azure Active Directory
. В левом меню навигации выберите Enterprise applications
.
Выберите приложение из списка. Если вы не видите приложение, начните вводить его имя в поле поиска. Или используйте элементы управления фильтром, чтобы выбрать тип приложения, статус или видимость, а затем выберите Применить.
В левом меню навигации выберите Properties
.
Убедитесь, что переключатель User assignment required?
установлен в положение «Да».
Тогда только назначенные пользователи / группы смогут получить доступ к приложению. Вы можете назначать пользователей или группы приложению через портал Azure или Powershell.
Ограничение пользователей / групп в приложении:
Метод 1: заявки на группы
Вы можете использовать groups claims
в Azure AD, настроить свое приложение на портале azure для получения групповых заявлений, отредактировав манифест:
{
...
"errorUrl": null,
"groupMembershipClaims": "SecurityGroup",
...
}
Идентификационный токен, выданный из Azure AD будет включать список идентификаторов групп текущего пользователя в заявку groups
, затем в asp. net основное приложение, вы можете ограничить доступ с помощью:
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser().RequireClaim("groups", "YourGroupID")
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
Примечание. Из документа :
Если пользователь входит в группы, превышающие установленный предел превышения (150 для токенов SAML, 200 для токенов JWT), то платформа Microsoft Identity Platform не отправляет утверждения групп в токен. Вместо этого он включает в токен заявление о превышении лимита, которое указывает приложению запрашивать API Graph для получения членства в группе.
Метод 2: роли приложения
Вы можете добавьте роли приложения в ваше приложение , назначьте роли пользователям / группам, чтобы роли включались в токен после входа в систему и согласия пользователя, ваше приложение могло использовать политику для ограничения доступа на основе утверждения ролей.