Пространство имен: 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);
mgc-beta directory-objects validate-properties post --body '{\
"entityType": "Group",\
"displayName": "Myprefix_test_mysuffix",\
"mailNickname": "Myprefix_test_mysuffix",\
"onBehalfOfUserId": "onBehalfOfUserId-value"\
}\
'
// 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);
mgc-beta directory-objects validate-properties post --body '{\
"entityType": "Group",\
"displayName": "test",\
"mailNickname": "test",\
"onBehalfOfUserId": "onBehalfOfUserId-value"\
}\
'
// 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
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"
}
]
}
}