отображать список пользователей в группе AD в веб-приложении azure - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в веб-приложении azure. Мой пример использования - отображение всех присутствующих пользователей, принадлежащих к одной группе AD, на веб-странице. Я уже пытался запустить команду power shell " Get-azureaduser " в моем контроллере веб-приложения, но он выдает ошибку, сообщающую, что " рабочая область poweshell должна быть запущена в режиме администратора ». Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вы можете попробовать приведенный ниже фрагмент кода, используя Microsoft Graph SDK

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var groups = await graphClient.Groups
    .Request()
    .GetAsync();

Другой способ, которым вы можете попробовать:

        string tokenUrl = $"https://login.microsoftonline.com/YourTenant.onmicrosoft.com/oauth2/token";
        var tokenRequest = new HttpRequestMessage(HttpMethod.Post, tokenUrl);

        //I am Using client_credentials as It is mostly recomended
        tokenRequest.Content = new FormUrlEncodedContent(new Dictionary<string, string>
        {
            ["grant_type"] = "client_credentials",
            ["client_id"] = "b603c7be-a866_Your_Client_Id_6921e61f925",
            ["client_secret"] = "Vxf1SluKbgu_Client_Secret_SeZ8wL/Yp8ns4sc=",
            ["resource"] = "https://graph.microsoft.com/" // If you use auth/V2.0 then use ["scope"] = "https://graph.microsoft.com/.default" 

        });

        dynamic json;
        AccessTokenClass results = new AccessTokenClass();
        HttpClient client = new HttpClient();

        var tokenResponse = await client.SendAsync(tokenRequest);

        json = await tokenResponse.Content.ReadAsStringAsync();
        results = JsonConvert.DeserializeObject<AccessTokenClass>(json);


        //New Block For Accessing Group Data from Microsoft Graph Rest API
        HttpClient _client = new HttpClient();
        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, string.Format("https://graph.microsoft.com/v1.0/groups"));

        //Passing Token For this Request
        request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", results.access_token);
        HttpResponseMessage response = await _client.SendAsync(request);
        dynamic objAdGroupList = JsonConvert.DeserializeObject<dynamic>(await response.Content.ReadAsStringAsync());

Класс, который я использовал:

  public class AccessTokenClass
        {
            public string token_type { get; set; }
            public string expires_in { get; set; }
            public string resource { get; set; }
            public string access_token { get; set; }

        }

Требуемое разрешение На Azure Портал:

У вас должно быть Application permission Group.Read.All, Directory.Read.All, Group.ReadWrite.AllDirectory.ReadWrite.All разрешение на azure портале.

См. Скриншот ниже:

enter image description here

Если у вас все еще есть какие-либо вопросы, пожалуйста, обратитесь к официальным документам и почувствуйте бесплатно поделиться.

Надеюсь, это поможет

0 голосов
/ 26 февраля 2020
...