User Entitlements - Add
Ajoutez un utilisateur, attribuez une licence et des extensions et faites-les membre d’un groupe de projets dans un compte.
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
Paramètres URI
Nom | Dans | Obligatoire | Type | Description |
---|---|---|---|---|
organization
|
path | True |
string |
Nom de l’organisation Azure DevOps. |
api-version
|
query | True |
string |
Version de l’API à utiliser. Cette valeur doit être définie sur « 7.1 » pour utiliser cette version de l’API. |
Corps de la demande
Nom | Type | Description |
---|---|---|
accessLevel |
Niveau d’accès du membre indiqué par une licence. |
|
dateCreated |
string (date-time) |
[Readonly] Date à laquelle le membre a été ajouté à la collection. |
groupAssignments |
[Readonly] GroupEntitlements auxquels appartient ce membre. |
|
id |
string (uuid) |
Identificateur unique qui correspond à l’ID de l’identité associée à GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Date à laquelle le membre a accédé en dernier à la collection. |
projectEntitlements |
Relation entre un projet et les autorisations effectives du membre dans ce projet. |
|
user |
Référence de l’utilisateur. |
Réponses
Nom | Type | Description |
---|---|---|
200 OK |
opération réussie |
Sécurité
oauth2
Type:
oauth2
Flux:
accessCode
URL d’autorisation:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
URL du jeton:
https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
Étendues
Nom | Description |
---|---|
vso.memberentitlementmanagement_write | Accorde la possibilité de gérer les utilisateurs, leurs licences ainsi que les projets et les extensions auxquels ils peuvent accéder |
Exemples
Exemple de requête
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
{
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express"
},
"extensions": [
{
"id": "ms.feed"
}
],
"user": {
"principalName": "newuser@fabrikam.com",
"subjectKind": "user"
},
"projectEntitlements": [
{
"group": {
"groupType": "projectContributor"
},
"projectRef": {
"id": "e5943a98-a842-4001-bd3b-06e756a7dfac"
}
}
]
}
Exemple de réponse
{
"operationResult": {
"isSuccess": true,
"errors": [],
"userId": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"result": {
"id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"user": {
"subjectKind": "user",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "newuser@fabrikam.com",
"mailAddress": "newuser@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "newuser@fabrikam.com",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
"descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express",
"msdnLicenseType": "none",
"licenseDisplayName": "Basic",
"status": "pending",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T08:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
},
"isSuccess": true,
"userEntitlement": {
"id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"user": {
"subjectKind": "user",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "newuser@fabrikam.com",
"mailAddress": "newuser@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "newuser@fabrikam.com",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
"descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express",
"msdnLicenseType": "none",
"licenseDisplayName": "Basic",
"status": "pending",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T08:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
}
Définitions
Nom | Description |
---|---|
Access |
Licence affectée à un utilisateur |
Account |
Type de licence de compte (par exemple, Express, Partie prenante, etc.). Pour utiliser AccountLicenseType, LicensingSource doit être défini comme « account » dans le corps de la demande. |
Account |
État de l’utilisateur dans le compte |
Assignment |
Source d’affectation de la licence (par exemple, groupe, inconnu, etc. |
Graph |
Entité de groupe Graph |
Graph |
|
Group |
Groupe de projets (par exemple, Contributeur, Lecteur, etc.) |
Group |
Entité de groupe avec des propriétés supplémentaires, notamment sa licence, ses extensions et son appartenance au projet |
Group |
État de la règle de groupe. |
Group |
Type de groupe |
Licensing |
Source de licence (par exemple, Compte. MSDN, etc.) |
Msdn |
Type de licence MSDN (par exemple, Visual Studio Professional, Visual Studio Enterprise, etc.). Pour utiliser MsdnLicenseType, LicensingSource doit être défini comme « msdn » dans le corps de la requête. |
Project |
Relation entre un projet et les autorisations effectives de l’utilisateur dans ce projet. |
Project |
Que l’utilisateur hérite des autorisations d’un projet par le biais d’une appartenance à un groupe Azure DevOps ou AAD. |
Project |
Référence à un projet |
Reference |
Classe à représenter une collection de liens de référence REST. |
Team |
Référence à une équipe |
User |
Entité utilisateur avec des propriétés supplémentaires, notamment leur licence, leurs extensions et leur appartenance au projet |
User |
|
User |
AccessLevel
Licence affectée à un utilisateur
Nom | Type | Description |
---|---|---|
accountLicenseType |
Type de licence de compte (par exemple, Express, Partie prenante, etc.). Pour utiliser AccountLicenseType, LicensingSource doit être défini comme « account » dans le corps de la demande. |
|
assignmentSource |
Source d’affectation de la licence (par exemple, groupe, inconnu, etc. |
|
licenseDisplayName |
string |
Nom complet de la licence |
licensingSource |
Source de licence (par exemple, Compte. MSDN, etc.) |
|
msdnLicenseType |
Type de licence MSDN (par exemple, Visual Studio Professional, Visual Studio Enterprise, etc.). Pour utiliser MsdnLicenseType, LicensingSource doit être défini comme « msdn » dans le corps de la requête. |
|
status |
État de l’utilisateur dans le compte |
|
statusMessage |
string |
Message d’état. |
AccountLicenseType
Type de licence de compte (par exemple, Express, Partie prenante, etc.). Pour utiliser AccountLicenseType, LicensingSource doit être défini comme « account » dans le corps de la demande.
Valeur | Description |
---|---|
advanced | |
earlyAdopter | |
express | |
none | |
professional | |
stakeholder |
AccountUserStatus
État de l’utilisateur dans le compte
Valeur | Description |
---|---|
active |
L’utilisateur s’est connecté au moins une fois au compte VSTS |
deleted |
L’utilisateur est supprimé du compte VSTS par l’administrateur du compte VSTS |
disabled |
L’utilisateur ne peut pas se connecter ; principalement utilisé par l’administrateur pour supprimer temporairement un utilisateur en raison de l’absence ou de la réaffectation de licence |
expired |
L’utilisateur peut se connecter ; principalement utilisé lorsque la licence est dans un état expiré et que nous donnons une période de grâce |
none | |
pending |
L’utilisateur est invité à rejoindre le compte VSTS par l’administrateur du compte VSTS, mais n’a pas encore inscrit/connecté |
pendingDisabled |
L’utilisateur est désactivé ; s’ils sont réenables, ils sont toujours dans l’état En attente |
AssignmentSource
Source d’affectation de la licence (par exemple, groupe, inconnu, etc.
Valeur | Description |
---|---|
groupRule | |
none | |
unknown |
GraphGroup
Entité de groupe Graph
Nom | Type | Description |
---|---|---|
_links |
Ce champ contient zéro ou plus de liens intéressants sur le sujet du graphe. Ces liens peuvent être appelés pour obtenir des relations supplémentaires ou des informations plus détaillées sur ce sujet de graphique. |
|
description |
string |
Phrase courte pour aider les lecteurs humains à désambiguer les groupes avec des noms similaires |
descriptor |
string |
Le descripteur est le principal moyen de référencer l’objet du graphique pendant l’exécution du système. Ce champ identifie de manière unique le même sujet de graphique sur les comptes et les organisations. |
displayName |
string |
Il s’agit du nom complet non unique de l’objet du graphique. Pour modifier ce champ, vous devez modifier sa valeur dans le fournisseur source. |
domain |
string |
Cela représente le nom du conteneur d’origine d’un membre de graphique. (Pour MSA, il s’agit de « Windows Live ID », pour AD le nom du domaine, pour AAD le tenantID du répertoire, pour les groupes VSTS, scopeId, etc.) |
legacyDescriptor |
string |
[Utilisation interne uniquement] Le descripteur hérité est ici si vous devez accéder à l’ancienne version IMS à l’aide du descripteur d’identité. |
mailAddress |
string |
Adresse e-mail d’enregistrement d’un membre de graphique donné. Cela peut être différent du nom du principal. |
origin |
string |
Type de fournisseur source pour l’identificateur d’origine (ex :AD, AAD, MSA) |
originId |
string |
Identificateur unique du système d’origine. En règle générale, un id d’objet ou un GUID. Les opérations de liaison et de dissociation peuvent entraîner la modification de cette valeur pour un utilisateur, car l’utilisateur n’est pas soutenu par un autre fournisseur et a un ID unique différent dans le nouveau fournisseur. |
principalName |
string |
Il s’agit du principalName de ce membre de graphe du fournisseur source. Le fournisseur source peut modifier ce champ au fil du temps et il n’est pas garanti qu’il soit immuable pour la durée de vie du membre de graphique par VSTS. |
subjectKind |
string |
Ce champ identifie le type de l’objet du graphique (par exemple, Groupe, Étendue, Utilisateur). |
url |
string |
Cette URL est l’itinéraire complet vers la ressource source de ce sujet de graphe. |
GraphUser
Nom | Type | Description |
---|---|---|
_links |
Ce champ contient zéro ou plus de liens intéressants sur le sujet du graphe. Ces liens peuvent être appelés pour obtenir des relations supplémentaires ou des informations plus détaillées sur ce sujet de graphique. |
|
descriptor |
string |
Le descripteur est le principal moyen de référencer l’objet du graphique pendant l’exécution du système. Ce champ identifie de manière unique le même sujet de graphique sur les comptes et les organisations. |
directoryAlias |
string |
Nom court, généralement unique pour l’utilisateur dans le répertoire de stockage. Pour les utilisateurs AAD, cela correspond au surnom de messagerie, qui est souvent, mais pas nécessairement similaire à la partie de l’adresse de messagerie de l’utilisateur avant le signe @. Pour les utilisateurs GitHub, cela correspond au handle d’utilisateur GitHub. |
displayName |
string |
Il s’agit du nom complet non unique de l’objet du graphique. Pour modifier ce champ, vous devez modifier sa valeur dans le fournisseur source. |
domain |
string |
Cela représente le nom du conteneur d’origine d’un membre de graphique. (Pour MSA, il s’agit de « Windows Live ID », pour AD le nom du domaine, pour AAD le tenantID du répertoire, pour les groupes VSTS, scopeId, etc.) |
isDeletedInOrigin |
boolean |
Lorsque la valeur est true, le groupe a été supprimé dans le fournisseur d’identité |
legacyDescriptor |
string |
[Utilisation interne uniquement] Le descripteur hérité est ici si vous devez accéder à l’ancienne version IMS à l’aide du descripteur d’identité. |
mailAddress |
string |
Adresse e-mail d’enregistrement d’un membre de graphique donné. Cela peut être différent du nom du principal. |
metaType |
string |
Type meta de l’utilisateur dans l’origine, tel que « membre », « invité », etc. Consultez UserMetaType pour connaître l’ensemble des valeurs possibles. |
origin |
string |
Type de fournisseur source pour l’identificateur d’origine (ex :AD, AAD, MSA) |
originId |
string |
Identificateur unique du système d’origine. En règle générale, un id d’objet ou un GUID. Les opérations de liaison et de dissociation peuvent entraîner la modification de cette valeur pour un utilisateur, car l’utilisateur n’est pas soutenu par un autre fournisseur et a un ID unique différent dans le nouveau fournisseur. |
principalName |
string |
Il s’agit du principalName de ce membre de graphe du fournisseur source. Le fournisseur source peut modifier ce champ au fil du temps et il n’est pas garanti qu’il soit immuable pour la durée de vie du membre de graphique par VSTS. |
subjectKind |
string |
Ce champ identifie le type de l’objet du graphique (par exemple, Groupe, Étendue, Utilisateur). |
url |
string |
Cette URL est l’itinéraire complet vers la ressource source de ce sujet de graphe. |
Group
Groupe de projets (par exemple, Contributeur, Lecteur, etc.)
Nom | Type | Description |
---|---|---|
displayName |
string |
Nom complet du groupe |
groupType |
Type de groupe |
GroupEntitlement
Entité de groupe avec des propriétés supplémentaires, notamment sa licence, ses extensions et son appartenance au projet
Nom | Type | Description |
---|---|---|
group |
Référence de membre. |
|
id |
string (uuid) |
Identificateur unique qui correspond à l’ID du GraphMember. |
lastExecuted |
string (date-time) |
[Readonly] La dernière fois que la règle de gestion des licences de groupe a été exécutée (que des modifications aient été apportées ou non). |
licenseRule |
Règle de licence. |
|
members |
Membres du groupe. Utilisé uniquement lors de la création d’un groupe. |
|
projectEntitlements |
Relation entre un projet et les autorisations effectives du membre dans ce projet. |
|
status |
État de la règle de groupe. |
GroupLicensingRuleStatus
État de la règle de groupe.
Valeur | Description |
---|---|
applied |
La règle est appliquée |
applyPending |
La règle est créée ou mise à jour, mais elle est en attente |
incompatible |
La règle de groupe était incompatible |
unableToApply |
La règle n’a pas pu s’appliquer de manière inattendue et doit être retentée |
GroupType
Type de groupe
Valeur | Description |
---|---|
custom | |
projectAdministrator | |
projectContributor | |
projectReader | |
projectStakeholder |
LicensingSource
Source de licence (par exemple, Compte. MSDN, etc.)
Valeur | Description |
---|---|
account | |
auto | |
msdn | |
none | |
profile | |
trial |
MsdnLicenseType
Type de licence MSDN (par exemple, Visual Studio Professional, Visual Studio Enterprise, etc.). Pour utiliser MsdnLicenseType, LicensingSource doit être défini comme « msdn » dans le corps de la requête.
Valeur | Description |
---|---|
eligible | |
enterprise | |
none | |
platforms | |
premium | |
professional | |
testProfessional | |
ultimate |
ProjectEntitlement
Relation entre un projet et les autorisations effectives de l’utilisateur dans ce projet.
Nom | Type | Description |
---|---|---|
assignmentSource |
Source d’affectation (par exemple, Groupe ou Inconnu). |
|
group |
Groupe de projets (par exemple, Contributeur, Lecteur, etc.) |
|
projectPermissionInherited |
Que l’utilisateur hérite des autorisations d’un projet par le biais d’une appartenance à un groupe Azure DevOps ou AAD. |
|
projectRef |
Réf du projet |
|
teamRefs |
Team |
Ref de l’équipe. |
ProjectPermissionInherited
Que l’utilisateur hérite des autorisations d’un projet par le biais d’une appartenance à un groupe Azure DevOps ou AAD.
Valeur | Description |
---|---|
inherited | |
notInherited | |
notSet |
ProjectRef
Référence à un projet
Nom | Type | Description |
---|---|---|
id |
string (uuid) |
ID de projet. |
name |
string |
Nom du projet. |
ReferenceLinks
Classe à représenter une collection de liens de référence REST.
Nom | Type | Description |
---|---|---|
links |
object |
Vue en lecture seule des liens. Étant donné que les liens de référence sont en lecture seule, nous voulons uniquement les exposer en lecture seule. |
TeamRef
Référence à une équipe
Nom | Type | Description |
---|---|---|
id |
string (uuid) |
ID d’équipe |
name |
string |
Nom de l’équipe |
UserEntitlement
Entité utilisateur avec des propriétés supplémentaires, notamment leur licence, leurs extensions et leur appartenance au projet
Nom | Type | Description |
---|---|---|
accessLevel |
Niveau d’accès du membre indiqué par une licence. |
|
dateCreated |
string (date-time) |
[Readonly] Date à laquelle le membre a été ajouté à la collection. |
groupAssignments |
[Readonly] GroupEntitlements auxquels appartient ce membre. |
|
id |
string (uuid) |
Identificateur unique qui correspond à l’ID de l’identité associée à GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Date à laquelle le membre a accédé en dernier à la collection. |
projectEntitlements |
Relation entre un projet et les autorisations effectives du membre dans ce projet. |
|
user |
Référence de l’utilisateur. |
UserEntitlementOperationResult
Nom | Type | Description |
---|---|---|
errors |
object[] |
Liste des codes d’erreur associés à leurs messages d’erreur correspondants. |
isSuccess |
boolean |
État de réussite de l’opération. |
result |
string (T) |
Propriété de droit résultante. Pour obtenir des implémentations spécifiques, consultez également : |
userId |
string (uuid) |
Identificateur du membre en cours d’action. |
UserEntitlementsPostResponse
Nom | Type | Description |
---|---|---|
isSuccess |
boolean |
True si toutes les opérations ont réussi. |
operationResult |
Résultat de l’opération. |
|
userEntitlement |
Résultat du droit utilisateur après l’application des opérations. |