Восстановить удаленный каталог Azure Active Driectory Object - API Azure Graph - PullRequest
4 голосов
/ 25 мая 2019

У нас есть процесс очистки для нашей предварительной AD, который требует удаления предварительных учетных записей при сохранении единого входа в службы Azure.Это означает, что нам нужна возможность конвертировать учетные записи Azure в учетные записи «Cloud Managed».

Мои исследования (и успешное тестирование) говорят, что этого можно добиться, переместив локального пользователя в подразделение, которое находится за пределамиОбласть действия dirsync.

Проблема заключается в том, что, хотя это действие выполняет желаемое преобразование в «Управляемое облаком», оно также перемещает учетную запись Azure в «DeletedObjects»

Как программно восстановитьтолько облачный аккаунт из DeletedObjects?(Microsoft.Azure.ActiveDirectory.GraphClient v 2.1.1)

    public static bool RestoreDeletedUser(Guid ObjectId)
    {
        ActiveDirectoryClient activeDirectoryClient = AuthenticationHelper.GetActiveDirectoryClientAsApplication();
        Task<IPagedCollection<IDirectoryObject>> userQuery = activeDirectoryClient.DeletedDirectoryObjects.Where(u => u.ObjectId.Equals(ObjectId.ToString())).ExecuteAsync();
        userQuery.Wait();
        IPagedCollection<IDirectoryObject> userQueryResult = userQuery.Result;
        List<IDirectoryObject> user = userQueryResult.CurrentPage.ToList();
        if (user.Count == 1)
        {
            user.First().restore(); //What do I do here? .restore is not a function.
        }
        return false;
    }

1 Ответ

3 голосов
/ 25 мая 2019

Вы можете восстановить удаленных пользователей через более новый Microsoft Graph API https://graph.microsoft.com или его SDK. Вскоре я расскажу об основном API и связанном коде.

Я думаю, что возможность восстановления НЕ доступна с более старыми Azure AD Graph API https://graph.windows.net или его SDK, который используется в вашем текущем коде. Я не нашел нигде этого явно заявленного, так что есть вероятность, что я могу ошибаться, но я говорю это на основании двух вещей:

  • Блог Microsoft для сравнения более старой версии Azure AD Graph и более новых API Microsoft Graph - Microsoft Graph или Azure AD Graph (см. Таблицу сравнения)

    enter image description here

  • Документация по API Azure AD Graph - я мог видеть некоторые возможности восстановления, упомянутые с объектом приложения здесь , но ничего не касалось пользователя. Просматривая клиентский код SDK, я не смог найти никаких методов для восстановления.

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

Как восстановить пользователя с помощью Microsoft Graph API

Использование .NET Client SDK

GraphServiceClient graphClient = new GraphServiceClient(authProvider);

await graphClient.Directory.DeletedItems["{object-id}"]
    .Restore()
    .Request()
    .PostAsync()

Базовый API - Восстановить удаленный элемент

POST https://graph.microsoft.com/v1.0/directory/deletedItems/{id}/restore
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...