User Entitlements - Add

Agregue un usuario, asigne licencias y extensiones y haga que sean miembros de un grupo de proyectos en una cuenta.

POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4

Parámetros de identificador URI

Nombre En Requerido Tipo Description
organization
path True

string

El nombre de la organización de Azure DevOps.

api-version
query True

string

Versión de la API que se va a usar. Debe establecerse en "7.1-preview.4" para usar esta versión de la API.

Cuerpo de la solicitud

Nombre Tipo Description
accessLevel

AccessLevel

Nivel de acceso del miembro indicado por una licencia.

dateCreated

string

[Readonly] Fecha en que se agregó el miembro a la colección.

groupAssignments

GroupEntitlement[]

[Readonly] GroupEntitlements a los que pertenece este miembro.

id

string

Identificador único que coincide con el identificador de la identidad asociada a GraphMember.

lastAccessedDate

string

[Readonly] Fecha en que el miembro accedió por última vez a la colección.

projectEntitlements

ProjectEntitlement[]

Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto.

user

GraphUser

Referencia de usuario.

Respuestas

Nombre Tipo Description
200 OK

UserEntitlementsPostResponse

operación correcta

Seguridad

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

Nombre Description
vso.memberentitlementmanagement_write Concede la capacidad de administrar usuarios, sus licencias, así como proyectos y extensiones a los que pueden acceder

Ejemplos

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": []
  }
}

Definiciones

Nombre Description
AccessLevel

Licencia asignada a un usuario

AccountLicenseType

Tipo de licencia de cuenta (por ejemplo, Express, Parte interesada, etc.). Para usar AccountLicenseType, LicensingSource debe definirse como "account" en el cuerpo de la solicitud.

AccountUserStatus

Estado del usuario en la cuenta

AssignmentSource

Origen de asignación de la licencia (por ejemplo, Grupo, Desconocido, etc.

GraphGroup

Entidad de grupo de grafos

GraphUser
Group

Grupo de proyectos (por ejemplo, Colaborador, Lector, etc.)

GroupEntitlement

Una entidad de grupo con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos

GroupLicensingRuleStatus

Estado de la regla de grupo.

GroupType

Tipo de grupo

LicensingSource

Origen de licencias (por ejemplo, cuenta. MSDN, etc.)

MsdnLicenseType

Tipo de licencia de MSDN (por ejemplo, Visual Studio Professional, Visual Studio Enterprise, etc.). Para usar MsdnLicenseType, LicensingSource debe definirse como "msdn" en el cuerpo de la solicitud.

ProjectEntitlement

Relación entre un proyecto y los permisos efectivos del usuario en ese proyecto.

ProjectPermissionInherited

Si el usuario hereda permisos para un proyecto a través de una pertenencia a grupos de Azure DevOps o AAD.

ProjectRef

Referencia a un proyecto

ReferenceLinks

Clase que representa una colección de vínculos de referencia de REST.

TeamRef

Referencia a un equipo

UserEntitlement

Una entidad de usuario con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

Licencia asignada a un usuario

Nombre Tipo Description
accountLicenseType

AccountLicenseType

Tipo de licencia de cuenta (por ejemplo, Express, Parte interesada, etc.). Para usar AccountLicenseType, LicensingSource debe definirse como "account" en el cuerpo de la solicitud.

assignmentSource

AssignmentSource

Origen de asignación de la licencia (por ejemplo, Grupo, Desconocido, etc.

licenseDisplayName

string

Nombre para mostrar de la licencia

licensingSource

LicensingSource

Origen de licencias (por ejemplo, cuenta. MSDN, etc.)

msdnLicenseType

MsdnLicenseType

Tipo de licencia de MSDN (por ejemplo, Visual Studio Professional, Visual Studio Enterprise, etc.). Para usar MsdnLicenseType, LicensingSource debe definirse como "msdn" en el cuerpo de la solicitud.

status

AccountUserStatus

Estado del usuario en la cuenta

statusMessage

string

Mensaje de estado.

AccountLicenseType

Tipo de licencia de cuenta (por ejemplo, Express, Parte interesada, etc.). Para usar AccountLicenseType, LicensingSource debe definirse como "account" en el cuerpo de la solicitud.

Nombre Tipo Description
advanced

string

earlyAdopter

string

express

string

none

string

professional

string

stakeholder

string

AccountUserStatus

Estado del usuario en la cuenta

Nombre Tipo Description
active

string

El usuario ha iniciado sesión al menos una vez en la cuenta de VSTS.

deleted

string

El administrador de la cuenta de VSTS quita al usuario de la cuenta de VSTS.

disabled

string

El usuario no puede iniciar sesión; usado principalmente por el administrador para quitar temporalmente un usuario debido a la ausencia o a la reasignación de licencias

expired

string

El usuario puede iniciar sesión; se usa principalmente cuando la licencia está en estado expirado y se proporciona un período de gracia.

none

string

pending

string

El administrador de la cuenta de VSTS invita al usuario a unirse a la cuenta de VSTS, pero aún no se ha registrado o iniciado sesión

pendingDisabled

string

El usuario está deshabilitado; si se vuelve a habilitar, seguirán estando en estado Pendiente.

AssignmentSource

Origen de asignación de la licencia (por ejemplo, Grupo, Desconocido, etc.

Nombre Tipo Description
groupRule

string

none

string

unknown

string

GraphGroup

Entidad de grupo de grafos

Nombre Tipo Description
_links

ReferenceLinks

Este campo contiene cero o más vínculos interesantes sobre el tema del grafo. Estos vínculos se pueden invocar para obtener relaciones adicionales o información más detallada sobre este tema del grafo.

description

string

Una frase corta para ayudar a los lectores humanos a eliminar la ambigüedad de los grupos con nombres similares

descriptor

string

El descriptor es la forma principal de hacer referencia al asunto del grafo mientras se ejecuta el sistema. Este campo identificará de forma única el mismo asunto del grafo en cuentas y organizaciones.

displayName

string

Este es el nombre para mostrar no único del asunto del grafo. Para cambiar este campo, debe modificar su valor en el proveedor de origen.

domain

string

Representa el nombre del contenedor de origen de un miembro de grafo. (Para MSA, es "Windows Live ID", para AD el nombre del dominio, para AAD el tenantID del directorio, para los grupos de VSTS scopeId, etc.)

legacyDescriptor

string

[Solo uso interno] El descriptor heredado está aquí en caso de que necesite acceder a IMS de la versión anterior mediante el descriptor de identidad.

mailAddress

string

Dirección de correo electrónico del registro de un miembro de grafo determinado. Puede ser diferente del nombre principal.

origin

string

Tipo de proveedor de origen para el identificador de origen (por ejemplo: AD, AAD, MSA)

originId

string

Identificador único del sistema de origen. Normalmente, un sid, un identificador de objeto o un GUID. Las operaciones de vinculación y desvinculación pueden hacer que este valor cambie para un usuario porque el usuario no está respaldado por otro proveedor y tiene un identificador único diferente en el nuevo proveedor.

principalName

string

Este es el nombre principal de este miembro del grafo del proveedor de origen. El proveedor de origen puede cambiar este campo a lo largo del tiempo y no se garantiza que sea inmutable durante la vida del miembro del grafo mediante VSTS.

subjectKind

string

Este campo identifica el tipo del asunto del grafo (por ejemplo: Grupo, Ámbito, Usuario).

url

string

Esta dirección URL es la ruta completa al recurso de origen de este tema del grafo.

GraphUser

Nombre Tipo Description
_links

ReferenceLinks

Este campo contiene cero o más vínculos interesantes sobre el tema del grafo. Estos vínculos se pueden invocar para obtener relaciones adicionales o información más detallada sobre este tema del grafo.

descriptor

string

El descriptor es la forma principal de hacer referencia al asunto del grafo mientras se ejecuta el sistema. Este campo identificará de forma única el mismo asunto del grafo en cuentas y organizaciones.

directoryAlias

string

Nombre corto, generalmente único para el usuario en el directorio de respaldo. Para los usuarios de AAD, esto corresponde al alias de correo, que suele ser similar a la parte de la dirección de correo del usuario antes del signo @ . Para los usuarios de GitHub, esto corresponde al identificador de usuario de GitHub.

displayName

string

Este es el nombre para mostrar no único del asunto del grafo. Para cambiar este campo, debe modificar su valor en el proveedor de origen.

domain

string

Representa el nombre del contenedor de origen de un miembro de grafo. (Para MSA, es "Windows Live ID", para AD el nombre del dominio, para AAD el tenantID del directorio, para los grupos de VSTS scopeId, etc.)

isDeletedInOrigin

boolean

Cuando es true, el grupo se ha eliminado en el proveedor de identidades.

legacyDescriptor

string

[Solo uso interno] El descriptor heredado está aquí en caso de que necesite acceder a IMS de la versión anterior mediante el descriptor de identidad.

mailAddress

string

Dirección de correo electrónico del registro de un miembro de grafo determinado. Puede ser diferente del nombre principal.

metaType

string

El metatipo del usuario en el origen, como "miembro", "invitado", etc. Consulte UserMetaType para conocer el conjunto de valores posibles.

origin

string

Tipo de proveedor de origen para el identificador de origen (por ejemplo: AD, AAD, MSA)

originId

string

Identificador único del sistema de origen. Normalmente, un sid, un identificador de objeto o un GUID. Las operaciones de vinculación y desvinculación pueden hacer que este valor cambie para un usuario porque el usuario no está respaldado por otro proveedor y tiene un identificador único diferente en el nuevo proveedor.

principalName

string

Este es el nombre principal de este miembro del grafo del proveedor de origen. El proveedor de origen puede cambiar este campo a lo largo del tiempo y no se garantiza que sea inmutable durante la vida del miembro del grafo mediante VSTS.

subjectKind

string

Este campo identifica el tipo del asunto del grafo (por ejemplo: Grupo, Ámbito, Usuario).

url

string

Esta dirección URL es la ruta completa al recurso de origen de este tema del grafo.

Group

Grupo de proyectos (por ejemplo, Colaborador, Lector, etc.)

Nombre Tipo Description
displayName

string

Nombre para mostrar del grupo

groupType

GroupType

Tipo de grupo

GroupEntitlement

Una entidad de grupo con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos

Nombre Tipo Description
group

GraphGroup

Referencia de miembro.

id

string

Identificador único que coincide con el identificador de GraphMember.

lastExecuted

string

[Readonly] La última vez que se ejecutó la regla de licencias de grupo (independientemente de si se realizaron cambios).

licenseRule

AccessLevel

Regla de licencia.

members

UserEntitlement[]

Miembros del grupo. Solo se usa al crear un nuevo grupo.

projectEntitlements

ProjectEntitlement[]

Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto.

status

GroupLicensingRuleStatus

Estado de la regla de grupo.

GroupLicensingRuleStatus

Estado de la regla de grupo.

Nombre Tipo Description
applied

string

Se aplica la regla

applyPending

string

La regla se crea o actualiza, pero la aplicación está pendiente

incompatible

string

La regla de grupo no era compatible

unableToApply

string

La regla no se pudo aplicar inesperadamente y se debe reintentar

GroupType

Tipo de grupo

Nombre Tipo Description
custom

string

projectAdministrator

string

projectContributor

string

projectReader

string

projectStakeholder

string

LicensingSource

Origen de licencias (por ejemplo, cuenta. MSDN, etc.)

Nombre Tipo Description
account

string

auto

string

msdn

string

none

string

profile

string

trial

string

MsdnLicenseType

Tipo de licencia de MSDN (por ejemplo, Visual Studio Professional, Visual Studio Enterprise, etc.). Para usar MsdnLicenseType, LicensingSource debe definirse como "msdn" en el cuerpo de la solicitud.

Nombre Tipo Description
eligible

string

enterprise

string

none

string

platforms

string

premium

string

professional

string

testProfessional

string

ultimate

string

ProjectEntitlement

Relación entre un proyecto y los permisos efectivos del usuario en ese proyecto.

Nombre Tipo Description
assignmentSource

AssignmentSource

Origen de asignación (por ejemplo, Grupo o Desconocido).

group

Group

Grupo de proyectos (por ejemplo, Colaborador, Lector, etc.)

projectPermissionInherited

ProjectPermissionInherited

Si el usuario hereda los permisos de un proyecto a través de una pertenencia a grupos de Azure DevOps o AAD.

projectRef

ProjectRef

Referencia del proyecto

teamRefs

TeamRef[]

Referencia del equipo.

ProjectPermissionInherited

Si el usuario hereda permisos para un proyecto a través de una pertenencia a grupos de Azure DevOps o AAD.

Nombre Tipo Description
inherited

string

notInherited

string

notSet

string

ProjectRef

Referencia a un proyecto

Nombre Tipo Description
id

string

Identificador de proyecto.

name

string

Nombre del proyecto.

Clase que representa una colección de vínculos de referencia de REST.

Nombre Tipo Description
links

object

Vista de solo lectura de los vínculos. Dado que los vínculos de referencia son de solo lectura, solo queremos exponerlos como de solo lectura.

TeamRef

Referencia a un equipo

Nombre Tipo Description
id

string

Identificador de equipo

name

string

Nombre de equipo

UserEntitlement

Una entidad de usuario con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos

Nombre Tipo Description
accessLevel

AccessLevel

Nivel de acceso del miembro indicado por una licencia.

dateCreated

string

[Readonly] Fecha en que se agregó el miembro a la colección.

groupAssignments

GroupEntitlement[]

[Readonly] GroupEntitlements a los que pertenece este miembro.

id

string

Identificador único que coincide con el identificador de la identidad asociada a GraphMember.

lastAccessedDate

string

[Readonly] Fecha en que el miembro accedió por última vez a la colección.

projectEntitlements

ProjectEntitlement[]

Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto.

user

GraphUser

Referencia de usuario.

UserEntitlementOperationResult

Nombre Tipo Description
errors

object[]

Lista de códigos de error emparejados con sus mensajes de error correspondientes.

isSuccess

boolean

Estado correcto de la operación.

result

string

Propiedad de derechos resultante. Para ver implementaciones específicas, consulte también:

userId

string

Identificador del miembro en el que se actúa.

UserEntitlementsPostResponse

Nombre Tipo Description
isSuccess

boolean

True si todas las operaciones se realizaron correctamente.

operationResult

UserEntitlementOperationResult

Resultado de la operación.

userEntitlement

UserEntitlement

Resultado del derecho de usuario después de aplicar las operaciones.