Partilhar via


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

AccessLevel

Nível de acesso do membro indicado por uma licença.

dateCreated

string

[Readonly] Data em que o membro foi adicionado à coleção.

groupAssignments

GroupEntitlement[]

[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

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

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
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 'account' no corpo da solicitação.

AccountUserStatus

Status de usuário na conta

AssignmentSource

Fonte de 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 de 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 de 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 'account' no corpo da solicitação.

assignmentSource

AssignmentSource

Fonte de 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 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

ReferenceLinks

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

ReferenceLinks

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

GroupType

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

GraphGroup

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

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.

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

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.

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.

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

AccessLevel

Nível de acesso do membro indicado por uma licença.

dateCreated

string

[Readonly] Data em que o membro foi adicionado à coleção.

groupAssignments

GroupEntitlement[]

[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

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

Ê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

UserEntitlementOperationResult

Resultado da operação.

userEntitlement

UserEntitlement

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