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 |
Access |
Nivel de acceso del miembro indicado por una licencia. |
dateCreated |
string |
[Readonly] Fecha en que se agregó el miembro a la colección. |
groupAssignments |
Group |
[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 |
Project |
Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto. |
user |
Graph |
Referencia de usuario. |
Respuestas
Nombre | Tipo | Description |
---|---|---|
200 OK |
User |
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 |
---|---|
Access |
Licencia asignada a un usuario |
Account |
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. |
Account |
Estado del usuario en la cuenta |
Assignment |
Origen de asignación de la licencia (por ejemplo, Grupo, Desconocido, etc. |
Graph |
Entidad de grupo de grafos |
Graph |
|
Group |
Grupo de proyectos (por ejemplo, Colaborador, Lector, etc.) |
Group |
Una entidad de grupo con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos |
Group |
Estado de la regla de grupo. |
Group |
Tipo de grupo |
Licensing |
Origen de licencias (por ejemplo, cuenta. MSDN, etc.) |
Msdn |
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. |
Project |
Relación entre un proyecto y los permisos efectivos del usuario en ese proyecto. |
Project |
Si el usuario hereda permisos para un proyecto a través de una pertenencia a grupos de Azure DevOps o AAD. |
Project |
Referencia a un proyecto |
Reference |
Clase que representa una colección de vínculos de referencia de REST. |
Team |
Referencia a un equipo |
User |
Una entidad de usuario con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos |
User |
|
User |
AccessLevel
Licencia asignada a un usuario
Nombre | Tipo | Description |
---|---|---|
accountLicenseType |
Account |
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 |
Assignment |
Origen de asignación de la licencia (por ejemplo, Grupo, Desconocido, etc. |
licenseDisplayName |
string |
Nombre para mostrar de la licencia |
licensingSource |
Licensing |
Origen de licencias (por ejemplo, cuenta. MSDN, etc.) |
msdnLicenseType |
Msdn |
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 |
Account |
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 |
Reference |
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 |
Reference |
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 |
Group |
Tipo de grupo |
GroupEntitlement
Una entidad de grupo con propiedades adicionales, incluidas su licencia, extensiones y pertenencia a proyectos
Nombre | Tipo | Description |
---|---|---|
group |
Graph |
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 |
Access |
Regla de licencia. |
members |
User |
Miembros del grupo. Solo se usa al crear un nuevo grupo. |
projectEntitlements |
Project |
Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto. |
status |
Group |
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 |
Assignment |
Origen de asignación (por ejemplo, Grupo o Desconocido). |
group |
Grupo de proyectos (por ejemplo, Colaborador, Lector, etc.) |
|
projectPermissionInherited |
Project |
Si el usuario hereda los permisos de un proyecto a través de una pertenencia a grupos de Azure DevOps o AAD. |
projectRef |
Project |
Referencia del proyecto |
teamRefs |
Team |
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. |
ReferenceLinks
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 |
Access |
Nivel de acceso del miembro indicado por una licencia. |
dateCreated |
string |
[Readonly] Fecha en que se agregó el miembro a la colección. |
groupAssignments |
Group |
[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 |
Project |
Relación entre un proyecto y los permisos efectivos del miembro en ese proyecto. |
user |
Graph |
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 |
User |
Resultado de la operación. |
userEntitlement |
User |
Resultado del derecho de usuario después de aplicar las operaciones. |