Я использовал следующие разрешения:
public void Test()
{
try
{
string tenantId = User.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;
string authority = "https://login.microsoftonline.com/{0}/common/oauth2/v2.0/token?scope=openid%20profile%20User.ReadWrite%20User.ReadBasic.All%20Sites.ReadWrite.All%20Contacts.ReadWrite%20People.Read%20Notes.ReadWrite.All%20Tasks.ReadWrite%20Mail.ReadWrite%20Files.ReadWrite.All%20Calendars.ReadWrite";
string graphResourceId = "https://graph.microsoft.com";
string clientId = "XXX-XXX-XXX-XXX";
string secret = "XXXXXXXXXXXXXXXXXXXXXXXX";
authority = String.Format(authority, tenantId);
AuthenticationContext authContext = new AuthenticationContext(authority);
var accessToken = authContext.AcquireTokenAsync(graphResourceId, new ClientCredential(clientId, secret)).Result.AccessToken;
var graphserviceClient = new GraphServiceClient(new DelegateAuthenticationProvider(requestMessage =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.FromResult(0);
}));
var _users = graphserviceClient.Users.Request().GetAsync().Result;
}
catch (Exception ex)
{
throw ex;
}
}
public async Task<IActionResult> Index()
{
string tenantId = User.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value;
string ClientID = "xxx-xxx-xxx-xxx";
ActiveDirectoryClient adClient = new ActiveDirectoryClient(new Uri("https://graph.windows.net/" + tenantId), async () => await GetAppTokenAsync(tenantId).ConfigureAwait(true));
try
{
var naaaewuser = adClient.Users.ExecuteAsync().Result;
}
catch (Exception ex)
{
throw ex;
}
return View();
}
"код": "Authorization_RequestDenied"
"value": "Недостаточно прав для завершения операции."
Может кто-нибудь помочь мне, как я могу получить список пользователей организации, которая выполнила вход без «Согласие администратора»?Также, пожалуйста, дайте мне знать, если есть альтернатива для этого.
Спасибо