403 forbidden when retrieve all users from Azure AD using Graph API

Обновить

April 2019

Просмотры

50 раз

1

Я получаю 403 Forbidden ответа от Azure AD при попытке получить все пользователь с помощью API Graph:

    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 имеет все разрешения:

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

Я пропускаю что-нибудь?

1 ответы

3

You have given delegated permissions, but call the API with client credentials.

Give your app application permissions on the API and you'll be able to call it. Delegated permissions only apply when you make calls on behalf of a user.