Добавьте пользователя в Azure Active Directory, используя https://graph.microsoft.com с ActiveDirectoryClient - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь добавить пользователя в Active Directory моего клиента Azure.

Я использую Microsoft Graph API.Тот же самый, который отображается через Graph Explorer здесь .

Проблема в том, что независимо от того, что serviceRoot URI Я передаю, я получаю исключение.

Я успешно получаю токен в методе GetTokenForApplication:

ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(serviceRoot,
                      async () => await GetTokenForApplication());

Однако, когда я звоню:

await activeDirectoryClient.Users.AddUserAsync(aadUser);

Выдает это исключение:

 "{\r\n
    \"error\": {\r\n
                   \"code\": \"BadRequest\",\r\n
                   \"message\": \"Query parameter api-version not allowed\",\r\n    
                   \"innerError\": {\r\n
                                    \"request-id\": \"57327a85-8320-4363-b5f9-aeacdf782861\",\r\n
                                    \"date\": \"2019-05-30T21:59:55\"\r\n
                                   }\r\n
               }\r\n
}"

Это serviceRoot URI , который я использую: "https://graph.microsoft.com/v1.0"

Какой URI я должен передать в serviceRoot ?

Совместим ли ActiveDirectoryClient с Microsoft Graph? Я спрашиваю, потому что образец, в котором я видел ActiveDirectoryClient, использовал Azure AD Graph API.

Этот пост в блоге показывает разницу междустарый Azure AD Graph API и новый Microsoft Graph API. Кстати: Microsoft советует нам использовать Microsoft Graph API, потому что все новые разработки будут сосредоточены на нем.

1 Ответ

1 голос
/ 31 мая 2019

Я думаю, что вы пытаетесь использовать более новый Microsoft Graph API (https://graph.microsoft.com), но используете клиентскую библиотеку для более старого Azure AD Graph API (https://graph.windows.net)

Подробнее о сравнении вы можете прочитать здесь - Microsoft Graph или Azure AD Graph

Вот детали пакета и класса Nuget:

Microsoft Graph API

  • Microsoft.Graph пакет nuget - для работы с Microsoft Graph API и использования GraphServiceClient класса.

API Azure AD Graph

  • Microsoft.Azure.ActiveDirectory.GraphClient пакет nuget - для работы с API Azure AD Graph и использования класса ActiveDirectoryClient.

Код для Microsoft Graph API Client

Документы Microsoft - Создание пользователя - Пример кода SDK

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var user = new User
{
    AccountEnabled = true,
    DisplayName = "displayName-value",
    MailNickname = "mailNickname-value",
    UserPrincipalName = "upn-value@tenant-value.onmicrosoft.com",
    PasswordProfile = new PasswordProfile
    {
        ForceChangePasswordNextSignIn = true,
        Password = "password-value"
    }
};

await graphClient.Users
    .Request()
    .AddAsync(user);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...