Пространство имен: microsoft.graph
Восстановление недавно удаленного объекта каталога из удаленных элементов. Поддерживаются следующие типы:
Если элемент случайно удален, его можно полностью восстановить. Кроме того, восстановление приложения не приводит к автоматическому восстановлению связанного субъекта-службы. Чтобы явно восстановить удаленный субъект-службу, необходимо вызвать этот API.
Недавно удаленный элемент остается доступным в течение 30 дней. Через 30 дней элемент удаляется без возможности восстановления.
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальная служба |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай управляется 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Разрешения
В следующей таблице показаны наименее привилегированные разрешения или разрешения, необходимые для вызова этого API для каждого поддерживаемого типа ресурсов. Следуйте рекомендациям , чтобы запросить разрешения с наименьшими привилегиями. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
| Поддерживаемый ресурс |
Делегированное (рабочая или учебная учетная запись) |
Делегированное (личная учетная запись Майкрософт) |
Приложение |
|
administrativeUnit |
AdministrativeUnit.ReadWrite.All |
Не поддерживается. |
AdministrativeUnit.ReadWrite.All |
|
application |
Application.ReadWrite.All |
Не поддерживается. |
Application.ReadWrite.OwnedBy |
|
agentIdentity |
AgentIdentity.DeleteRestore.All |
Не поддерживается. |
AgentIdentity.DeleteRestore.All |
|
agentIdentityBlueprint |
AgentIdentityBlueprint.DeleteRestore.All |
Не поддерживается. |
AgentIdentityBlueprint.DeleteRestore.All |
|
agentIdentityBlueprintPrincipal |
AgentIdentityBlueprintPrincipal.DeleteRestore.All |
Не поддерживается. |
AgentIdentityBlueprintPrincipal.DeleteRestore.All |
|
agentUser |
AgentIdUser.ReadWrite.IdentityParentedBy |
Не поддерживается. |
AgentIdUser.ReadWrite.IdentityParentedBy |
|
certificateBasedAuthPki |
PublicKeyInfrastructure.Read.All |
Не поддерживается. |
PublicKeyInfrastructure.Read.All |
|
certificateAuthorityDetail |
PublicKeyInfrastructure.Read.All |
Не поддерживается. |
PublicKeyInfrastructure.Read.All |
|
group |
Group.ReadWrite.All |
Не поддерживается. |
Group.ReadWrite.All |
|
servicePrincipal |
Application.ReadWrite.All |
Не поддерживается. |
Application.ReadWrite.OwnedBy |
|
user |
User.DeleteRestore.All |
Не поддерживается. |
User.DeleteRestore.All |
Важно!
Для делегированного доступа с использованием рабочих или учебных учетных записей пользователю, выполнившего вход, необходимо назначить поддерживаемую роль Microsoft Entra или пользовательскую роль, которая предоставляет разрешения, необходимые для этой операции. Эта операция поддерживает следующие встроенные роли, которые предоставляют только минимальные необходимые привилегии:
- Удостоверения агента, схемы удостоверений агента и субъекты схемы удостоверений агента: администратор идентификаторов агента
- Административные единицы: читатели каталогов (только для чтения), глобальные читатели (только для чтения), администратор привилегированных ролей
- Приложения: администратор гибридных удостоверений, администратор облачных приложений, администратор приложений
- Внешние профили пользователей: глобальный читатель (только для чтения), Skype для бизнеса администратор, администратор Teams
- Группы: Администратор групп (за исключением групп с возможностью назначения ролей), Администратор пользователей (за исключением групп, назначаемых ролями), Администратор привилегированных ролей (наименее привилегированная роль для групп, назначаемых ролями)
- Ожидающие внешние профили пользователей: глобальный читатель (только для чтения), Skype для бизнеса администратор, администратор Teams
- Субъекты-службы: администратор гибридных удостоверений, администратор облачных приложений, администратор приложений
- Пользователи: администратор проверки подлинности, привилегированный администратор проверки подлинности, администратор пользователей. Однако чтобы восстановить пользователей с привилегированными ролями администратора, выполните следующие действия:
- В делегированных сценариях приложению должно быть назначено делегированное разрешение Directory.AccessAsUser.All , а вызывающему пользователю также должна быть назначена роль администратора с более высоким уровнем привилегий, как указано в разделе Кто может выполнять конфиденциальные действия?.
- В сценариях только для приложений и в дополнение к предоставлению разрешения приложения User.ReadWrite.All приложению должна быть назначена более высокая привилегированная роль администратора, как указано в разделе Кто может выполнять конфиденциальные действия?.
HTTP-запрос
POST /directory/deletedItems/{id}/restore
Текст запроса
В тексте запроса укажите представление параметров в формате JSON.
В следующей таблице перечислены параметры, необходимые при вызове этого действия.
| Параметр |
Тип |
Описание |
| autoReconcileProxyConflict |
Логический |
Необязательный параметр. Указывает, следует ли Microsoft Entra ID удалять все конфликтующие прокси-адреса при восстановлении обратимо удаленного пользователя, один или несколько прокси-адресов которого в настоящее время используются для активного пользователя. Используется только для восстановления обратимо удаленного пользователя. Значение по умолчанию для этого параматера — false. |
| newUserPrincipalName |
String |
Новое имя пользователя userPrincipalName , добавляемое восстановленным пользователем. Необязательный параметр. |
Отклик
В случае успеха этот метод возвращает код отклика 200 OK и объект directoryObject в тексте отклика.
Примеры
Пример 1. Восстановление удаленного объекта каталога
Запрос
POST https://graph.microsoft.com/v1.0/directory/deletedItems/46cc6179-19d0-473e-97ad-6ff84347bbbb/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();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post()->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# 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()
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects/$entity",
"@odata.type":"#microsoft.graph.group",
"id":"46cc6179-19d0-473e-97ad-6ff84347bbbb",
"displayName":"SampleGroup",
"groupTypes":["Unified"],
"mail":"example@contoso.com",
"mailEnabled":true,
"mailNickname":"Example",
"securityEnabled":false,
"visibility":"Public"
}
Пример 2. Восстановление удаленного пользователя и удаление конфликтующих прокси-адресов
Запрос
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);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
autoReconcileProxyConflict: true
};
await client.api('/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore')
.post(directoryObject);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Directory\DeletedItems\Item\Restore\RestorePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RestorePostRequestBody();
$additionalData = [
'autoReconcileProxyConflict' => true,
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post($requestBody)->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
autoReconcileProxyConflict = $true
}
Restore-MgDirectoryDeletedItem -DirectoryObjectId $directoryObjectId -BodyParameter $params
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# 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)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"@odata.type": "#microsoft.graph.user",
"id": "78bf875b-9343-4edc-9130-0d3958113563",
"businessPhones": [],
"displayName": "SampleUser",
"givenName": "Sample",
"jobTitle": "Product Marketing Manager",
"mail": "sampleuser@contoso.com",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "sampleuser@contoso.com"
}
Пример 3. Восстановление удаленного пользователя и назначение ему нового userPrincipalName
Запрос
POST https://graph.microsoft.com/v1.0/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore
Content-Type: application/json
{
"newUserPrincipalName": "johndoe@contoso.com"
}
// 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>
{
{
"newUserPrincipalName" , "johndoe@contoso.com"
},
},
};
// 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);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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{}{
"newUserPrincipalName" : "johndoe@contoso.com",
}
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)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// 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("newUserPrincipalName", "johndoe@contoso.com");
restorePostRequestBody.setAdditionalData(additionalData);
var result = graphClient.directory().deletedItems().byDirectoryObjectId("{directoryObject-id}").restore().post(restorePostRequestBody);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
newUserPrincipalName: 'johndoe@contoso.com'
};
await client.api('/directory/deletedItems/78bf875b-9343-4edc-9130-0d3958113563/restore')
.post(directoryObject);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Directory\DeletedItems\Item\Restore\RestorePostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RestorePostRequestBody();
$additionalData = [
'newUserPrincipalName' => 'johndoe@contoso.com',
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->directory()->deletedItems()->byDirectoryObjectId('directoryObject-id')->restore()->post($requestBody)->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
newUserPrincipalName = "johndoe@contoso.com"
}
Restore-MgDirectoryDeletedItem -DirectoryObjectId $directoryObjectId -BodyParameter $params
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# 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 = {
"new_user_principal_name" : "johndoe@contoso.com",
}
)
result = await graph_client.directory.deleted_items.by_directory_object_id('directoryObject-id').restore.post(request_body)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Отклик
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects/$entity",
"@odata.type": "#microsoft.graph.user",
"id": "78bf875b-9343-4edc-9130-0d3958113563",
"businessPhones": [],
"displayName": "SampleUser",
"givenName": "Sample",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "johndoe@contoso.com"
}