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 |
Livello di accesso del membro indicato da una licenza. |
|
dateCreated |
string (date-time) |
[Sola lettura] Data di aggiunta del membro alla raccolta. |
groupAssignments |
[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 |
Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto. |
|
user |
Riferimento utente. |
Risposte
Nome | Tipo | Descrizione |
---|---|---|
200 OK |
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 |
---|---|
Access |
Licenza assegnata a un utente |
Account |
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. |
Account |
Stato utente nell'account |
Assignment |
Origine assegnazione della licenza (ad esempio, gruppo, sconosciuto e così via). |
Graph |
Entità del gruppo di gragrafi |
Graph |
|
Group |
Gruppo di progetti (ad esempio Collaboratore, Lettore e così via) |
Group |
Un'entità di gruppo con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto |
Group |
Stato della regola di gruppo. |
Group |
Tipo di gruppo |
Licensing |
Origine licenze (ad esempio Account. MSDN e così via) |
Msdn |
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. |
Project |
Relazione tra un progetto e le autorizzazioni valide dell'utente in tale progetto. |
Project |
Indica se l'utente eredita le autorizzazioni per un progetto tramite l'appartenenza a un gruppo di Azure DevOps o AAD. |
Project |
Riferimento a un progetto |
Reference |
Classe per rappresentare una raccolta di collegamenti di riferimento REST. |
Team |
Riferimento a un team |
User |
Un'entità utente con proprietà aggiuntive, tra cui la licenza, le estensioni e l'appartenenza al progetto |
User |
|
User |
AccessLevel
Licenza assegnata a un utente
Nome | Tipo | Descrizione |
---|---|---|
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 |
Origine assegnazione della licenza (ad esempio, gruppo, sconosciuto e così via). |
|
licenseDisplayName |
string |
Nome visualizzato della licenza |
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. |
|
status |
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 |
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 |
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 |
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 |
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 |
Regola di licenza. |
|
members |
Membri del gruppo. Utilizzato solo durante la creazione di un nuovo gruppo. |
|
projectEntitlements |
Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto. |
|
status |
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 |
Origine assegnazione (ad esempio Gruppo o Sconosciuto). |
|
group |
Gruppo di progetti (ad esempio Collaboratore, Lettore e così via) |
|
projectPermissionInherited |
Indica se l'utente eredita le autorizzazioni per un progetto tramite l'appartenenza a un gruppo di Azure DevOps o AAD. |
|
projectRef |
Riferimento progetto |
|
teamRefs |
Team |
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. |
ReferenceLinks
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 |
Livello di accesso del membro indicato da una licenza. |
|
dateCreated |
string (date-time) |
[Sola lettura] Data di aggiunta del membro alla raccolta. |
groupAssignments |
[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 |
Relazione tra un progetto e le autorizzazioni effettive del membro in tale progetto. |
|
user |
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 |
Risultato dell'operazione. |
|
userEntitlement |
Risultato del diritto utente dopo l'applicazione delle operazioni. |