命名空间:microsoft.graph
验证 Microsoft 365 组的显示名称或邮件昵称是否符合命名策略。 在尝试 创建 Microsoft 365 组之前,客户端可以使用此 API 来确定显示名称或邮件昵称是否有效。 若要验证现有组的属性,请使用 组:validateProperties 函数。
对显示名称和邮件昵称属性执行以下策略验证:
- 验证前缀和后缀命名策略
- 验证自定义禁止字词策略
- 验证邮件昵称是否唯一
注意
以下字符被视为无效字符,不是策略验证的一部分: @ () \ \[] " ; : <> , SPACE
。
具有用户管理员和全局管理员角色的管理员不受自定义禁止字词、前缀和后缀命名策略的豁免,从而允许他们通过使用阻止的字词和自己的命名约定创建组。
此 API 仅返回遇到的第一个验证失败。 如果属性多次验证失败,则仅返回第一个验证失败。 但是,如果仅验证前缀和后缀命名策略,则可以验证邮件昵称和显示名称,并接收验证错误的集合。 若要详细了解如何配置命名策略,请参阅 配置命名策略。
此 API 可用于以下国家级云部署。
全局服务 |
美国政府 L4 |
美国政府 L5 (DOD) |
由世纪互联运营的中国 |
✅ |
✅ |
✅ |
✅ |
权限
为此 API 选择标记为最低特权的权限。
只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
权限类型 |
最低特权权限 |
更高特权权限 |
委派(工作或学校帐户) |
Group.Read.All |
Directory.Read.All、Directory.ReadWrite.All |
委派(个人 Microsoft 帐户) |
不支持。 |
不支持。 |
应用程序 |
Group.Read.All |
Directory.Read.All、Directory.ReadWrite.All、Group.ReadWrite.All |
HTTP 请求
POST /directoryObjects/validateProperties
名称 |
说明 |
Authorization |
持有者 {token}。 必填。 详细了解 身份验证和授权。 |
Content-Type |
application/json |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
参数 |
类型 |
说明 |
entityType |
String |
组是唯一支持的实体类型。 |
displayName |
String |
要验证的组的显示名称。 必须指定 displayName 或 mailNickname 。 |
mailNickname |
String |
要验证的组的邮件昵称。 必须指定 displayName 或 mailNickname 。 |
onBehalfOfUserId |
Guid |
调用 API 时要模拟的用户的 ID。 验证结果针对 onBehalfOfUserId 的属性 和角色。 |
响应
如果成功并且没有验证错误,该方法将 204 No Content
返回响应代码。 它不会在响应正文中返回任何内容。
当全局管理员或用户管理员发起违反自定义禁止字词或前缀和后缀命名策略的请求时,API 将返回 204 No Content
响应代码,因为这些管理员无需命名策略。 对于其他用户或管理员,违反这些策略的请求无效。
如果请求无效,该方法将 400 Bad Request
返回响应代码。 响应正文中返回一条错误消息,其中包含有关无效请求的详细信息。
如果存在验证错误,该方法将 422 Unprocessable Entity
返回响应代码。 响应正文中返回错误消息和错误详细信息集合。
示例
示例 1:成功的验证请求
请求
POST https://graph.microsoft.com/v1.0/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.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);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
mgc directory-objects validate-properties post --body '{\
"entityType": "Group",\
"displayName": "Myprefix_test_mysuffix",\
"mailNickname": "Myprefix_test_mysuffix",\
"onBehalfOfUserId": "onBehalfOfUserId-value"\
}\
'
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphdirectoryobjects "github.com/microsoftgraph/msgraph-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)
有关如何将 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.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody validatePropertiesPostRequestBody = new com.microsoft.graph.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);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
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')
.post(validateProperties);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\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();
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.DirectoryObjects
$params = @{
entityType = "Group"
displayName = "Myprefix_test_mysuffix"
mailNickname = "Myprefix_test_mysuffix"
onBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgDirectoryObjectProperty -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.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)
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 204 No Content
示例 2:验证请求失败
请求
POST https://graph.microsoft.com/v1.0/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.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);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
mgc directory-objects validate-properties post --body '{\
"entityType": "Group",\
"displayName": "test",\
"mailNickname": "test",\
"onBehalfOfUserId": "onBehalfOfUserId-value"\
}\
'
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphdirectoryobjects "github.com/microsoftgraph/msgraph-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)
有关如何将 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.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody validatePropertiesPostRequestBody = new com.microsoft.graph.directoryobjects.validateproperties.ValidatePropertiesPostRequestBody();
validatePropertiesPostRequestBody.setEntityType("Group");
validatePropertiesPostRequestBody.setDisplayName("test");
validatePropertiesPostRequestBody.setMailNickname("test");
validatePropertiesPostRequestBody.setOnBehalfOfUserId(UUID.fromString("onBehalfOfUserId-value"));
graphClient.directoryObjects().validateProperties().post(validatePropertiesPostRequestBody);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
entityType: 'Group',
displayName: 'test',
mailNickname: 'test',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/directoryObjects/validateProperties')
.post(validateProperties);
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\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();
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.DirectoryObjects
$params = @{
entityType = "Group"
displayName = "test"
mailNickname = "test"
onBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgDirectoryObjectProperty -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.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)
有关如何将 SDK 添加到项目并创建 authProvider 实例的详细信息,请参阅 SDK 文档。
响应
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"
}
]
}
}