Пространство имен: microsoft.graph
Проверка соответствия отображаемого имени или почтового псевдонима группы Microsoft 365 политикам именования. Клиенты могут использовать этот API, чтобы определить, допустимо ли отображаемое имя или псевдоним в почте, прежде чем пытаться создать группу Microsoft 365. Для проверки свойств существующей группы используйте функцию validateProperties для групп.
Для свойств отображаемого имени и псевдонима почты выполняются следующие проверки:
- Проверка политики именования префиксов и суффиксов
- Проверка пользовательской политики запрещенных слов
- Убедитесь, что псевдоним почты уникален
Примечание.
Следующие символы считаются недопустимыми и не используются в проверке политики. @ () \ \[] " ; : <> , SPACE
Администраторы с ролями администратора пользователя и глобального администратора освобождаются от пользовательских политик именования запрещенных слов и префиксов и суффиксов. Это позволяет им создавать группы с использованием запрещенных слов и собственных соглашений об именовании.
Этот API возвращает данные с первым обнаруженным сбоем. Если одно или несколько свойств не проходят несколько проверок, возвращается только свойство с первым сбоем проверки. Однако вы можете проверить как псевдоним почты, так и отображаемое имя, и получить коллекцию ошибок проверки, если проверяете только политику именования префиксов и суффиксов.
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальное обслуживание |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай, обслуживаемый 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более высокий уровень привилегий или разрешений, только если это требуется вашему приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в статье Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
| Тип разрешения |
Разрешения с наименьшим объемом привилегий |
Разрешения с более высоким уровнем привилегий |
| Делегированные (рабочая или учебная учетная запись) |
Group.Read.All |
Directory.Read.All, Directory.ReadWrite.All |
| Делегированные (личная учетная запись Майкрософт) |
Не поддерживается. |
Не поддерживается. |
| Для приложений |
Group.Read.All |
Directory.Read.All, Directory.ReadWrite.All, Group.ReadWrite.All |
HTTP-запрос
POST /directoryObjects/validateProperties
| Имя |
Описание |
| Авторизация |
Bearer {код}. Обязательно. |
| Content-Type |
application/json. Обязательно. |
Текст запроса
В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.
| Параметр |
Тип |
Описание |
| entityType |
String |
Group является единственным поддерживаемым типом сущности. |
| displayName |
String |
Отображаемое имя группы, которую нужно проверить. Необходимо указать параметр displayName или mailNickname . |
| mailNickname |
String |
Почтовый псевдоним группы, которую нужно проверить. Необходимо указать параметр displayName или mailNickname . |
| onBehalfOfUserId |
GUID |
Идентификатор объекта пользователя, олицетворяемого при вызове API. Результаты проверки относятся к атрибутам и ролям onBehalfOfUserId. |
Отклик
В случае успеха и отсутствия ошибок проверки метод возвращает 204 No Content код ответа. В тексте ответа ничего не возвращается.
Когда глобальный администратор или администратор пользователя инициирует запрос, нарушающий настраиваемые запрещенные слова или политики именования префиксов и суффиксов, API возвращает 204 No Content код ответа, поскольку эти администраторы освобождены от политик именования. Для других пользователей или администраторов запросы, нарушающие эти политики, являются недействительными.
Если запрос недействителен, метод возвращает 400 Bad Request код ответа. В тексте ответа возвращается сообщение об ошибке с подробными сведениями о недопустимом запросе.
При возникновении ошибки проверки метод возвращает 422 Unprocessable Entity код ответа. Сообщение об ошибке и набор сведений об ошибке возвращаются в тексте ответа.
Примеры
Пример 1. Успешный запрос на проверку
Запрос
POST https://graph.microsoft.com/beta/directoryObjects/validateProperties
Content-type: application/json
{
"entityType": "Group",
"displayName": "Myprefix_test_mysuffix",
"mailNickname": "Myprefix_test_mysuffix",
"onBehalfOfUserId": "onBehalfOfUserId-value"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.DirectoryObjects.ValidateProperties;
var requestBody = new ValidatePropertiesPostRequestBody
{
EntityType = "Group",
DisplayName = "Myprefix_test_mysuffix",
MailNickname = "Myprefix_test_mysuffix",
OnBehalfOfUserId = Guid.Parse("onBehalfOfUserId-value"),
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.DirectoryObjects.ValidateProperties.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphdirectoryobjects "github.com/microsoftgraph/msgraph-beta-sdk-go/directoryobjects"
//other-imports
)
requestBody := graphdirectoryobjects.NewValidatePropertiesPostRequestBody()
entityType := "Group"
requestBody.SetEntityType(&entityType)
displayName := "Myprefix_test_mysuffix"
requestBody.SetDisplayName(&displayName)
mailNickname := "Myprefix_test_mysuffix"
requestBody.SetMailNickname(&mailNickname)
onBehalfOfUserId := uuid.MustParse("onBehalfOfUserId-value")
requestBody.SetOnBehalfOfUserId(&onBehalfOfUserId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.DirectoryObjects().ValidateProperties().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.beta.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody validatePropertiesPostRequestBody = new com.microsoft.graph.beta.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody();
validatePropertiesPostRequestBody.setEntityType("Group");
validatePropertiesPostRequestBody.setDisplayName("Myprefix_test_mysuffix");
validatePropertiesPostRequestBody.setMailNickname("Myprefix_test_mysuffix");
validatePropertiesPostRequestBody.setOnBehalfOfUserId(UUID.fromString("onBehalfOfUserId-value"));
graphClient.directoryObjects().validateProperties().post(validatePropertiesPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
entityType: 'Group',
displayName: 'Myprefix_test_mysuffix',
mailNickname: 'Myprefix_test_mysuffix',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/directoryObjects/validateProperties')
.version('beta')
.post(validateProperties);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\DirectoryObjects\ValidateProperties\ValidatePropertiesPostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ValidatePropertiesPostRequestBody();
$requestBody->setEntityType('Group');
$requestBody->setDisplayName('Myprefix_test_mysuffix');
$requestBody->setMailNickname('Myprefix_test_mysuffix');
$requestBody->setOnBehalfOfUserId('onBehalfOfUserId-value');
$graphServiceClient->directoryObjects()->validateProperties()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.DirectoryObjects
$params = @{
entityType = "Group"
displayName = "Myprefix_test_mysuffix"
mailNickname = "Myprefix_test_mysuffix"
onBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgBetaDirectoryObjectProperty -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.directoryobjects.validate_properties.validate_properties_post_request_body import ValidatePropertiesPostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ValidatePropertiesPostRequestBody(
entity_type = "Group",
display_name = "Myprefix_test_mysuffix",
mail_nickname = "Myprefix_test_mysuffix",
on_behalf_of_user_id = UUID("onBehalfOfUserId-value"),
)
await graph_client.directory_objects.validate_properties.post(request_body)
Отклик
HTTP/1.1 204 No Content
Пример 2. Неудачный запрос на проверку
Запрос
POST https://graph.microsoft.com/beta/directoryObjects/validateProperties
Content-type: application/json
{
"entityType": "Group",
"displayName": "test",
"mailNickname": "test",
"onBehalfOfUserId": "onBehalfOfUserId-value"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.DirectoryObjects.ValidateProperties;
var requestBody = new ValidatePropertiesPostRequestBody
{
EntityType = "Group",
DisplayName = "test",
MailNickname = "test",
OnBehalfOfUserId = Guid.Parse("onBehalfOfUserId-value"),
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.DirectoryObjects.ValidateProperties.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphdirectoryobjects "github.com/microsoftgraph/msgraph-beta-sdk-go/directoryobjects"
//other-imports
)
requestBody := graphdirectoryobjects.NewValidatePropertiesPostRequestBody()
entityType := "Group"
requestBody.SetEntityType(&entityType)
displayName := "test"
requestBody.SetDisplayName(&displayName)
mailNickname := "test"
requestBody.SetMailNickname(&mailNickname)
onBehalfOfUserId := uuid.MustParse("onBehalfOfUserId-value")
requestBody.SetOnBehalfOfUserId(&onBehalfOfUserId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.DirectoryObjects().ValidateProperties().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.beta.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody validatePropertiesPostRequestBody = new com.microsoft.graph.beta.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody();
validatePropertiesPostRequestBody.setEntityType("Group");
validatePropertiesPostRequestBody.setDisplayName("test");
validatePropertiesPostRequestBody.setMailNickname("test");
validatePropertiesPostRequestBody.setOnBehalfOfUserId(UUID.fromString("onBehalfOfUserId-value"));
graphClient.directoryObjects().validateProperties().post(validatePropertiesPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
entityType: 'Group',
displayName: 'test',
mailNickname: 'test',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/directoryObjects/validateProperties')
.version('beta')
.post(validateProperties);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\DirectoryObjects\ValidateProperties\ValidatePropertiesPostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ValidatePropertiesPostRequestBody();
$requestBody->setEntityType('Group');
$requestBody->setDisplayName('test');
$requestBody->setMailNickname('test');
$requestBody->setOnBehalfOfUserId('onBehalfOfUserId-value');
$graphServiceClient->directoryObjects()->validateProperties()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.DirectoryObjects
$params = @{
entityType = "Group"
displayName = "test"
mailNickname = "test"
onBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgBetaDirectoryObjectProperty -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.directoryobjects.validate_properties.validate_properties_post_request_body import ValidatePropertiesPostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ValidatePropertiesPostRequestBody(
entity_type = "Group",
display_name = "test",
mail_nickname = "test",
on_behalf_of_user_id = UUID("onBehalfOfUserId-value"),
)
await graph_client.directory_objects.validate_properties.post(request_body)
Отклик
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"error": {
"code": "Request_UnprocessableEntity",
"message": "The values provided contain one or more validation errors.",
"innerError": {
"request-id": "request-id-value",
"date": "date-value"
},
"details": [
{
"target": "displayName",
"code": "MissingPrefixSuffix",
"message": "Property mailNickname is missing a required prefix/suffix per your organization's Group naming requirements.",
"prefix": "Myprefix_",
"suffix": "_mysuffix"
},
{
"target": "mailNickname",
"code": "MissingPrefixSuffix",
"message": "Property mailNickname is missing a required prefix/suffix per your organization's Group naming requirements.",
"prefix": "Myprefix_",
"suffix": "_mysuffix"
}
]
}
}