При авторизации API не удается найти группу объявлений для пользователя

#.net #azure-active-directory #asp.net-core-webapi #asp.net-core-3.1 #asp.net-authorization

Вопрос:

Я использую следующий код в веб-api NET 5;

 services.AddAuthorization(options =gt;  {  //options.AddPolicy("AdUser", policy =gt; policy.RequireRole(roles));  options.AddPolicy("AdUser", builder =gt;  {  builder.Requirements.Add(new CheckGroupRequirement());  });  });  public class CheckGroupRequirement : AuthorizationHandlerlt;CheckGroupRequirementgt;, IAuthorizationRequirement  {  [System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "lt;Pendinggt;")]  protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CheckGroupRequirement requirement)  {  var identity = WindowsIdentity.GetCurrent();  var principal = new WindowsPrincipal(identity);   var isInGroup = principal.IsInRole("MyADGroupGoesHere");   if (isInGroup)  {  context.Succeed(requirement);  }  else  {  context.Fail();  }   return Task.CompletedTask;  }  }  

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

Претензии возвращены, как показано ниже;

введите описание изображения здесь

IsAuthenticated = истинно

isAnonymous = ложь

Не уверен, что это что-то изменит, но мы используем Azure AD на-prem. У нас также есть службы WCF, которые используют членство в группах ОБЪЯВЛЕНИЙ для авторизации, и они работают.