Pular para o conteúdo principal

Campos e códigos de erro dos métodos de acesso

Quando usar esta referência​

Use esta referência ao escrever uma integração ou interpretar uma resposta do cluster quando precisar do conjunto exato de campos, do tipo de parâmetro, do nível de acesso e do significado de um código. Para procedimentos passo a passo, consulte os guias de gerenciamento de usuários, de papéis e privilégios e de login e sessões; para o modelo de permissões, consulte Modelo de acesso do vStack Center. Nas tabelas abaixo, VDC significa data center virtual, o objeto delimitado por vdc_id.

Resumo dos métodos​

Usuários​

MétodoParâmetrosAcessoRetorna
user-listnenhumCluster masterum mapa de usuários ativos, indexado pelo id em string
user-getidCluster mastero perfil de um único usuário
user-createname, fullnameCluster mastero id da conta criada
user-deleteidCluster masterdata vazio
user-set-passwordid, passworda própria senha: qualquer usuário; o id de outro usuário: Cluster masterdata vazio
user-unlockidCluster mastero id da conta desbloqueada
user-params-getnenhumusuário atualo objeto JSON de configurações salvo
user-params-setobjeto arbitráriousuário atualdata vazio

Papéis de usuário e atribuições​

MétodoParâmetrosAcessoRetorna
user-rolenenhumusuário atualUID e authmap
user-rolesuser_id, qos próprios papéis: qualquer usuário; o user_id de outro usuário: Cluster masterum mapa VDC → papel; com a chave q, um mapa VDC → array de papéis
user-roles-v2user_ido privilégio View Own User Roles (7102); o user_id de outro usuário: View Any User Roles (7106)um mapa papel → atributos de escopo
user-roles-mapnenhumCluster mastertodos os usuários com as atribuições expandidas
user-role-assignuser_id, vdc_id, role_idCluster masterdata vazio
user-role-deassignuser_id, vdc_id, role_idCluster masterdata vazio

O parâmetro vdc_id em user-role-assign é obrigatório para um papel com vinculação de escopo; em user-role-deassign, é sempre obrigatório. O flag q em user-roles é determinado pela presença da chave em params; seu valor não é lido. O flag q não é suportado em user-roles-v2.

Papéis e privilégios​

MétodoParâmetrosAcessoRetorna
role-listnenhumnão especificado na documentação canônica da APItodos os papéis com scope_ids, creator e carimbos de data/hora
role-getidum papel global com o privilégio View Role Details (7114)o papel com seus privileges e scope_ids completos
role-scopesido privilégio View Role Scopes (7115)os atributos de escopo do papel com self_referencing = false
role-createname, privileges, scope_idsCluster mastero id do papel criado
role-setid, name, remove_privileges, add_privileges, scope_idsCluster masterdata vazio
role-deleteidCluster masterdata vazio
role-privilege-listnenhumo privilégio View Role Privileges (7108), concedido aos sete papéis fixosum mapa role_id → array de privilege_id
privilege-listnenhumo privilégio View Privileges (7107), concedido aos sete papéis fixoso registro de privilégios com categorias, escopos e métodos
privilege-categoriesnenhumo privilégio View Privilege Categories (7109), concedido aos sete papéis fixosum mapa category_id → nome
privilege-scopesnenhumo privilégio View Privilege Scopes (7110), concedido aos sete papéis fixosa referência de atributos de escopo

Restrições de acesso da conta​

MétodoParâmetrosAcessoRetorna
user-remote-listuser_idCluster masterum array de CIDRs permitidos
user-remote-adduser_id, remoteCluster masterdata vazio
user-remote-deleteuser_id, remoteCluster masterdata vazio
user-vhost-listuser_idCluster masterum array de vhosts permitidos
user-vhost-adduser_id, vhostCluster masterdata vazio
user-vhost-deleteuser_id, vhostCluster masterdata vazio

Sessão e configurações de segurança​

MétodoParâmetrosAcessoRetorna
auth-logoutallqualquer usuário autenticado, para as próprias sessões{"result": true}
auth-security-settings-getnenhumqualquer usuário autorizado; o conjunto de campos depende do papelconfigurações de senha e de bloqueio
auth-security-settings-setoito campos da política, todos opcionaisCluster masterdata vazio

Parâmetros com validação​

MétodoParâmetroTipoObrigatórioRestrição
user-createnamestringsimregex ^[A-Z,a-z,_-]{4,41}$
user-createfullnamestringnão—
user-deleteidnumbersimrange(min=0); id < 10 é proibido
user-set-passwordidnumbernãoo padrão é o usuário atual
user-set-passwordpasswordstringsimregex ^[\S]+$ mais a política de senhas
user-role-assignuser_id, role_idnumbersimrange(min=0); user_id < 10 é proibido
user-remote-addremotestringsimCIDR IPv4 com máscara de 8–32 ou IPv6 com prefixo de 16–128
user-vhost-addvhoststringsimcomprimento de 5–512
role-createnamestringsimcomprimento de 1–64, único
role-createprivilegesarray<integer>simnão vazio; exclui 7111–7113
role-createscope_idsarray<integer>nãosomente atributos com self_referencing = false
role-setidintegersimno mínimo 10000
role-deleteidintegersimno mínimo 10000
auth-security-settings-setmax_failed_attempts, failed_attempts_window_minutes, password_min_lengthintegernãorange(min=1)
auth-security-settings-setlockout_duration_minutesintegernãorange(min=0)
auth-logoutallbooleannãoo padrão é false

Campos do perfil de usuário​

O conjunto de campos é o mesmo para user-get e para cada entrada de user-list.

CampoTipoDescrição
idintegeridentificador do usuário
namestringnome da conta
fullnamestring | nullnome completo
createdintegerhorário de criação, epoch
modifiedinteger | nullhorário da última modificação, epoch
failed_login_attemptsintegercontador de tentativas de login malsucedidas
first_failed_atinteger | nullinício da janela de contagem atual, epoch; null significa que não há tentativas malsucedidas
locked_untilinteger | nullhorário até o qual a conta está bloqueada, epoch; null significa não bloqueada

Campos do papel​

CampoTipoRetornado porDescrição
idintegerrole-list, role-getidentificador do papel
namestringrole-list, role-getnome do papel
scope_idsinteger[]role-list, role-getos atributos de escopo do papel; um array vazio significa sem vinculação
privilegesinteger[]role-geta lista completa de privilégios do papel
creatorinteger | nullrole-list, role-geto criador do papel; null para papéis fixos
created_tsintegerrole-list, role-gethorário de criação, timestamp unix
modified_tsinteger | nullrole-list, role-gethorário da última modificação; null significa nunca modificado

Os papéis fixos da plataforma:

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

Campos de privilégios e de atributos de escopo​

Uma entrada do registro privilege-list:

CampoTipoDescrição
idnumberidentificador do privilégio
namestringnome do privilégio
category_idnumber | nullcategoria; null significa que o privilégio não está atribuído a uma categoria
scope_idsnumber[]os atributos de escopo do privilégio; um array vazio significa um privilégio global
methodsstring[]nomes dos métodos JSON-RPC que exigem este privilégio

Uma entrada da referência privilege-scopes e role-scopes:

CampoTipoDescrição
idintegeridentificador do atributo de escopo
namestringnome do atributo, como vdc_id ou creator
self_referencingbooleantrue significa que o valor é gerado a partir de user_id (creator); false significa que vem das atribuições de papéis (vdc_id)

Na resposta de role-scopes, self_referencing é sempre false: os atributos autorreferenciais não são incluídos nessa resposta.

Categorias de privilégios (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.

observação

A documentação canônica da API lista apenas as dez primeiras categorias no seu exemplo de resposta, enquanto o banco de dados contém quinze: cada novo domínio adiciona sua própria categoria. O método retorna a referência completa, portanto verifique a resposta real do cluster.

Papéis de usuário: quatro formatos de resposta​

MétodoFormato de dataQuando é útil
user-roleUID + authmap: um array de objetos com vdc_id, vdc_name, role_id, role_name, GI_accounto cliente precisa mostrar "quem sou e onde" em uma única chamada
user-roles sem qum mapa vdc_id em string → role_idverificação rápida de um único papel por VDC
user-roles com qum mapa vdc_id em string → array de role_ido usuário tem mais de um papel em um VDC
user-roles-v2um mapa role_id → scopes, contendo is_global e ids para cada attr_iddeterminar exatamente como o papel é restringido
user-roles-mapum mapa id de usuário em string → perfil + array rolesinventariar todas as atribuições do cluster

Campos em user-roles-v2:

CampoTipoDescrição
data.<role_id>.scopesobjectas chaves são os valores attr_id em string dos atributos de escopo do papel
data.<role_id>.scopes.<attr_id>.is_globalbooleantrue significa que não há valores nas atribuições e que o papel não é restringido pelo atributo
data.<role_id>.scopes.<attr_id>.idsinteger[]valores do atributo vindos das atribuições, como uma lista de VDCs

Os valores válidos de role_id para papéis fixos são 1–7. Os papéis personalizados aparecem nas mesmas respostas com identificadores a partir de 10000.

Configurações de segurança​

CampoTipoVisível em auth-security-settings-get para
max_failed_attemptsintegersomente Cluster master
failed_attempts_window_minutesintegersomente Cluster master
lockout_duration_minutesintegersomente Cluster master
password_min_lengthintegertodos os usuários autorizados
password_require_uppercasebooleantodos os usuários autorizados
password_require_lowercasebooleantodos os usuários autorizados
password_require_digitsbooleantodos os usuários autorizados
password_require_specialbooleantodos os usuários autorizados

Códigos de erro​

Usuários​

CódigoMensagemMé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 da política de senhasuser-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

Atribuição de papéis​

CódigoMensagemMétodos
-403Access denieduser-role-assign
-22320Build-it users management prohibited / papel já atribuídouser-role-assign
-403Access denieduser-role-deassign
-22420Specified user has no specified role assignmentuser-role-deassign
-22421Build-it users management prohibiteduser-role-deassign

Papéis e privilégios​

CódigoMensagemMé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

A faixa -225xx é usada duas vezes: user-create e o grupo role-* usam os mesmos números. Por exemplo, -22505 significa "nome de usuário inválido" em user-create e "escopo autorreferencial proibido" em role-create, enquanto -22516 significa que um nome de usuário ou um nome de papel já está em uso. Interprete o código pelo método chamado, e não apenas pelo número.

Restrições de acesso da conta​

CódigoMensagemMétodos
-403Access deniedtodos os seis métodos do 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

A documentação canônica da API lista o par -24812, -24814 tanto para user-remote-delete quanto para user-vhost-add. Interprete o significado pelo método chamado.

Sessão e configurações de segurança​

CódigoMensagemOnde ocorre
-9494No session tokenqualquer chamada sem params.auth.cookie
-11000o token não foi encontrado entre as sessões ativas, expirou ou foi invalidadoauth-logout e qualquer chamada com token inválido
-125Temp token expired or invaliduser-set-password usando temp_token
-126Method not allowed with temp tokenqualquer chamada com temp_token, exceto user-set-password e auth-security-settings-get
-127Temp token allows changing own password onlyuser-set-password usando temp_token
-403Access deniedauth-security-settings-set
-29101Security settings not foundauth-security-settings-get
-29102erro de banco de dadosauth-security-settings-get, auth-security-settings-set

Restrições de identificadores​

FaixaSignificadoConsequência
usuários id < 10contas integradasnão podem ser excluídas (-22610); as atribuições de papéis não podem ser alteradas (-22320, -22421)
papéis id < 10000os papéis fixos da plataformanão podem ser modificados (-22511) nem excluídos (-22521); creator é null
papéis id ≥ 10000papéis personalizadoscriados com role-create; a exclusão se propaga em cascata para suas atribuições
privilégios 7111–7113gerenciamento de papéisnão podem ser atribuídos a um papel personalizado (-22502, -22513)

Exemplo: configuração completa de um usuário​

{"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"}

A última chamada é uma verificação: sua resposta deve mostrar uma atribuição para o usuário 12 com role_id: 2 e o vdc_id necessário.