User Entitlements - Add
Adicione um usuário, atribua licenças e extensões e torne-os membros de um grupo de projetos em uma conta.
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4
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-preview.4' para usar essa versão da api. |
Corpo da solicitação
Nome | Tipo | Description |
---|---|---|
accessLevel |
Access |
Nível de acesso do membro indicado por uma licença. |
dateCreated |
string |
[Readonly] Data em que o membro foi adicionado à coleção. |
groupAssignments |
Group |
[Readonly] GroupEntitlements aos quais este membro pertence. |
id |
string |
O identificador exclusivo que corresponde à ID da Identidade associada ao GraphMember. |
lastAccessedDate |
string |
[Readonly] Data em que o membro acessou a coleção pela última vez. |
projectEntitlements |
Project |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
user |
Graph |
Referência do usuário. |
Respostas
Nome | Tipo | Description |
---|---|---|
200 OK |
User |
operação bem-sucedida |
Segurança
oauth2
Type:
oauth2
Flow:
accessCode
Authorization URL:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL:
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
Scopes
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
Sample Request
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4
{
"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"
}
}
]
}
Sample Response
{
"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 'account' no corpo da solicitação. |
Account |
Status de usuário na conta |
Assignment |
Fonte de 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 de 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 de projeto |
User |
|
User |
AccessLevel
Licença atribuída a um usuário
Nome | Tipo | Description |
---|---|---|
accountLicenseType |
Account |
Tipo de licença de conta (por exemplo, Express, Stakeholder etc.). Para usar o AccountLicenseType, LicensingSource deve ser definido como 'account' no corpo da solicitação. |
assignmentSource |
Assignment |
Fonte de atribuição da licença (por exemplo, Grupo, Desconhecido etc. |
licenseDisplayName |
string |
Nome de exibição da Licença |
licensingSource |
Licensing |
Fonte de licenciamento (por exemplo, Conta. MSDN etc.) |
msdnLicenseType |
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. |
status |
Account |
Status de 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 'account' no corpo da solicitação.
Nome | Tipo | Description |
---|---|---|
advanced |
string |
|
earlyAdopter |
string |
|
express |
string |
|
none |
string |
|
professional |
string |
|
stakeholder |
string |
AccountUserStatus
Status de usuário na conta
Nome | Tipo | Description |
---|---|---|
active |
string |
O usuário entrou pelo menos uma vez na conta do VSTS |
deleted |
string |
O usuário é removido da conta do VSTS pelo administrador da conta do VSTS |
disabled |
string |
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 |
string |
O usuário pode entrar; usado principalmente quando a licença está em estado expirado e damos um período de carência |
none |
string |
|
pending |
string |
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 |
string |
O usuário está desabilitado; se reenabled, eles ainda estarão no estado Pendente |
AssignmentSource
Fonte de atribuição da licença (por exemplo, Grupo, Desconhecido etc.
Nome | Tipo | Description |
---|---|---|
groupRule |
string |
|
none |
string |
|
unknown |
string |
GraphGroup
Entidade de grupo do Graph
Nome | Tipo | Description |
---|---|---|
_links |
Reference |
Esse 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 entre 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, este é "Windows Live ID", 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 caso você precise 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 o suporte de um provedor diferente e tem uma ID exclusiva diferente no novo provedor. |
principalName |
string |
Este é o PrincipalName desse membro de 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 da entidade 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 |
Reference |
Esse 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 entre contas e organizações. |
directoryAlias |
string |
O nome curto, geralmente exclusivo para o usuário no diretório de suporte. 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, este é "Windows Live ID", para AD o nome do domínio, para o AAD a tenantID do diretório, para grupos VSTS, ScopeId etc. |
isDeletedInOrigin |
boolean |
Quando true, o grupo foi excluído no provedor de identidade |
legacyDescriptor |
string |
[Somente uso interno] O descritor herdado está aqui caso você precise 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 o suporte de um provedor diferente e tem uma ID exclusiva diferente no novo provedor. |
principalName |
string |
Este é o PrincipalName desse membro de 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 da entidade 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 |
Group |
Tipo de Grupo |
GroupEntitlement
Uma entidade de grupo com propriedades adicionais, incluindo sua licença, extensões e associação de projeto
Nome | Tipo | Description |
---|---|---|
group |
Graph |
Referência de membro. |
id |
string |
O identificador exclusivo que corresponde à ID do GraphMember. |
lastExecuted |
string |
[Readonly] A última vez que a regra de licenciamento de grupo foi executada (independentemente de alguma alteração ter sido feita). |
licenseRule |
Access |
Regra de licença. |
members |
User |
Membros do grupo. Usado somente ao criar um novo grupo. |
projectEntitlements |
Project |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
status |
Group |
O status da regra de grupo. |
GroupLicensingRuleStatus
O status da regra de grupo.
Nome | Tipo | Description |
---|---|---|
applied |
string |
A regra é aplicada |
applyPending |
string |
A regra é criada ou atualizada, mas a aplicação está pendente |
incompatible |
string |
A regra de grupo era incompatível |
unableToApply |
string |
Falha ao aplicar a regra inesperadamente e deve ser repetida |
GroupType
Tipo de Grupo
Nome | Tipo | Description |
---|---|---|
custom |
string |
|
projectAdministrator |
string |
|
projectContributor |
string |
|
projectReader |
string |
|
projectStakeholder |
string |
LicensingSource
Fonte de licenciamento (por exemplo, Conta. MSDN etc.)
Nome | Tipo | Description |
---|---|---|
account |
string |
|
auto |
string |
|
msdn |
string |
|
none |
string |
|
profile |
string |
|
trial |
string |
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.
Nome | Tipo | Description |
---|---|---|
eligible |
string |
|
enterprise |
string |
|
none |
string |
|
platforms |
string |
|
premium |
string |
|
professional |
string |
|
testProfessional |
string |
|
ultimate |
string |
ProjectEntitlement
Relação entre um projeto e as permissões efetivas do usuário nesse projeto.
Nome | Tipo | Description |
---|---|---|
assignmentSource |
Assignment |
Origem da atribuição (por exemplo, Grupo ou Desconhecido). |
group |
Grupo de Projetos (por exemplo, Colaborador, Leitor etc.) |
|
projectPermissionInherited |
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. |
projectRef |
Project |
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.
Nome | Tipo | Description |
---|---|---|
inherited |
string |
|
notInherited |
string |
|
notSet |
string |
ProjectRef
Uma referência a um projeto
Nome | Tipo | Description |
---|---|---|
id |
string |
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 |
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 de projeto
Nome | Tipo | Description |
---|---|---|
accessLevel |
Access |
Nível de acesso do membro indicado por uma licença. |
dateCreated |
string |
[Readonly] Data em que o membro foi adicionado à coleção. |
groupAssignments |
Group |
[Readonly] GroupEntitlements aos quais este membro pertence. |
id |
string |
O identificador exclusivo que corresponde à ID da Identidade associada ao GraphMember. |
lastAccessedDate |
string |
[Readonly] Data em que o membro acessou a coleção pela última vez. |
projectEntitlements |
Project |
Relação entre um projeto e as permissões efetivas do membro nesse projeto. |
user |
Graph |
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 |
Êxito status da operação. |
result |
string |
Propriedade de direito resultante. Para implementações específicas, consulte também: |
userId |
string |
Identificador do Membro que está sendo agindo. |
UserEntitlementsPostResponse
Nome | Tipo | Description |
---|---|---|
isSuccess |
boolean |
True se todas as operações foram bem-sucedidas. |
operationResult |
User |
Resultado da operação. |
userEntitlement |
User |
Resultado do direito do usuário após a aplicação das operações. |