User Entitlements - Add
Adicione um usuário, atribua licenças e extensões e torne-o um membro de um grupo de projetos em uma conta.
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
Parâmetros de URI
Nome | Em | Obrigatório | Tipo | Description |
---|---|---|---|---|
organization
|
path | True |
string |
O nome da organização do Azure DevOps. |
api-version
|
query | True |
string |
Versão da API a ser usada. Isso deve ser definido como '7.1' para usar essa versão da api. |
Corpo da solicitação
Nome | Tipo | Description |
---|---|---|
accessLevel |
Nível de acesso do membro indicado por uma licença. |
|
dateCreated |
string (date-time) |
[Readonly] Data em que o membro foi adicionado à coleção. |
groupAssignments |
[Readonly] GroupEntitlements aos quais este membro pertence. |
|
id |
string (uuid) |
O identificador exclusivo que corresponde à ID da Identidade associada ao GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Data em que o membro acessou a coleção pela última vez. |
projectEntitlements |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
|
user |
Referência do usuário. |
Respostas
Nome | Tipo | Description |
---|---|---|
200 OK |
operação bem-sucedida |
Segurança
oauth2
Tipo:
oauth2
Flow:
accessCode
URL de Autorização:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
URL do 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
Escopos
Nome | Description |
---|---|
vso.memberentitlementmanagement_write | Concede a capacidade de gerenciar usuários, suas licenças, bem como projetos e extensões que eles podem acessar |
Exemplos
Solicitação de exemplo
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"
}
}
]
}
Resposta de exemplo
{
"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": []
}
}
Definições
Nome | Description |
---|---|
Access |
Licença atribuída a um usuário |
Account |
Tipo de licença de conta (por exemplo, Express, Stakeholder etc.). Para usar o AccountLicenseType, LicensingSource deve ser definido como "conta" no corpo da solicitação. |
Account |
Status do usuário na conta |
Assignment |
Origem da atribuição da licença (por exemplo, Grupo, Desconhecido etc. |
Graph |
Entidade de grupo do Graph |
Graph |
|
Group |
Grupo de projetos (por exemplo, Colaborador, Leitor etc.) |
Group |
Uma entidade de grupo com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto |
Group |
O status da regra de grupo. |
Group |
Tipo de Grupo |
Licensing |
Fonte de licenciamento (por exemplo, Conta. MSDN etc.) |
Msdn |
Tipo de licença MSDN (por exemplo, Visual Studio Professional, Visual Studio Enterprise etc.). Para usar o MsdnLicenseType, LicensingSource deve ser definido como 'msdn' no corpo da solicitação. |
Project |
Relação entre um projeto e as permissões efetivas do usuário nesse projeto. |
Project |
Se o usuário está herdando permissões para um projeto por meio de uma associação de grupo do Azure DevOps ou do AAD. |
Project |
Uma referência a um projeto |
Reference |
A classe para representar uma coleção de links de referência REST. |
Team |
Uma referência a uma equipe |
User |
Uma entidade de usuário com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto |
User |
|
User |
AccessLevel
Licença atribuída a um usuário
Nome | Tipo | Description |
---|---|---|
accountLicenseType |
Tipo de licença de conta (por exemplo, Express, Stakeholder etc.). Para usar o AccountLicenseType, LicensingSource deve ser definido como "conta" no corpo da solicitação. |
|
assignmentSource |
Origem da atribuição da licença (por exemplo, Grupo, Desconhecido etc. |
|
licenseDisplayName |
string |
Nome de exibição da Licença |
licensingSource |
Fonte de licenciamento (por exemplo, Conta. MSDN etc.) |
|
msdnLicenseType |
Tipo de licença MSDN (por exemplo, Visual Studio Professional, Visual Studio Enterprise etc.). Para usar o MsdnLicenseType, LicensingSource deve ser definido como 'msdn' no corpo da solicitação. |
|
status |
Status do usuário na conta |
|
statusMessage |
string |
Mensagem de status. |
AccountLicenseType
Tipo de licença de conta (por exemplo, Express, Stakeholder etc.). Para usar o AccountLicenseType, LicensingSource deve ser definido como "conta" no corpo da solicitação.
Valor | Description |
---|---|
advanced | |
earlyAdopter | |
express | |
none | |
professional | |
stakeholder |
AccountUserStatus
Status do usuário na conta
Valor | Description |
---|---|
active |
O usuário entrou pelo menos uma vez na conta do VSTS |
deleted |
O usuário é removido da conta do VSTS pelo administrador da conta do VSTS |
disabled |
O usuário não pode entrar; usado principalmente pelo administrador para remover temporariamente um usuário devido à ausência ou realocação de licença |
expired |
O usuário pode entrar; usado principalmente quando a licença está em estado expirado e damos um período de carência |
none | |
pending |
O usuário é convidado a ingressar na conta do VSTS pelo administrador da conta do VSTS, mas ainda não se inscreveu/se inscreveu |
pendingDisabled |
O usuário está desabilitado; se reenabled, eles ainda estarão no estado pendente |
AssignmentSource
Origem da atribuição da licença (por exemplo, Grupo, Desconhecido etc.
Valor | Description |
---|---|
groupRule | |
none | |
unknown |
GraphGroup
Entidade de grupo do Graph
Nome | Tipo | Description |
---|---|---|
_links |
Este campo contém zero ou mais links interessantes sobre o assunto do grafo. Esses links podem ser invocados para obter relações adicionais ou informações mais detalhadas sobre esse assunto do grafo. |
|
description |
string |
Uma frase curta para ajudar os leitores humanos a desambiguar grupos com nomes semelhantes |
descriptor |
string |
O descritor é a principal maneira de referenciar o assunto do grafo enquanto o sistema está em execução. Esse campo identificará exclusivamente o mesmo assunto de grafo em contas e organizações. |
displayName |
string |
Esse é o nome de exibição não exclusivo do assunto do grafo. Para alterar esse campo, você deve alterar seu valor no provedor de origem. |
domain |
string |
Isso representa o nome do contêiner de origem de um membro do grafo. (Para MSA, esta é a "ID do Windows Live", para AD, o nome do domínio, para o AAD, a tenantID do diretório, para grupos VSTS, ScopeId etc) |
legacyDescriptor |
string |
[Somente uso interno] O descritor herdado está aqui no caso de você precisar acessar a versão antiga do IMS usando o descritor de identidade. |
mailAddress |
string |
O endereço de email do registro de um determinado membro do grafo. Isso pode ser diferente do nome da entidade de segurança. |
origin |
string |
O tipo de provedor de origem para o identificador de origem (ex:AD, AAD, MSA) |
originId |
string |
O identificador exclusivo do sistema de origem. Normalmente, um sid, id de objeto ou Guid. As operações de vinculação e desvinculação podem fazer com que esse valor seja alterado para um usuário porque o usuário não tem suporte de um provedor diferente e tem uma ID exclusiva diferente no novo provedor. |
principalName |
string |
Este é o PrincipalName deste membro do grafo do provedor de origem. O provedor de origem pode alterar esse campo ao longo do tempo e não é garantido que ele seja imutável durante a vida útil do membro do grafo pelo VSTS. |
subjectKind |
string |
Esse campo identifica o tipo de assunto do grafo (por exemplo: Grupo, Escopo, Usuário). |
url |
string |
Essa URL é a rota completa para o recurso de origem desta entidade de grafo. |
GraphUser
Nome | Tipo | Description |
---|---|---|
_links |
Este campo contém zero ou mais links interessantes sobre o assunto do grafo. Esses links podem ser invocados para obter relações adicionais ou informações mais detalhadas sobre esse assunto do grafo. |
|
descriptor |
string |
O descritor é a principal maneira de referenciar o assunto do grafo enquanto o sistema está em execução. Esse campo identificará exclusivamente o mesmo assunto de grafo em contas e organizações. |
directoryAlias |
string |
O nome curto e geralmente exclusivo para o usuário no diretório de backup. Para usuários do AAD, isso corresponde ao apelido de email, que geralmente é, mas não necessariamente semelhante à parte do endereço de email do usuário antes do sinal @. Para usuários do GitHub, isso corresponde ao identificador de usuário do GitHub. |
displayName |
string |
Esse é o nome de exibição não exclusivo do assunto do grafo. Para alterar esse campo, você deve alterar seu valor no provedor de origem. |
domain |
string |
Isso representa o nome do contêiner de origem de um membro do grafo. (Para MSA, esta é a "ID do Windows Live", para AD, o nome do domínio, para o AAD, a tenantID do diretório, para grupos VSTS, ScopeId etc) |
isDeletedInOrigin |
boolean |
Quando verdadeiro, o grupo foi excluído no provedor de identidade |
legacyDescriptor |
string |
[Somente uso interno] O descritor herdado está aqui no caso de você precisar acessar a versão antiga do IMS usando o descritor de identidade. |
mailAddress |
string |
O endereço de email do registro de um determinado membro do grafo. Isso pode ser diferente do nome da entidade de segurança. |
metaType |
string |
O meta tipo do usuário na origem, como "membro", "convidado", etc. Consulte UserMetaType para obter o conjunto de valores possíveis. |
origin |
string |
O tipo de provedor de origem para o identificador de origem (ex:AD, AAD, MSA) |
originId |
string |
O identificador exclusivo do sistema de origem. Normalmente, um sid, id de objeto ou Guid. As operações de vinculação e desvinculação podem fazer com que esse valor seja alterado para um usuário porque o usuário não tem suporte de um provedor diferente e tem uma ID exclusiva diferente no novo provedor. |
principalName |
string |
Este é o PrincipalName deste membro do grafo do provedor de origem. O provedor de origem pode alterar esse campo ao longo do tempo e não é garantido que ele seja imutável durante a vida útil do membro do grafo pelo VSTS. |
subjectKind |
string |
Esse campo identifica o tipo de assunto do grafo (por exemplo: Grupo, Escopo, Usuário). |
url |
string |
Essa URL é a rota completa para o recurso de origem desta entidade de grafo. |
Group
Grupo de projetos (por exemplo, Colaborador, Leitor etc.)
Nome | Tipo | Description |
---|---|---|
displayName |
string |
Nome de Exibição do Grupo |
groupType |
Tipo de Grupo |
GroupEntitlement
Uma entidade de grupo com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto
Nome | Tipo | Description |
---|---|---|
group |
Referência de membro. |
|
id |
string (uuid) |
O identificador exclusivo que corresponde à ID do GraphMember. |
lastExecuted |
string (date-time) |
[Readonly] A última vez que a regra de licenciamento do grupo foi executada (independentemente de alguma alteração ter sido feita). |
licenseRule |
Regra de licença. |
|
members |
Membros do grupo. Usado somente ao criar um novo grupo. |
|
projectEntitlements |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
|
status |
O status da regra de grupo. |
GroupLicensingRuleStatus
O status da regra de grupo.
Valor | Description |
---|---|
applied |
A regra é aplicada |
applyPending |
A regra é criada ou atualizada, mas a aplicação está pendente |
incompatible |
A regra de grupo era incompatível |
unableToApply |
A regra não foi aplicada inesperadamente e deve ser repetida |
GroupType
Tipo de Grupo
Valor | Description |
---|---|
custom | |
projectAdministrator | |
projectContributor | |
projectReader | |
projectStakeholder |
LicensingSource
Fonte de licenciamento (por exemplo, Conta. MSDN etc.)
Valor | Description |
---|---|
account | |
auto | |
msdn | |
none | |
profile | |
trial |
MsdnLicenseType
Tipo de licença MSDN (por exemplo, Visual Studio Professional, Visual Studio Enterprise etc.). Para usar o MsdnLicenseType, LicensingSource deve ser definido como 'msdn' no corpo da solicitação.
Valor | Description |
---|---|
eligible | |
enterprise | |
none | |
platforms | |
premium | |
professional | |
testProfessional | |
ultimate |
ProjectEntitlement
Relação entre um projeto e as permissões efetivas do usuário nesse projeto.
Nome | Tipo | Description |
---|---|---|
assignmentSource |
Origem da atribuição (por exemplo, Grupo ou Desconhecido). |
|
group |
Grupo de projetos (por exemplo, Colaborador, Leitor etc.) |
|
projectPermissionInherited |
Se o usuário está herdando permissões para um projeto por meio de uma associação de grupo do Azure DevOps ou do AAD. |
|
projectRef |
Ref do Projeto |
|
teamRefs |
Team |
Team Ref. |
ProjectPermissionInherited
Se o usuário está herdando permissões para um projeto por meio de uma associação de grupo do Azure DevOps ou do AAD.
Valor | Description |
---|---|
inherited | |
notInherited | |
notSet |
ProjectRef
Uma referência a um projeto
Nome | Tipo | Description |
---|---|---|
id |
string (uuid) |
ID do projeto. |
name |
string |
Nome do projeto. |
ReferenceLinks
A classe para representar uma coleção de links de referência REST.
Nome | Tipo | Description |
---|---|---|
links |
object |
A exibição somente leitura dos links. Como os links de referência são somente leitura, só queremos expô-los como somente leitura. |
TeamRef
Uma referência a uma equipe
Nome | Tipo | Description |
---|---|---|
id |
string (uuid) |
ID da equipe |
name |
string |
Nome da equipe |
UserEntitlement
Uma entidade de usuário com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto
Nome | Tipo | Description |
---|---|---|
accessLevel |
Nível de acesso do membro indicado por uma licença. |
|
dateCreated |
string (date-time) |
[Readonly] Data em que o membro foi adicionado à coleção. |
groupAssignments |
[Readonly] GroupEntitlements aos quais este membro pertence. |
|
id |
string (uuid) |
O identificador exclusivo que corresponde à ID da Identidade associada ao GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Data em que o membro acessou a coleção pela última vez. |
projectEntitlements |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
|
user |
Referência do usuário. |
UserEntitlementOperationResult
Nome | Tipo | Description |
---|---|---|
errors |
object[] |
Lista de códigos de erro emparelhados com suas mensagens de erro correspondentes. |
isSuccess |
boolean |
Status de êxito da operação. |
result |
string (T) |
Propriedade de direito resultante. Para implementações específicas, consulte também: |
userId |
string (uuid) |
Identificador do Membro que está sendo agido. |
UserEntitlementsPostResponse
Nome | Tipo | Description |
---|---|---|
isSuccess |
boolean |
True se todas as operações foram bem-sucedidas. |
operationResult |
Resultado da operação. |
|
userEntitlement |
Resultado do direito do usuário após a aplicação das operações. |