Condividi tramite


User Entitlements - Add

Aggiungere un utente, assegnare licenze ed estensioni e impostarle come membro di un gruppo di progetti in un account.

POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1

Parametri dell'URI

Nome In Necessario Tipo Descrizione
organization
path True

string

Nome dell'organizzazione di Azure DevOps.

api-version
query True

string

Versione dell'API da usare. Deve essere impostato su '7.1' per usare questa versione dell'API.

Corpo della richiesta

Nome Tipo Descrizione
accessLevel

AccessLevel

Livello di accesso del membro indicato da una licenza.

dateCreated

string (date-time)

[Sola lettura] Data di aggiunta del membro alla raccolta.

groupAssignments

GroupEntitlement[]

[Sola lettura] GroupEntitlements a cui appartiene questo membro.

id

string (uuid)

Identificatore univoco che corrisponde all'ID dell'identità associata a GraphMember.

lastAccessedDate

string (date-time)

[Sola lettura] Data dell'ultimo accesso dell'insieme al membro.

projectEntitlements

ProjectEntitlement[]

Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto.

user

GraphUser

Riferimento utente.

Risposte

Nome Tipo Descrizione
200 OK

UserEntitlementsPostResponse

operazione riuscita

Sicurezza

oauth2

Tipo: oauth2
Flow: accessCode
URL di autorizzazione: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
URL token: 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

Ambiti

Nome Descrizione
vso.memberentitlementmanagement_write Concede la possibilità di gestire gli utenti, le licenze e i progetti e le estensioni a cui possono accedere

Esempio

Esempio di richiesta

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"
      }
    }
  ]
}

Risposta di esempio

{
  "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": []
  }
}

Definizioni

Nome Descrizione
AccessLevel

Licenza assegnata a un utente

AccountLicenseType

Tipo di licenza dell'account (ad esempio Express, Stakeholder e così via). Per usare AccountLicenseType, LicensingSource deve essere definito come "account" nel corpo della richiesta.

AccountUserStatus

Stato utente nell'account

AssignmentSource

Origine assegnazione della licenza (ad esempio, gruppo, sconosciuto e così via).

GraphGroup

Entità del gruppo di gragrafi

GraphUser
Group

Gruppo di progetti (ad esempio Collaboratore, Lettore e così via)

GroupEntitlement

Un'entità di gruppo con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto

GroupLicensingRuleStatus

Stato della regola di gruppo.

GroupType

Tipo di gruppo

LicensingSource

Origine licenze (ad esempio Account. MSDN e così via)

MsdnLicenseType

Tipo di licenza MSDN (ad esempio Visual Studio Professional, Visual Studio Enterprise e così via). Per usare MsdnLicenseType, LicensingSource deve essere definito come "msdn" nel corpo della richiesta.

ProjectEntitlement

Relazione tra un progetto e le autorizzazioni valide dell'utente in tale progetto.

ProjectPermissionInherited

Indica se l'utente eredita le autorizzazioni per un progetto tramite l'appartenenza a un gruppo di Azure DevOps o AAD.

ProjectRef

Riferimento a un progetto

ReferenceLinks

Classe per rappresentare una raccolta di collegamenti di riferimento REST.

TeamRef

Riferimento a un team

UserEntitlement

Un'entità utente con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

Licenza assegnata a un utente

Nome Tipo Descrizione
accountLicenseType

AccountLicenseType

Tipo di licenza dell'account (ad esempio Express, Stakeholder e così via). Per usare AccountLicenseType, LicensingSource deve essere definito come "account" nel corpo della richiesta.

assignmentSource

AssignmentSource

Origine assegnazione della licenza (ad esempio, gruppo, sconosciuto e così via).

licenseDisplayName

string

Nome visualizzato della licenza

licensingSource

LicensingSource

Origine licenze (ad esempio Account. MSDN e così via)

msdnLicenseType

MsdnLicenseType

Tipo di licenza MSDN (ad esempio Visual Studio Professional, Visual Studio Enterprise e così via). Per usare MsdnLicenseType, LicensingSource deve essere definito come "msdn" nel corpo della richiesta.

status

AccountUserStatus

Stato utente nell'account

statusMessage

string

Messaggio di stato.

AccountLicenseType

Tipo di licenza dell'account (ad esempio Express, Stakeholder e così via). Per usare AccountLicenseType, LicensingSource deve essere definito come "account" nel corpo della richiesta.

Valore Descrizione
advanced
earlyAdopter
express
none
professional
stakeholder

AccountUserStatus

Stato utente nell'account

Valore Descrizione
active

L'utente ha eseguito l'accesso almeno una volta all'account VSTS

deleted

L'utente viene rimosso dall'account VSTS dall'amministratore dell'account VSTS

disabled

L'utente non può accedere; usato principalmente dall'amministratore per rimuovere temporaneamente un utente a causa di assenza o riallocazione delle licenze

expired

L'utente può accedere; usato principalmente quando la licenza è in stato scaduto e viene concesso un periodo di tolleranza

none
pending

L'utente viene invitato a partecipare all'account VSTS dall'amministratore dell'account VSTS, ma non ha ancora eseguito l'iscrizione o l'accesso

pendingDisabled

L'utente è disabilitato; se riabilitabile, saranno ancora nello stato In sospeso

AssignmentSource

Origine assegnazione della licenza (ad esempio, gruppo, sconosciuto e così via).

Valore Descrizione
groupRule
none
unknown

GraphGroup

Entità del gruppo di gragrafi

Nome Tipo Descrizione
_links

ReferenceLinks

Questo campo contiene zero o più collegamenti interessanti sull'oggetto grafico. Questi collegamenti possono essere richiamati per ottenere relazioni aggiuntive o informazioni più dettagliate sull'oggetto grafico.

description

string

Una breve frase per aiutare i lettori umani a disambiguare i gruppi con nomi simili

descriptor

string

Il descrittore è il modo principale per fare riferimento all'oggetto del grafo mentre il sistema è in esecuzione. Questo campo identificherà in modo univoco lo stesso soggetto del grafico in account e organizzazioni.

displayName

string

Si tratta del nome visualizzato non univoco dell'oggetto del grafico. Per modificare questo campo, è necessario modificarne il valore nel provider di origine.

domain

string

Rappresenta il nome del contenitore di origine per un membro del grafico. (Per MSA questo è "Windows Live ID", per AD il nome del dominio, per AAD il tenantID della directory, per VSTS raggruppa scopeId e così via)

legacyDescriptor

string

[Solo uso interno] Il descrittore legacy è qui nel caso in cui sia necessario accedere a IMS versione precedente usando il descrittore di identità.

mailAddress

string

Indirizzo di posta elettronica del record per un determinato membro del grafo. Può essere diverso dal nome dell'entità.

origin

string

Tipo di provider di origine per l'identificatore di origine (ad esempio, AD, AAD, MSA)

originId

string

Identificatore univoco del sistema di origine. In genere, sid, ID oggetto o GUID. Le operazioni di collegamento e scollegamento possono causare la modifica di questo valore per un utente perché l'utente non è supportato da un provider diverso e ha un ID univoco diverso nel nuovo provider.

principalName

string

Questo è il PrincipalName di questo membro del grafo dal provider di origine. Il provider di origine può modificare questo campo nel tempo e non è garantito che non sia modificabile per la durata del membro del grafo da VSTS.

subjectKind

string

Questo campo identifica il tipo dell'oggetto del grafo (ad esempio, Gruppo, Ambito, Utente).

url

string

Questo URL è la route completa alla risorsa di origine di questo oggetto grafico.

GraphUser

Nome Tipo Descrizione
_links

ReferenceLinks

Questo campo contiene zero o più collegamenti interessanti sull'oggetto grafico. Questi collegamenti possono essere richiamati per ottenere relazioni aggiuntive o informazioni più dettagliate sull'oggetto grafico.

descriptor

string

Il descrittore è il modo principale per fare riferimento all'oggetto del grafo mentre il sistema è in esecuzione. Questo campo identificherà in modo univoco lo stesso soggetto del grafico in account e organizzazioni.

directoryAlias

string

Nome breve, in genere univoco per l'utente nella directory di backup. Per gli utenti di AAD, corrisponde al nome alternativo di posta elettronica, che è spesso ma non necessariamente simile alla parte dell'indirizzo di posta dell'utente prima del segno @. Per gli utenti di GitHub, corrisponde all'handle utente di GitHub.

displayName

string

Si tratta del nome visualizzato non univoco dell'oggetto del grafico. Per modificare questo campo, è necessario modificarne il valore nel provider di origine.

domain

string

Rappresenta il nome del contenitore di origine per un membro del grafico. (Per MSA questo è "Windows Live ID", per AD il nome del dominio, per AAD il tenantID della directory, per VSTS raggruppa scopeId e così via)

isDeletedInOrigin

boolean

Se true, il gruppo è stato eliminato nel provider di identità

legacyDescriptor

string

[Solo uso interno] Il descrittore legacy è qui nel caso in cui sia necessario accedere a IMS versione precedente usando il descrittore di identità.

mailAddress

string

Indirizzo di posta elettronica del record per un determinato membro del grafo. Può essere diverso dal nome dell'entità.

metaType

string

Metatipo dell'utente nell'origine, ad esempio "membro", "guest" e così via. Per il set di valori possibili, vedere UserMetaType.

origin

string

Tipo di provider di origine per l'identificatore di origine (ad esempio, AD, AAD, MSA)

originId

string

Identificatore univoco del sistema di origine. In genere, sid, ID oggetto o GUID. Le operazioni di collegamento e scollegamento possono causare la modifica di questo valore per un utente perché l'utente non è supportato da un provider diverso e ha un ID univoco diverso nel nuovo provider.

principalName

string

Questo è il PrincipalName di questo membro del grafo dal provider di origine. Il provider di origine può modificare questo campo nel tempo e non è garantito che non sia modificabile per la durata del membro del grafo da VSTS.

subjectKind

string

Questo campo identifica il tipo dell'oggetto del grafo (ad esempio, Gruppo, Ambito, Utente).

url

string

Questo URL è la route completa alla risorsa di origine di questo oggetto grafico.

Group

Gruppo di progetti (ad esempio Collaboratore, Lettore e così via)

Nome Tipo Descrizione
displayName

string

Nome visualizzato del gruppo

groupType

GroupType

Tipo di gruppo

GroupEntitlement

Un'entità di gruppo con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto

Nome Tipo Descrizione
group

GraphGroup

Riferimento ai membri.

id

string (uuid)

Identificatore univoco che corrisponde all'ID di GraphMember.

lastExecuted

string (date-time)

[Sola lettura] L'ultima volta che è stata eseguita la regola di licenza del gruppo (indipendentemente dal fatto che siano state apportate modifiche).

licenseRule

AccessLevel

Regola di licenza.

members

UserEntitlement[]

Membri del gruppo. Utilizzato solo durante la creazione di un nuovo gruppo.

projectEntitlements

ProjectEntitlement[]

Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto.

status

GroupLicensingRuleStatus

Stato della regola di gruppo.

GroupLicensingRuleStatus

Stato della regola di gruppo.

Valore Descrizione
applied

La regola viene applicata

applyPending

La regola viene creata o aggiornata, ma apply è in sospeso

incompatible

La regola di gruppo non è compatibile

unableToApply

La regola non è stata applicata in modo imprevisto e deve essere ritentata

GroupType

Tipo di gruppo

Valore Descrizione
custom
projectAdministrator
projectContributor
projectReader
projectStakeholder

LicensingSource

Origine licenze (ad esempio Account. MSDN e così via)

Valore Descrizione
account
auto
msdn
none
profile
trial

MsdnLicenseType

Tipo di licenza MSDN (ad esempio Visual Studio Professional, Visual Studio Enterprise e così via). Per usare MsdnLicenseType, LicensingSource deve essere definito come "msdn" nel corpo della richiesta.

Valore Descrizione
eligible
enterprise
none
platforms
premium
professional
testProfessional
ultimate

ProjectEntitlement

Relazione tra un progetto e le autorizzazioni valide dell'utente in tale progetto.

Nome Tipo Descrizione
assignmentSource

AssignmentSource

Origine assegnazione (ad esempio Gruppo o Sconosciuto).

group

Group

Gruppo di progetti (ad esempio Collaboratore, Lettore e così via)

projectPermissionInherited

ProjectPermissionInherited

Indica se l'utente eredita le autorizzazioni per un progetto tramite l'appartenenza a un gruppo di Azure DevOps o AAD.

projectRef

ProjectRef

Riferimento progetto

teamRefs

TeamRef[]

Riferimento team.

ProjectPermissionInherited

Indica se l'utente eredita le autorizzazioni per un progetto tramite l'appartenenza a un gruppo di Azure DevOps o AAD.

Valore Descrizione
inherited
notInherited
notSet

ProjectRef

Riferimento a un progetto

Nome Tipo Descrizione
id

string (uuid)

ID progetto.

name

string

Nome progetto.

Classe per rappresentare una raccolta di collegamenti di riferimento REST.

Nome Tipo Descrizione
links

object

Visualizzazione di sola lettura dei collegamenti. Poiché i collegamenti di riferimento sono di sola lettura, è consigliabile esporli solo come di sola lettura.

TeamRef

Riferimento a un team

Nome Tipo Descrizione
id

string (uuid)

Team ID

name

string

Nome team

UserEntitlement

Un'entità utente con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto

Nome Tipo Descrizione
accessLevel

AccessLevel

Livello di accesso del membro indicato da una licenza.

dateCreated

string (date-time)

[Sola lettura] Data di aggiunta del membro alla raccolta.

groupAssignments

GroupEntitlement[]

[Sola lettura] GroupEntitlements a cui appartiene questo membro.

id

string (uuid)

Identificatore univoco che corrisponde all'ID dell'identità associata a GraphMember.

lastAccessedDate

string (date-time)

[Sola lettura] Data dell'ultimo accesso dell'insieme al membro.

projectEntitlements

ProjectEntitlement[]

Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto.

user

GraphUser

Riferimento utente.

UserEntitlementOperationResult

Nome Tipo Descrizione
errors

object[]

Elenco di codici di errore associati ai messaggi di errore corrispondenti.

isSuccess

boolean

Stato di esito positivo dell'operazione.

result

string (T)

Proprietà entitlement risultante. Per implementazioni specifiche, vedere anche:

userId

string (uuid)

Identificatore del membro su cui viene eseguito l'azione.

UserEntitlementsPostResponse

Nome Tipo Descrizione
isSuccess

boolean

True se tutte le operazioni hanno avuto esito positivo.

operationResult

UserEntitlementOperationResult

Risultato dell'operazione.

userEntitlement

UserEntitlement

Risultato del diritto utente dopo l'applicazione delle operazioni.