Теперь мы используем MSAL в нашем приложении Xamarin / C # для аутентификации пользователей , следующим шагом является определение того, является ли аутентифицированный пользователь членом определенных групп в организации, которые разрешают доступ к определенным функциямприложение.
Я получил код из StackOverflow для , запрашивая членство , он выдает исключение "Authorization_RequestDenied: недостаточно прав для завершения операции", но я попросил ИТ добавить добавитьсвойство "groupMembershipClaims" для манифеста Azure mCP, и я надеюсь, что это все исправит.
Вот некоторые основные моменты текущего кода:
var interactiveRequest = App.PCA.AcquireTokenInteractive(scopes);
var authResult = await interactiveRequest.ExecuteAsync();
var graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
// Configure the HTTP bearer Authorization Header
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken);
return (Task.FromResult(0));
}
));
var groups = await graphClient.Me.MemberOf.Request().GetAsync();
Я предполагаю, что яможет заставить это работать, но сейчас я читаю здесь о различиях между Microsoft Graph API и Microsoft AD Graph API, и я не знаю, является ли найденный код «правильным» кодом для использованияздесь, или есть ли более простой / лучший код, который я должен использовать. Является ли код, который у меня есть, для определения членства в группе рекомендуемым вариантом?
EDIT
IT устанавливает для "groupMembershipClaims" значение "SecurityGroup", и это дает то же исключение, поэтомуочевидно, запросить членство - это не то же самое, что заявить о членстве. Но в моем случае есть одна группа (роль?) С надписью «этому пользователю разрешено запускать приложение» и другая группа / роль с надписью «у этого пользователя есть доступ к специальным функциям», поэтому я не хочу запрос на аутентификациюпросто потерпеть неудачу, если пользователь не является членом этой второй группы / роли.