还原已删除的目录 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
我们的本地 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