Partager via


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

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

GroupEntitlement[]

[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

ProjectEntitlement[]

Relation entre un projet et les autorisations effectives du membre dans ce projet.

user

GraphUser

Référence de l’utilisateur.

Réponses

Nom Type Description
200 OK

UserEntitlementsPostResponse

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
AccessLevel

Licence affectée à un utilisateur

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.

AccountUserStatus

État de l’utilisateur dans le compte

AssignmentSource

Source d’affectation de la licence (par exemple, groupe, inconnu, etc.

GraphGroup

Entité de groupe Graph

GraphUser
Group

Groupe de projets (par exemple, Contributeur, Lecteur, etc.)

GroupEntitlement

Entité de groupe avec des propriétés supplémentaires, notamment sa licence, ses extensions et son appartenance au projet

GroupLicensingRuleStatus

État de la règle de groupe.

GroupType

Type de groupe

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.

ProjectEntitlement

Relation entre un projet et les autorisations effectives de l’utilisateur dans ce projet.

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érence à un projet

ReferenceLinks

Classe à représenter une collection de liens de référence REST.

TeamRef

Référence à une équipe

UserEntitlement

Entité utilisateur avec des propriétés supplémentaires, notamment leur licence, leurs extensions et leur appartenance au projet

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

Licence affectée à un utilisateur

Nom Type Description
accountLicenseType

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

AssignmentSource

Source d’affectation de la licence (par exemple, groupe, inconnu, etc.

licenseDisplayName

string

Nom complet de la licence

licensingSource

LicensingSource

Source de licence (par exemple, Compte. MSDN, etc.)

msdnLicenseType

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

AccountUserStatus

É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

ReferenceLinks

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

ReferenceLinks

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

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

GraphGroup

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

AccessLevel

Règle de licence.

members

UserEntitlement[]

Membres du groupe. Utilisé uniquement lors de la création d’un groupe.

projectEntitlements

ProjectEntitlement[]

Relation entre un projet et les autorisations effectives du membre dans ce projet.

status

GroupLicensingRuleStatus

É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

AssignmentSource

Source d’affectation (par exemple, Groupe ou Inconnu).

group

Group

Groupe de projets (par exemple, Contributeur, Lecteur, etc.)

projectPermissionInherited

ProjectPermissionInherited

Que l’utilisateur hérite des autorisations d’un projet par le biais d’une appartenance à un groupe Azure DevOps ou AAD.

projectRef

ProjectRef

Réf du projet

teamRefs

TeamRef[]

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.

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

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

GroupEntitlement[]

[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

ProjectEntitlement[]

Relation entre un projet et les autorisations effectives du membre dans ce projet.

user

GraphUser

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

UserEntitlementOperationResult

Résultat de l’opération.

userEntitlement

UserEntitlement

Résultat du droit utilisateur après l’application des opérations.