Восстановление удаленного элемента (объекта каталога)
Статья
Пространство имен: microsoft.graph
Восстановление недавно удаленного приложения, группы, servicePrincipal, административной единицы или объекта пользователя из удаленных элементов. Вы можете полностью восстановить случайно удаленный элемент. Однако группы безопасности не могут быть восстановлены. Кроме того, восстановление приложения не приводит к автоматическому восстановлению связанного субъекта-службы. Чтобы явно восстановить удаленный субъект-службу, необходимо вызвать этот API.
Недавно удаленный элемент остается доступным в течение 30 дней. Через 30 дней элемент удаляется без возможности восстановления.
В следующей таблице показаны наименее привилегированные разрешения или разрешения, необходимые для вызова этого API для каждого поддерживаемого типа ресурсов. Следуйте рекомендациям , чтобы запросить разрешения с наименьшими привилегиями. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Поддерживаемый ресурс
Делегированное (рабочая или учебная учетная запись)
В делегированных сценариях с рабочими или учебными учетными записями вошедшему пользователю должна быть назначена поддерживаемая роль Microsoft Entra или настраиваемая роль с разрешением поддерживаемой роли. Для этой операции поддерживаются следующие роли с наименьшими привилегиями.
Восстановление удаленных приложений или субъектов-служб: администратор приложений, администратор облачных приложений или администратор гибридных удостоверений.
Восстановление удаленных пользователей: Администратор пользователей. Однако чтобы восстановить пользователей с привилегированными ролями администратора, выполните следующие действия:
В делегированных сценариях приложению должно быть назначено делегированное разрешение Directory.AccessAsUser.All , а вызывающему пользователю также должна быть назначена роль администратора с более высоким уровнем привилегий, как указано в разделе Кто может выполнять конфиденциальные действия?.
В сценариях только для приложений и в дополнение к предоставлению разрешения приложения User.ReadWrite.All приложению должна быть назначена более высокая привилегированная роль администратора, как указано в разделе Кто может выполнять конфиденциальные действия?.
Чтобы восстановить удаленные группы, Группы администратор. Однако для восстановления групп, назначаемых ролями, вызывающему пользователю должна быть назначена роль администратора привилегированных ролей .
В тексте запроса укажите представление параметров в формате JSON.
В следующей таблице перечислены параметры, необходимые при вызове этого действия.
Параметр
Тип
Описание
autoReconcileProxyConflict
Логический
Необязательный параметр. Указывает, следует ли Microsoft Entra ID удалять все конфликтующие прокси-адреса при восстановлении обратимо удаленного пользователя, один или несколько прокси-адресов которого в настоящее время используются для активного пользователя. Используется только для восстановления обратимо удаленных пользовательских объектов. Значение по умолчанию для этого параметра — false.
Отклик
В случае успеха этот метод возвращает код отклика 200 OK и объект directoryObject в тексте отклика.
POST https://graph.microsoft.com/v1.0/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.DeletedItems["{directoryObject-id}"].Restore.PostAsync();
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
restore, err := graphClient.Directory().DeletedItems().ByDirectoryObjectId("directoryObject-id").Restore().Post(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post()
POST https://graph.microsoft.com/v1.0/directory/deleteditems/78bf875b-9343-4edc-9130-0d3958113563/restore
Content-Type: application/json
{
"autoReconcileProxyConflict": true
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.DirectoryNamespace.DeletedItems.Item.Restore;
var requestBody = new RestorePostRequestBody
{
AdditionalData = new Dictionary<string, object>
{
{
"autoReconcileProxyConflict" , true
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.DeletedItems["{directoryObject-id}"].Restore.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphdirectory "github.com/microsoftgraph/msgraph-sdk-go/directory"
//other-imports
)
requestBody := graphdirectory.NewRestorePostRequestBody()
additionalData := map[string]interface{}{
autoReconcileProxyConflict := true
requestBody.SetAutoReconcileProxyConflict(&autoReconcileProxyConflict)
}
requestBody.SetAdditionalData(additionalData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
restore, err := graphClient.Directory().DeletedItems().ByDirectoryObjectId("directoryObject-id").Restore().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody restorePostRequestBody = new com.microsoft.graph.directory.deleteditems.item.restore.RestorePostRequestBody();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("autoReconcileProxyConflict", true);
restorePostRequestBody.setAdditionalData(additionalData);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post(restorePostRequestBody);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.directory.deleteditems.item.restore.restore_post_request_body import RestorePostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RestorePostRequestBody(
additional_data = {
"auto_reconcile_proxy_conflict" : True,
}
)
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post(request_body)