还原已删除的目录 Azure Active Directory 对象 - Azure Graph API

Restore Deleted Directory Azure Active Driectory Object - Azure Graph API

我们的本地 AD 有一个清理流程,需要删除本地帐户,同时保留 Azure 的单点登录服务。 这意味着我们需要能够将 Azure 帐户转换为 "Cloud Managed" 个帐户。

我的研究(和成功的测试)表明这可以通过将本地用户移动到目录同步范围之外的 OU 来实现。

问题是,虽然此操作实现了向 "Cloud Managed" 的理想转换,但它也会将 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;
    }

您可以通过较新的 Microsoft Graph API https://graph.microsoft.com 或其 SDK 恢复已删除的用户。我将很快介绍基础 API 和相关代码。

我认为恢复功能 可用于较旧的 Azure AD Graph API https://graph.windows.net 或者它是SDK,这是您当前代码正在使用的。我没有在任何地方明确说明这一点,所以我可能对此有误,但我基于两点说:

  • Microsoft 的较旧 Azure AD Graph 和较新 Microsoft Graph API 的比较博客 - Microsoft Graph or the Azure AD Graph(查看比较 table)

  • Azure AD Graph API 文档 - 我可以看到应用程序对象 here 提到的一些恢复功能,但与用户无关。也查看客户端SDK代码,我找不到任何恢复方法。

总的来说,强烈建议使用较新的 Microsoft Graph API 而不是较旧的 Azure AD Graph API,您可以在上面提到的 link 中阅读。

如何使用 Microsoft Graph 恢复用户 API

使用 .NET 客户端 SDK

GraphServiceClient graphClient = new GraphServiceClient(authProvider);

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

底层证券 API - Restore deleted item

POST https://graph.microsoft.com/v1.0/directory/deletedItems/{id}/restore