Ana içeriğe geç

Erişim yöntemlerinin alanları ve hata kodları

Bu başvuru ne zaman kullanılır​

Bir entegrasyon yazarken veya bir küme yanıtını yorumlarken tam alan kümesine, parametre türüne, erişim düzeyine ve bir kodun anlamına ihtiyaç duyduğunuzda bu başvuruyu kullanın. Adım adım yordamlar için kullanıcı yönetimi, roller ve yetkiler ve oturum açma ve oturumlar kılavuzlarına; izin modeli için vStack Center erişim modeli sayfasına bakın. Aşağıdaki tablolarda VDC, sanal veri merkezi, yani vdc_id ile kapsamı belirlenen nesne anlamına gelir.

Yöntem özeti​

Kullanıcılar​

YöntemParametrelerErişimDöndürür
user-listyokCluster masterdize id ile anahtarlanmış etkin kullanıcılar eşlemi
user-getidCluster mastertek bir kullanıcının profili
user-createname, fullnameCluster masteroluşturulan hesabın id değeri
user-deleteidCluster masterboş data
user-set-passwordid, passwordkendi parolası: her kullanıcı; başka bir kullanıcının id değeri: Cluster masterboş data
user-unlockidCluster masterkilidi açılan hesabın id değeri
user-params-getyokgeçerli kullanıcıkaydedilmiş JSON ayarlar nesnesi
user-params-setrastgele nesnegeçerli kullanıcıboş data

Kullanıcı rolleri ve atamalar​

YöntemParametrelerErişimDöndürür
user-roleyokgeçerli kullanıcıUID ve authmap
user-rolesuser_id, qkendi rolleri: her kullanıcı; başka bir kullanıcının user_id değeri: Cluster masterVDC → rol eşlemi; q anahtarıyla VDC → rol dizisi eşlemi
user-roles-v2user_idView Own User Roles yetkisi (7102); başka bir kullanıcının user_id değeri: View Any User Roles (7106)rol → kapsam öznitelikleri eşlemi
user-roles-mapyokCluster masteratamaları genişletilmiş tüm kullanıcılar
user-role-assignuser_id, vdc_id, role_idCluster masterboş data
user-role-deassignuser_id, vdc_id, role_idCluster masterboş data

user-role-assign içindeki vdc_id parametresi, kapsam bağlantısı olan bir rol için zorunludur; user-role-deassign içinde ise her zaman zorunludur. user-roles içindeki q bayrağı, anahtarın params içinde bulunup bulunmamasına göre belirlenir; değeri okunmaz. q bayrağı user-roles-v2 için desteklenmez.

Roller ve yetkiler​

YöntemParametrelerErişimDöndürür
role-listyokkanonik API belgelerinde belirtilmemişscope_ids, creator ve zaman damgalarıyla tüm roller
role-getidView Role Details yetkisine (7114) sahip genel bir roleksiksiz privileges ve scope_ids ile rol
role-scopesidView Role Scopes yetkisi (7115)rolün self_referencing = false olan kapsam öznitelikleri
role-createname, privileges, scope_idsCluster masteroluşturulan rolün id değeri
role-setid, name, remove_privileges, add_privileges, scope_idsCluster masterboş data
role-deleteidCluster masterboş data
role-privilege-listyokyedi sabit rolün tümüne verilen View Role Privileges yetkisi (7108)role_id → privilege_id dizisi eşlemi
privilege-listyokyedi sabit rolün tümüne verilen View Privileges yetkisi (7107)kategoriler, kapsamlar ve yöntemlerle yetki kaydı
privilege-categoriesyokyedi sabit rolün tümüne verilen View Privilege Categories yetkisi (7109)category_id → ad eşlemi
privilege-scopesyokyedi sabit rolün tümüne verilen View Privilege Scopes yetkisi (7110)kapsam özniteliği başvurusu

Hesap erişim kısıtlamaları​

YöntemParametrelerErişimDöndürür
user-remote-listuser_idCluster masterizin verilen CIDR'ler dizisi
user-remote-adduser_id, remoteCluster masterboş data
user-remote-deleteuser_id, remoteCluster masterboş data
user-vhost-listuser_idCluster masterizin verilen vhost'lar dizisi
user-vhost-adduser_id, vhostCluster masterboş data
user-vhost-deleteuser_id, vhostCluster masterboş data

Oturum ve güvenlik ayarları​

YöntemParametrelerErişimDöndürür
auth-logoutallkimliği doğrulanmış her kullanıcı, kendi oturumları için{"result": true}
auth-security-settings-getyokyetkili her kullanıcı; alan kümesi role bağlıdırparola ve kilitleme ayarları
auth-security-settings-setsekiz ilke alanı, tümü isteğe bağlıCluster masterboş data

Doğrulamalı parametreler​

YöntemParametreTürZorunluKısıtlama
user-createnamestringevetdüzenli ifade ^[A-Z,a-z,_-]{4,41}$
user-createfullnamestringhayır—
user-deleteidnumberevetrange(min=0); id < 10 yasaktır
user-set-passwordidnumberhayırvarsayılan olarak geçerli kullanıcı
user-set-passwordpasswordstringevetdüzenli ifade ^[\S]+$ ve parola ilkesi
user-role-assignuser_id, role_idnumberevetrange(min=0); user_id < 10 yasaktır
user-remote-addremotestringevetmaskesi 8–32 olan IPv4 CIDR veya öneki 16–128 olan IPv6
user-vhost-addvhoststringevetuzunluk 5–512
role-createnamestringevetuzunluk 1–64, benzersiz
role-createprivilegesarray<integer>evetboş olmamalı; 7111–7113 hariç
role-createscope_idsarray<integer>hayıryalnızca self_referencing = false olan öznitelikler
role-setidintegereveten az 10000
role-deleteidintegereveten az 10000
auth-security-settings-setmax_failed_attempts, failed_attempts_window_minutes, password_min_lengthintegerhayırrange(min=1)
auth-security-settings-setlockout_duration_minutesintegerhayırrange(min=0)
auth-logoutallbooleanhayırvarsayılan olarak false

Kullanıcı profili alanları​

Alan kümesi user-get için ve user-list içindeki her girdi için aynıdır.

AlanTürAçıklama
idintegerkullanıcı tanımlayıcısı
namestringhesap adı
fullnamestring | nulltam ad
createdintegeroluşturma zamanı, epoch
modifiedinteger | nullson değiştirme zamanı, epoch
failed_login_attemptsintegerbaşarısız oturum açma denemesi sayacı
first_failed_atinteger | nullgeçerli sayım penceresinin başlangıcı, epoch; null başarısız deneme olmadığı anlamına gelir
locked_untilinteger | nullhesabın kilitli kalacağı zaman, epoch; null kilitli olmadığı anlamına gelir

Rol alanları​

AlanTürDöndürenAçıklama
idintegerrole-list, role-getrol tanımlayıcısı
namestringrole-list, role-getrol adı
scope_idsinteger[]role-list, role-getrolün kapsam öznitelikleri; boş dizi bağlantı olmadığı anlamına gelir
privilegesinteger[]role-getrolün eksiksiz yetki listesi
creatorinteger | nullrole-list, role-getrolün oluşturucusu; sabit roller için null
created_tsintegerrole-list, role-getoluşturma zamanı, unix zaman damgası
modified_tsinteger | nullrole-list, role-getson değiştirme zamanı; null hiç değiştirilmediği anlamına gelir

Platformun sabit rolleri:

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

Yetki ve kapsam özniteliği alanları​

Bir privilege-list kayıt girdisi:

AlanTürAçıklama
idnumberyetki tanımlayıcısı
namestringyetki adı
category_idnumber | nullkategori; null yetkinin bir kategoriye atanmadığı anlamına gelir
scope_idsnumber[]yetkinin kapsam öznitelikleri; boş dizi genel bir yetki anlamına gelir
methodsstring[]bu yetkiyi gerektiren JSON-RPC yöntemlerinin adları

Bir privilege-scopes ve role-scopes başvuru girdisi:

AlanTürAçıklama
idintegerkapsam özniteliği tanımlayıcısı
namestringvdc_id veya creator gibi öznitelik adı
self_referencingbooleantrue değerin user_id değerinden üretildiği (creator), false ise rol atamalarından geldiği (vdc_id) anlamına gelir

role-scopes yanıtında self_referencing her zaman false değerindedir: kendine başvuran öznitelikler bu yanıta dahil edilmez.

Yetki kategorileri (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.

not

Kanonik API belgeleri yanıt örneğinde yalnızca ilk on kategoriyi listeler, oysa veritabanında on beş kategori vardır: her yeni alan kendi kategorisini ekler. Yöntem eksiksiz başvuruyu döndürür; bu nedenle kümenin gerçek yanıtını kontrol edin.

Kullanıcı rolleri: dört yanıt biçimi​

Yöntemdata biçimiNe zaman yararlıdır
user-roleUID + authmap: vdc_id, vdc_name, role_id, role_name, GI_account içeren nesneler dizisiistemcinin tek bir çağrıda "ben kimim ve neredeyim" bilgisini göstermesi gerektiğinde
q olmadan user-rolesdize vdc_id → role_id eşlemiVDC başına tek bir rolü hızlıca kontrol etmek
q ile user-rolesdize vdc_id → role_id dizisi eşlemikullanıcının bir VDC'de birden fazla rolü olduğunda
user-roles-v2her attr_id için is_global ve ids içeren role_id → scopes eşlemirolün tam olarak nasıl kısıtlandığını belirlemek
user-roles-mapdize kullanıcı id → profil + roles dizisi eşlemikümedeki tüm atamaların envanterini çıkarmak

user-roles-v2 içindeki alanlar:

AlanTürAçıklama
data.<role_id>.scopesobjectanahtarlar, rolün kapsam özniteliklerinin dize attr_id değerleridir
data.<role_id>.scopes.<attr_id>.is_globalbooleantrue atamalarda değer olmadığı ve rolün öznitelikle kısıtlanmadığı anlamına gelir
data.<role_id>.scopes.<attr_id>.idsinteger[]atamalardaki öznitelik değerleri, örneğin VDC listesi

Sabit roller için geçerli role_id değerleri 1–7 aralığındadır. Özel roller aynı yanıtlarda 10000'den başlayan tanımlayıcılarla görünür.

Güvenlik ayarları​

AlanTürauth-security-settings-get içinde kime görünür
max_failed_attemptsintegeryalnızca Cluster master
failed_attempts_window_minutesintegeryalnızca Cluster master
lockout_duration_minutesintegeryalnızca Cluster master
password_min_lengthintegertüm yetkili kullanıcılar
password_require_uppercasebooleantüm yetkili kullanıcılar
password_require_lowercasebooleantüm yetkili kullanıcılar
password_require_digitsbooleantüm yetkili kullanıcılar
password_require_specialbooleantüm yetkili kullanıcılar

Hata kodları​

Kullanıcılar​

KodİletiYöntemler
-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, -22737parola ilkesi gereksinimleriuser-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

Rol ataması​

KodİletiYöntemler
-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

Roller ve yetkiler​

KodİletiYöntemler
-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

-225xx aralığı iki kez kullanılır: user-create ve role-* grubu aynı numaraları kullanır. Örneğin -22505, user-create içinde "geçersiz kullanıcı adı", role-create içinde ise "kendine başvuran kapsam yasak" anlamına gelir; -22516 ise ya bir kullanıcı adının ya da bir rol adının zaten kullanımda olduğunu belirtir. Kodu yalnızca numaraya göre değil, çağrılan yönteme göre yorumlayın.

Hesap erişim kısıtlamaları​

KodİletiYöntemler
-403Access deniedgruptaki altı yöntemin tümü
-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

Kanonik API belgeleri -24812, -24814 çiftini hem user-remote-delete hem de user-vhost-add için listeler. Anlamlarını çağrılan yönteme göre yorumlayın.

Oturum ve güvenlik ayarları​

KodİletiNerede oluşur
-9494No session tokenparams.auth.cookie olmadan yapılan her çağrı
-11000belirteç etkin oturumlar arasında bulunamadı, süresi doldu veya geçersiz kılındıauth-logout ve geçersiz belirteçle yapılan her çağrı
-125Temp token expired or invalidtemp_token kullanılan user-set-password
-126Method not allowed with temp tokenuser-set-password ve auth-security-settings-get dışında temp_token ile yapılan her çağrı
-127Temp token allows changing own password onlytemp_token kullanılan user-set-password
-403Access deniedauth-security-settings-set
-29101Security settings not foundauth-security-settings-get
-29102veritabanı hatasıauth-security-settings-get, auth-security-settings-set

Tanımlayıcı kısıtlamaları​

AralıkAnlamıSonucu
kullanıcılar id < 10yerleşik hesaplarsilinemez (-22610); rol atamaları değiştirilemez (-22320, -22421)
roller id < 10000platformun sabit rollerideğiştirilemez (-22511) veya silinemez (-22521); creator değeri null
roller id ≥ 10000özel rollerrole-create ile oluşturulur; silme işlemi atamalarına da uygulanır
yetkiler 7111–7113rol yönetimiözel bir role atanamaz (-22502, -22513)

Örnek: eksiksiz kullanıcı kurulumu​

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

Son çağrı bir denetimdir: yanıtı, 12 numaralı kullanıcı için role_id: 2 ve gerekli vdc_id değeriyle bir atama göstermelidir.