Gérer les attributions d’attributs de sécurité personnalisées (préversion)
Article
32 minutes de lecture
Importante
La fonctionnalité d’attributs de sécurité personnalisés est actuellement en préversion. Consultez les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure qui sont en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale.
Les attributs de sécurité personnalisés dans Azure Active Directory (Azure AD) sont des attributs spécifiques à l’entreprise (paires clé-valeur) que vous pouvez définir et affecter à des objets Azure AD. Ces attributs peuvent être utilisés pour stocker des informations, catégoriser des objets ou appliquer un contrôle d’accès affiné sur des ressources Azure spécifiques via le contrôle d’accès basé sur les attributs Azure (Azure ABAC).
Les attributs de sécurité personnalisés sont pris en charge uniquement pour les utilisateurs et les principaux de service. Cet article fournit des exemples d’attribution, de mise à jour, de liste ou de suppression de différents types d’attributs de sécurité personnalisés pour les utilisateurs et les applications à l’aide de Microsoft Graph.
Utilisateurs : CustomSecAttributeAssignment.Read.All et User.Read.All
Principaux de service : CustomSecAttributeAssignment.Read.All et Application.Read.All
Attribuer des attributs de sécurité personnalisés
Exemple 1 : Attribuer un attribut de sécurité personnalisé avec une valeur de chaîne à un utilisateur
L’exemple suivant montre comment utiliser l’API Update user pour affecter un attribut de sécurité personnalisé avec une valeur de chaîne à un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
ProjectDate = "2022-10-01",
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setProjectDate('2022-10-01');
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 2 : attribuer un attribut de sécurité personnalisé avec une valeur de chaîne à un principal du service
L’exemple suivant montre comment utiliser l’API d’utilisateur Update pour affecter un attribut de sécurité personnalisé avec une valeur de chaîne à un principal de service.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new ServicePrincipal
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
ProjectDate = "2022-10-01",
}
},
},
},
};
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new ServicePrincipal();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setProjectDate('2022-10-01');
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->servicePrincipalsById('servicePrincipal-id')->patch($requestBody);
Exemple 3 : Attribuer un attribut de sécurité personnalisé avec une valeur multi-chaîne à un utilisateur
L’exemple suivant montre comment utiliser l’API d’utilisateur Mettre à jour pour affecter un attribut de sécurité personnalisé avec une valeur multi-chaîne à un utilisateur.
Jeu d’attributs : Engineering
Attribut : Project
Type de données d’attribut : collection de chaînes
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
ProjectOdataType = "#Collection(String)",
Project = new List<string>
{
"Baker",
"Cascade",
},
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setProject@odatatype('#Collection(String)');
$customSecurityAttributes->setProject(['Baker', 'Cascade', ]);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 4 : Affecter un attribut de sécurité personnalisé avec une valeur entière à un utilisateur
L’exemple suivant montre comment utiliser l’API Update user pour affecter un attribut de sécurité personnalisé avec une valeur entière à un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
NumVendorsOdataType = "#Int32",
NumVendors = 4,
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setNumVendors@odatatype('#Int32');
$customSecurityAttributes->setNumVendors(4);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 5 : Affecter un attribut de sécurité personnalisé avec une valeur multi-entier à un utilisateur
L’exemple suivant montre comment utiliser l’API d’utilisateur Mettre à jour pour affecter un attribut de sécurité personnalisé avec une valeur multi-entier à un utilisateur.
Jeu d’attributs : Engineering
Attribut : CostCenter
Type de données d’attribut : collection de nombres entiers
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
CostCenterOdataType = "#Collection(Int32)",
CostCenter = new List<1001>
{
1001,
1003,
},
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setCostCenter@odatatype('#Collection(Int32)');
$customSecurityAttributes->setCostCenter([1001,1003,]);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 6 : Affecter un attribut de sécurité personnalisé avec une valeur booléenne à un utilisateur
L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour affecter un attribut de sécurité personnalisé avec une valeur booléenne à un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
Certification = true,
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$customSecurityAttributes->setCertification(true);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Mettre à jour les attributions d’attributs de sécurité personnalisées
Exemple 1 : Mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur entière pour un utilisateur
L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur entière pour un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
NumVendorsOdataType = "#Int32",
NumVendors = 8,
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$ customSecurityAttributes->setNumVendors@odatatype('#Int32');
$customSecurityAttributes->setNumVendors(8);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 2 : Mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur booléenne pour un utilisateur
L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur booléenne pour un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
Certification = false,
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$customSecurityAttributes->setCertification(false);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
GET https://graph.microsoft.com/beta/users/{id}?$select=customSecurityAttributes
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users["{user-id}"].GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "customSecurityAttributes" };
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new UserRequestBuilderGetRequestConfiguration();
$queryParameters = new UserRequestBuilderGetQueryParameters();
$queryParameters->select = ["customSecurityAttributes"];
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->usersById('user-id')->get($requestConfiguration);
Si aucun attribut de sécurité personnalisé n’est attribué à l’utilisateur du service ou si le principal appelant n’a pas d’accès, la réponse ressemble à :
Exemple 2 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur
L’exemple suivant montre comment utiliser l’API Répertorier les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé AppCountry avec une valeur égale Canadaà . La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.
Utilisateur n°1
Jeu d’attributs : Marketing
Attribut : AppCountry
Type de données d’attribut : collection de chaînes
Valeur d’attribut : ["India","Canada"]
Utilisateur n°2
Jeu d’attributs : Marketing
Attribut : AppCountry
Type de données d’attribut : collection de chaînes
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new UsersRequestBuilderGetRequestConfiguration();
$queryParameters = new UsersRequestBuilderGetQueryParameters();
$queryParameters->count = true;
$queryParameters->select = ["id","displayName","customSecurityAttributes"];
$queryParameters->filter = "customSecurityAttributes/Marketing/AppCountry eq 'Canada'";
$headers = [
'ConsistencyLevel' => 'eventual',
];
$requestConfiguration->queryParameters = $queryParameters;
$requestConfiguration->headers = $headers;
$requestResult = $graphServiceClient->users()->get($requestConfiguration);
Exemple 3 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui commence par une valeur
L’exemple suivant montre comment utiliser l’API Répertorier les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui commence par une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé EmployeeId avec une valeur qui commence par GS. La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.
GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')
ConsistencyLevel: eventual
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Select = new string []{ "id","displayName","customSecurityAttributes" };
requestConfiguration.QueryParameters.Filter = "startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new UsersRequestBuilderGetRequestConfiguration();
$queryParameters = new UsersRequestBuilderGetQueryParameters();
$queryParameters->count = true;
$queryParameters->select = ["id","displayName","customSecurityAttributes"];
$queryParameters->filter = "startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')";
$headers = [
'ConsistencyLevel' => 'eventual',
];
$requestConfiguration->queryParameters = $queryParameters;
$requestConfiguration->headers = $headers;
$requestResult = $graphServiceClient->users()->get($requestConfiguration);
Exemple 4 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui n’est pas égale à une valeur
L’exemple suivant montre comment utiliser l’API Répertorier les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui n’est pas égale à une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé AppCountry avec une valeur qui n’est pas égale Canadaà . La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.
Utilisateur n°1
Jeu d’attributs : Marketing
Attribut : AppCountry
Type de données d’attribut : collection de chaînes
GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry ne 'Canada'
ConsistencyLevel: eventual
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Select = new string []{ "id","displayName","customSecurityAttributes" };
requestConfiguration.QueryParameters.Filter = "customSecurityAttributes/Marketing/AppCountry ne 'Canada'";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new UsersRequestBuilderGetRequestConfiguration();
$queryParameters = new UsersRequestBuilderGetQueryParameters();
$queryParameters->count = true;
$queryParameters->select = ["id","displayName","customSecurityAttributes"];
$queryParameters->filter = "customSecurityAttributes/Marketing/AppCountry ne 'Canada'";
$headers = [
'ConsistencyLevel' => 'eventual',
];
$requestConfiguration->queryParameters = $queryParameters;
$requestConfiguration->headers = $headers;
$requestResult = $graphServiceClient->users()->get($requestConfiguration);
Supprimer les attributions d’attributs de sécurité personnalisées
Exemple 1 : Supprimer d’un utilisateur une attribution d’attribut de sécurité personnalisé à valeur unique
L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour supprimer une attribution d’attribut de sécurité personnalisée qui prend en charge une valeur unique d’un utilisateur.
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new
{
OdataType = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
ProjectDate = null,
}
},
},
},
};
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$customSecurityAttributes->setProjectDate(null);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);
Exemple 2 : Supprimer une attribution d’attribut de sécurité personnalisé à valeurs multiples d’un utilisateur
L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour supprimer une attribution d’attribut de sécurité personnalisée qui prend en charge plusieurs valeurs d’un utilisateur.
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => $customSecurityAttributes = new Engineering();
$ customSecurityAttributes->set@odatatype('#Microsoft.DirectoryServices.CustomSecurityAttributeValue');
$customSecurityAttributes->setProject([]);
$customSecurityAttributes->setEngineering($engineering);
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$requestResult = $graphServiceClient->usersById('user-id')->patch($requestBody);