получить членов группы из azure рекламы через график Microsoft - PullRequest
1 голос
/ 27 февраля 2020

Я работаю в asp. net приложении. Аутентификация с внешним провайдером идентификации (Azure Active Directory)

Я хочу получать членов группы из azure объявления через график Microsoft

Как я могу это сделать ??

1 Ответ

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

Кажется, вы пытаетесь получить всех членов группы из указанной c группы. Просто Получите идентификатор группы, Object Id на портале azure. См. Снимок экрана ниже.

enter image description here

Фрагмент кода:

Вы можете попробуйте следующий фрагмент кода, который работает нормально, как и ожидалось.

    //Token Request End Point
    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 recommended
    tokenRequest.Content = new FormUrlEncodedContent(new Dictionary<string, string>
    {
        ["grant_type"] = "client_credentials",
        ["client_id"] = "b6695c7be_YourClient_Id_e6921e61f659",
        ["client_secret"] = "Vxf1SluKbgu4PF0Nf_Your_Secret_Yp8ns4sc=",
        ["resource"] = "https://graph.microsoft.com/" 
    });

    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 Member List from Microsoft Graph Rest API
    var groupId = "Group Id which Member You want to Retrieve";
    HttpClient _client = new HttpClient();
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, string.Format("https://graph.microsoft.com/v1.0/groups/{0}/members"),groupId);
    //Passing Token For this Request
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", results.access_token);
    HttpResponseMessage response = await _client.SendAsync(request);
    //Get User List With Business Phones and Mobile Phones
    dynamic objGpraphUserList = 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; }
    }

Разрешение :

Вам нужно установить User.Read.All, Group.Read.All, Directory.Read.All Application permission в Microsoft Graph API на портале azure.

enter image description here

Результат запроса теста:

enter image description here

Подробнее Вы можете сослаться на Официальный документ

Надеюсь, это поможет. Не стесняйтесь поделиться, если у вас возникнут какие-либо проблемы.

...