Я получаю 403 Запрещенный ответ от Azure AD при попытке получить всех пользователей с помощью Graph API:
public static async Task<string> AppAuthenticationAsync()
{
var tenant = ConfigurationManager.AppSettings["ida:TenantId"];
var resource = "https://graph.microsoft.com/";
var clientID = ConfigurationManager.AppSettings["ida:ClientId"];
var secret = ConfigurationManager.AppSettings["ida:AppKey"];
var authority = $"https://login.microsoftonline.com/{tenant}";
var authContext = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority);
var credentials = new ClientCredential(clientID, secret);
var authResult = await authContext.AcquireTokenAsync(resource, credentials);
return authResult.AccessToken;
}
public static async Task<string[]> GetUsersListAsync(HttpClient client)
{
var payload = await client.GetStringAsync($"https://graph.microsoft.com/v1.0/users");
var obj = JsonConvert.DeserializeObject<JObject>(payload);
var users = from g in obj["value"]
select g["displayName"].Value<string>();
return users.ToArray();
}
А ниже приведен код, который используется в моем контроллере для получения результата
var token = await AppAuthenticationAsync();
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var users = await GetUsersListAsync(client);
lstADUsers = users.ToList();
}
Клиент, зарегистрированный в Azure AD, имеет все разрешения:
Я что-то упустил?