Saltar al contenido principal

Campos y códigos de error de los métodos de acceso

Cuándo usar esta referencia​

Use esta referencia cuando escriba una integración o interprete una respuesta del clúster y necesite el conjunto exacto de campos, el tipo de parámetro, el nivel de acceso y el significado de un código. Para los procedimientos paso a paso, consulte las guías sobre la gestión de usuarios, sobre roles y privilegios y sobre el inicio de sesión y las sesiones; para el modelo de permisos, consulte Modelo de acceso de vStack Center. En las tablas siguientes, VDC significa centro de datos virtual, el objeto cuyo ámbito define vdc_id.

Resumen de métodos​

Usuarios​

MétodoParámetrosAccesoDevuelve
user-listningunoCluster masterun mapa de usuarios activos, con el id como clave de cadena
user-getidCluster masterel perfil de un usuario
user-createname, fullnameCluster masterel id de la cuenta creada
user-deleteidCluster masterdata vacío
user-set-passwordid, passwordcontraseña propia: cualquier usuario; id de otro usuario: Cluster masterdata vacío
user-unlockidCluster masterel id de la cuenta desbloqueada
user-params-getningunousuario actualel objeto JSON de configuración guardado
user-params-setobjeto arbitrariousuario actualdata vacío

Roles y asignaciones de usuarios​

MétodoParámetrosAccesoDevuelve
user-roleningunousuario actualUID y authmap
user-rolesuser_id, qroles propios: cualquier usuario; user_id de otro usuario: Cluster masterun mapa VDC → rol; con la clave q, un mapa VDC → matriz de roles
user-roles-v2user_idel privilegio View Own User Roles (7102); user_id de otro usuario: View Any User Roles (7106)un mapa rol → atributos de ámbito
user-roles-mapningunoCluster mastertodos los usuarios con sus asignaciones desglosadas
user-role-assignuser_id, vdc_id, role_idCluster masterdata vacío
user-role-deassignuser_id, vdc_id, role_idCluster masterdata vacío

El parámetro vdc_id de user-role-assign es obligatorio para un rol vinculado a un ámbito; en user-role-deassign es siempre obligatorio. El indicador q de user-roles se determina por la presencia de la clave en params; su valor no se lee. El indicador q no es compatible con user-roles-v2.

Roles y privilegios​

MétodoParámetrosAccesoDevuelve
role-listningunono se especifica en la documentación canónica de la APItodos los roles con scope_ids, creator y marcas de tiempo
role-getidun rol global con el privilegio View Role Details (7114)el rol con sus privileges y scope_ids completos
role-scopesidel privilegio View Role Scopes (7115)los atributos de ámbito del rol con self_referencing = false
role-createname, privileges, scope_idsCluster masterel id del rol creado
role-setid, name, remove_privileges, add_privileges, scope_idsCluster masterdata vacío
role-deleteidCluster masterdata vacío
role-privilege-listningunoel privilegio View Role Privileges (7108), concedido a los siete roles fijosun mapa role_id → matriz de privilege_id
privilege-listningunoel privilegio View Privileges (7107), concedido a los siete roles fijosel registro de privilegios con categorías, ámbitos y métodos
privilege-categoriesningunoel privilegio View Privilege Categories (7109), concedido a los siete roles fijosun mapa category_id → nombre
privilege-scopesningunoel privilegio View Privilege Scopes (7110), concedido a los siete roles fijosel catálogo de atributos de ámbito

Restricciones de acceso de las cuentas​

MétodoParámetrosAccesoDevuelve
user-remote-listuser_idCluster masteruna matriz de CIDR permitidos
user-remote-adduser_id, remoteCluster masterdata vacío
user-remote-deleteuser_id, remoteCluster masterdata vacío
user-vhost-listuser_idCluster masteruna matriz de vhosts permitidos
user-vhost-adduser_id, vhostCluster masterdata vacío
user-vhost-deleteuser_id, vhostCluster masterdata vacío

Sesión y configuración de seguridad​

MétodoParámetrosAccesoDevuelve
auth-logoutallcualquier usuario autenticado, para sus propias sesiones{"result": true}
auth-security-settings-getningunocualquier usuario autorizado; el conjunto de campos depende del rolconfiguración de contraseñas y de bloqueo
auth-security-settings-setocho campos de la política, todos opcionalesCluster masterdata vacío

Parámetros con validación​

MétodoParámetroTipoObligatorioRestricción
user-createnamestringsíregex ^[A-Z,a-z,_-]{4,41}$
user-createfullnamestringno—
user-deleteidnumbersírange(min=0); id < 10 está prohibido
user-set-passwordidnumbernode forma predeterminada, el usuario actual
user-set-passwordpasswordstringsíregex ^[\S]+$ más la política de contraseñas
user-role-assignuser_id, role_idnumbersírange(min=0); user_id < 10 está prohibido
user-remote-addremotestringsíCIDR IPv4 con máscara de 8–32 o IPv6 con prefijo de 16–128
user-vhost-addvhoststringsílongitud 5–512
role-createnamestringsílongitud 1–64, único
role-createprivilegesarray<integer>síno vacío; excluye 7111–7113
role-createscope_idsarray<integer>nosolo atributos con self_referencing = false
role-setidintegersícomo mínimo 10000
role-deleteidintegersícomo mínimo 10000
auth-security-settings-setmax_failed_attempts, failed_attempts_window_minutes, password_min_lengthintegernorange(min=1)
auth-security-settings-setlockout_duration_minutesintegernorange(min=0)
auth-logoutallbooleannode forma predeterminada, false

Campos del perfil de usuario​

El conjunto de campos es el mismo para user-get y para cada entrada de user-list.

CampoTipoDescripción
idintegeridentificador del usuario
namestringnombre de la cuenta
fullnamestring | nullnombre completo
createdintegerhora de creación, epoch
modifiedinteger | nullhora de la última modificación, epoch
failed_login_attemptsintegercontador de intentos fallidos de inicio de sesión
first_failed_atinteger | nullinicio de la ventana de recuento actual, epoch; null significa que no hay intentos fallidos
locked_untilinteger | nullhora hasta la que la cuenta está bloqueada, epoch; null significa que no está bloqueada

Campos del rol​

CampoTipoLo devuelveDescripción
idintegerrole-list, role-getidentificador del rol
namestringrole-list, role-getnombre del rol
scope_idsinteger[]role-list, role-getlos atributos de ámbito del rol; una matriz vacía significa que no hay vinculación
privilegesinteger[]role-getla lista completa de privilegios del rol
creatorinteger | nullrole-list, role-getel creador del rol; null en los roles fijos
created_tsintegerrole-list, role-gethora de creación, marca de tiempo Unix
modified_tsinteger | nullrole-list, role-gethora de la última modificación; null significa que nunca se ha modificado

Roles fijos de la plataforma:

IDNombre
1Cluster Master
2vDC Admin
3vDC User
4vDC Viewer
5Resource Viewer
6Security Admin
7VM Developer

Campos de privilegios y de atributos de ámbito​

Una entrada del registro privilege-list:

CampoTipoDescripción
idnumberidentificador del privilegio
namestringnombre del privilegio
category_idnumber | nullcategoría; null significa que el privilegio no está asignado a ninguna categoría
scope_idsnumber[]los atributos de ámbito del privilegio; una matriz vacía significa un privilegio global
methodsstring[]nombres de los métodos JSON-RPC que requieren este privilegio

Una entrada del catálogo privilege-scopes y role-scopes:

CampoTipoDescripción
idintegeridentificador del atributo de ámbito
namestringnombre del atributo, como vdc_id o creator
self_referencingbooleantrue significa que el valor se genera a partir de user_id (creator); false significa que procede de las asignaciones de roles (vdc_id)

En la respuesta de role-scopes, self_referencing es siempre false: los atributos autorreferentes no se incluyen en esta respuesta.

Categorías de privilegios (privilege-categories): 1 — vDC, 2 — VM, 3 — Network, 4 — Edge, 5 — Storage, 6 — Node, 7 — Cluster, 8 — User, 9 — Misc, 10 — Auth, 11 — Security, 12 — User Interface, 13 — Unified Storage, 14 — OS Image Library, 15 — Backup.

nota

La documentación canónica de la API enumera solo las diez primeras categorías en su ejemplo de respuesta, mientras que la base de datos contiene quince: cada nuevo dominio añade su propia categoría. El método devuelve el catálogo completo, así que compruebe la respuesta real del clúster.

Roles de usuario: cuatro formatos de respuesta​

MétodoFormato de dataCuándo resulta útil
user-roleUID + authmap: una matriz de objetos con vdc_id, vdc_name, role_id, role_name, GI_accountel cliente necesita mostrar «quién soy y dónde» en una sola llamada
user-roles sin qun mapa de cadena vdc_id → role_idcomprobar rápidamente un único rol por VDC
user-roles con qun mapa de cadena vdc_id → matriz de role_idel usuario tiene más de un rol en un VDC
user-roles-v2un mapa role_id → scopes, que contiene is_global e ids para cada attr_iddeterminar con exactitud cómo está restringido el rol
user-roles-mapun mapa de cadena id de usuario → perfil + matriz roleshacer un inventario de todas las asignaciones del clúster

Campos de user-roles-v2:

CampoTipoDescripción
data.<role_id>.scopesobjectlas claves son los valores de cadena attr_id de los atributos de ámbito del rol
data.<role_id>.scopes.<attr_id>.is_globalbooleantrue significa que las asignaciones no contienen valores y el rol no está restringido por el atributo
data.<role_id>.scopes.<attr_id>.idsinteger[]valores del atributo procedentes de las asignaciones, como una lista de VDC

Los valores válidos de role_id para los roles fijos son 1–7. Los roles personalizados aparecen en las mismas respuestas con identificadores a partir de 10000.

Configuración de seguridad​

CampoTipoQuién lo ve en auth-security-settings-get
max_failed_attemptsintegersolo Cluster master
failed_attempts_window_minutesintegersolo Cluster master
lockout_duration_minutesintegersolo Cluster master
password_min_lengthintegertodos los usuarios autorizados
password_require_uppercasebooleantodos los usuarios autorizados
password_require_lowercasebooleantodos los usuarios autorizados
password_require_digitsbooleantodos los usuarios autorizados
password_require_specialbooleantodos los usuarios autorizados

Códigos de error​

Usuarios​

CódigoMensajeMétodos
-403Access denieduser-list, user-roles-map
-403Access denieduser-roles
-22204Empty param user_iduser-roles, user-roles-v2
-22205Bad id param valueuser-roles, user-roles-v2
-403Access denieduser-create
-22505Bad name param valueuser-create
-22515Failed to add an useruser-create
-22516User with name '<name>' exists alreadyuser-create
-403Access denieduser-delete
-22606Specified user was not founduser-delete
-22610Build-it users removal prohibiteduser-delete
-403Access denieduser-set-password
-22712Bad passworduser-set-password
-22720Specified user was not founduser-set-password
-22730…-22735, -22737requisitos de la política de contraseñasuser-set-password
-403Access denieduser-get
-22803No param iduser-get
-22804Empty param iduser-get
-22805Bad id param valueuser-get
-403Access denieduser-unlock
-22906Specified user was not founduser-unlock
-29030No user with ID==<uid>user-params-get
-34000No params at alluser-params-set
-39030No user with ID==<uid>user-params-set

Asignación de roles​

CódigoMensajeMétodos
-403Access denieduser-role-assign
-22320Build-it users management prohibited / role already assigneduser-role-assign
-403Access denieduser-role-deassign
-22420Specified user has no specified role assignmentuser-role-deassign
-22421Build-it users management prohibiteduser-role-deassign

Roles y privilegios​

CódigoMensajeMétodos
-22500Access denied: only Cluster Master can create rolesrole-create
-22501Privileges list must not be emptyrole-create
-22502Role management privileges cannot be assigned to custom rolesrole-create
-22503Privilege ID not foundrole-create
-22504Scope ID not foundrole-create
-22505Self-referencing scope cannot be assigned to custom rolerole-create
-22506Role with name already existsrole-create
-22510Access denied: only Cluster Master can edit rolesrole-set
-22511Cannot modify a fixed rolerole-set
-22512Role not foundrole-set
-22513Role management privileges cannot be assigned to custom rolesrole-set
-22514Privilege ID not foundrole-set
-22515Scope ID not foundrole-set
-22516Role with name already existsrole-set
-22517Self-referencing scope cannot be assigned to custom rolerole-set
-22520Access denied: only Cluster Master can delete rolesrole-delete
-22521Cannot delete a fixed rolerole-delete
-22522Role not foundrole-delete
-22530Role not foundrole-get
-22540Role not foundrole-scopes

El rango -225xx se usa dos veces: user-create y el grupo role-* usan los mismos números. Por ejemplo, -22505 significa «nombre de usuario no válido» en user-create y «ámbito autorreferente prohibido» en role-create, mientras que -22516 significa que ya está en uso un nombre de usuario o un nombre de rol. Interprete el código según el método llamado y no solo por el número.

Restricciones de acceso de las cuentas​

CódigoMensajeMétodos
-403Access deniedlos seis métodos del grupo
-24504user_id param has been ommiteduser-remote-list
-24505user_id param is NULLuser-remote-list
-24506user_id param value is not numericuser-remote-list
-24604user_id param has been ommiteduser-vhost-list
-24605user_id param is NULLuser-vhost-list
-24606user_id param value is not numericuser-vhost-list
-24712remote param value is not CIDRuser-remote-add
-24713remote param has mask out of range 8..32user-remote-add
-24714User ID==<id> has remote <cidr> alreadyuser-remote-add
-24715Invalid CIDR syntax of remote paramuser-remote-add
-24812remote param value is not CIDR / vhost param has bad lengthuser-remote-delete, user-vhost-add
-24814User ID==<id> has no remote <cidr> / has vhost <vhost> alreadyuser-remote-delete, user-vhost-add
-24815Invalid CIDR syntax of remote paramuser-remote-delete
-24912vhost param has bad lengthuser-vhost-delete
-24914User ID==<id> has no vhost <vhost>user-vhost-delete

La documentación canónica de la API indica el par -24812, -24814 tanto para user-remote-delete como para user-vhost-add. Interprete su significado según el método llamado.

Sesión y configuración de seguridad​

CódigoMensajeDónde se produce
-9494No session tokencualquier llamada sin params.auth.cookie
-11000el token no figura entre las sesiones activas, ha caducado o se ha invalidadoauth-logout y cualquier llamada con un token no válido
-125Temp token expired or invaliduser-set-password con temp_token
-126Method not allowed with temp tokencualquier llamada con temp_token excepto user-set-password y auth-security-settings-get
-127Temp token allows changing own password onlyuser-set-password con temp_token
-403Access deniedauth-security-settings-set
-29101Security settings not foundauth-security-settings-get
-29102error de base de datosauth-security-settings-get, auth-security-settings-set

Restricciones de identificadores​

RangoSignificadoConsecuencia
usuarios id < 10cuentas integradasno se pueden eliminar (-22610); sus asignaciones de roles no se pueden cambiar (-22320, -22421)
roles id < 10000los roles fijos de la plataformano se pueden modificar (-22511) ni eliminar (-22521); creator es null
roles id ≥ 10000roles personalizadosse crean con role-create; su eliminación se propaga en cascada a sus asignaciones
privilegios 7111–7113gestión de rolesno se pueden asignar a un rol personalizado (-22502, -22513)

Ejemplo: configuración completa de un usuario​

{"jsonrpc": "2.0", "method": "user-create", "params": {"name": "ops_duty", "fullname": "Ops Duty"}, "id": "1"}
{"jsonrpc": "2.0", "method": "user-set-password", "params": {"id": 12, "password": "<пароль>"}, "id": "2"}
{"jsonrpc": "2.0", "method": "user-role-assign", "params": {"user_id": 12, "vdc_id": 10, "role_id": 2}, "id": "3"}
{"jsonrpc": "2.0", "method": "user-roles-map", "id": "4"}

La última llamada es una comprobación: su respuesta debe mostrar una asignación para el usuario 12 con role_id: 2 y el vdc_id necesario.