Espace de noms: microsoft.graph
Validez que le nom d’affichage d’un groupe Microsoft 365 ou surnom d’un courrier est conforme aux stratégies de noms. Les clients peuvent utiliser cette API pour déterminer si un nom d’affichage ou un surnom de messagerie est valide avant de tenter de créer un groupe Microsoft 365. Pour valider les propriétés d’un groupe existant, utilisez la fonction validateProperties pour les groupes.
Les validations suivantes sont effectuées pour les propriétés de nom d’affichage et de surnom de messagerie :
- Valider la stratégie de nommage de préfixe et de suffixe
- Valider la stratégie personnalisée des mots interdits
- Vérifier que le surnom du courrier est unique
Remarque
Les caractères suivants sont considérés comme des caractères non valides et ne font pas partie des validations de stratégie : @ () \ \[] " ; : <> , SPACE.
Les administrateurs disposant des rôles Administrateur d’utilisateurs et Administrateur général sont exemptés des stratégies personnalisées de mots interdits, de préfixe et de suffixe, ce qui leur permet de créer des groupes à l’aide de mots bloqués et avec leurs propres conventions d’affectation de noms.
Cette API retourne avec le premier échec rencontré. Si une ou plusieurs propriétés échouent à plusieurs validations, seule la propriété avec le premier échec de validation est retournée. Toutefois, vous pouvez valider le surnom du courrier et le nom complet et recevoir une collection d’erreurs de validation si vous validez uniquement le préfixe et la stratégie de nommage de suffixe.
Cette API est disponible dans les déploiements de cloud national suivants.
| Service global |
Gouvernement des États-Unis L4 |
Us Government L5 (DOD) |
Chine gérée par 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
| Type d’autorisation |
Autorisations avec privilèges minimum |
Autorisations privilégiées plus élevées |
| Déléguée (compte professionnel ou scolaire) |
Group.Read.All |
Directory.Read.All, Directory.ReadWrite.All |
| Déléguée (compte Microsoft personnel) |
Non prise en charge. |
Non prise en charge. |
| Application |
Group.Read.All |
Directory.Read.All, Directory.ReadWrite.All, Group.ReadWrite.All |
Requête HTTP
POST /directoryObjects/validateProperties
| Nom |
Description |
| Autorisation |
Porteur {code}. Obligatoire. |
| Content-Type |
application/json. Obligatoire. |
Corps de la demande
Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.
| Paramètre |
Type |
Description |
| entityType |
String |
Group est le seul type d’entité pris en charge. |
| displayName |
String |
Nom complet du groupe à valider.
DisplayName ou mailNickname doivent être spécifiés. |
| mailNickname |
String |
Surnom de messagerie du groupe à valider.
DisplayName ou mailNickname doivent être spécifiés. |
| onBehalfOfUserId |
Guid |
ID d’objet de l’utilisateur à emprunter lors de l’appel de l’API. Les résultats de validation concernent les attributs et les rôles de l’onBehalfOfUserId. |
Réponse
Si elle réussit et qu’il n’y a pas d’erreur de validation, la méthode retourne 204 No Content le code de réponse. Il ne retourne rien dans le corps de la réponse.
Lorsqu’un administrateur général ou un administrateur d’utilisateurs lance une requête qui enfreint les stratégies de nommage de préfixe et de suffixe interdits personnalisés, l’API retourne un 204 No Content code de réponse, car ces administrateurs sont exemptés des stratégies de nommage. Pour les autres utilisateurs ou administrateurs, les demandes qui violent ces stratégies ne sont pas valides.
Si la requête n’est pas valide, la méthode retourne 400 Bad Request le code de réponse. Un message d’erreur contenant des détails sur la requête non valide est retourné dans le corps de la réponse.
En cas d’erreur de validation, la méthode retourne 422 Unprocessable Entity le code de réponse. Un message d’erreur et une collection de détails d’erreur sont retournés dans le corps de la réponse.
Exemples
Exemple 1 : Une demande de validation réussie
Demande
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)
Réponse
HTTP/1.1 204 No Content
Exemple 2 : Une demande de validation ayant échoué
Demande
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)
Réponse
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"
}
]
}
}