Я работаю над серверным приложением blazor
и борюсь именно с этой проблемой, поэтому я решил опубликовать свое решение здесь :) В AuthorizationPolicyBuilder
вызовите метод .RequireClaim()
и укажите строку "groups"
и ObjectId
вашей группы безопасности.
Прежде чем это сработает, вам необходимо go войти в ваш
Azure портал -> Azure Ad -> регистрации приложений -> конфигурации токенов -> добавить заявку на группы.
Убедитесь, что вы отметили флажок в группах безопасности и флажок ID группы в { ID, Access, SAML }
I не знаю, является ли это лучшей практикой, но у меня это сработало:)
Вот код из Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("groups", "<insert object id for group>")
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
}