Compartilhar via


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

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

GroupEntitlement[]

[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

ProjectEntitlement[]

Relação entre um projeto e as permissões efetivas do membro nesse projeto.

user

GraphUser

Referência do usuário.

Respostas

Nome Tipo Description
200 OK

UserEntitlementsPostResponse

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
AccessLevel

Licença atribuída a um usuário

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.

AccountUserStatus

Status do usuário na conta

AssignmentSource

Origem da atribuição da licença (por exemplo, Grupo, Desconhecido etc.

GraphGroup

Entidade de grupo do Graph

GraphUser
Group

Grupo de projetos (por exemplo, Colaborador, Leitor etc.)

GroupEntitlement

Uma entidade de grupo com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto

GroupLicensingRuleStatus

O status da regra de grupo.

GroupType

Tipo de Grupo

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.

ProjectEntitlement

Relação entre um projeto e as permissões efetivas do usuário nesse projeto.

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

Uma referência a um projeto

ReferenceLinks

A classe para representar uma coleção de links de referência REST.

TeamRef

Uma referência a uma equipe

UserEntitlement

Uma entidade de usuário com propriedades adicionais, incluindo sua licença, extensões e associação ao projeto

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

Licença atribuída a um usuário

Nome Tipo Description
accountLicenseType

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

AssignmentSource

Origem da atribuição da licença (por exemplo, Grupo, Desconhecido etc.

licenseDisplayName

string

Nome de exibição da Licença

licensingSource

LicensingSource

Fonte de licenciamento (por exemplo, Conta. MSDN etc.)

msdnLicenseType

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

AccountUserStatus

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

ReferenceLinks

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

ReferenceLinks

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

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

GraphGroup

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

AccessLevel

Regra de licença.

members

UserEntitlement[]

Membros do grupo. Usado somente ao criar um novo grupo.

projectEntitlements

ProjectEntitlement[]

Relação entre um projeto e as permissões efetivas do membro nesse projeto.

status

GroupLicensingRuleStatus

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

AssignmentSource

Origem da atribuição (por exemplo, Grupo ou Desconhecido).

group

Group

Grupo de projetos (por exemplo, Colaborador, Leitor etc.)

projectPermissionInherited

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

ProjectRef

Ref do Projeto

teamRefs

TeamRef[]

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.

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

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

GroupEntitlement[]

[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

ProjectEntitlement[]

Relação entre um projeto e as permissões efetivas do membro nesse projeto.

user

GraphUser

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

UserEntitlementOperationResult

Resultado da operação.

userEntitlement

UserEntitlement

Resultado do direito do usuário após a aplicação das operações.