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öntem | Parametreler | Erişim | Döndürür |
|---|
user-list | yok | Cluster master | dize id ile anahtarlanmış etkin kullanıcılar eşlemi |
user-get | id | Cluster master | tek bir kullanıcının profili |
user-create | name, fullname | Cluster master | oluşturulan hesabın id değeri |
user-delete | id | Cluster master | boş data |
user-set-password | id, password | kendi parolası: her kullanıcı; başka bir kullanıcının id değeri: Cluster master | boş data |
user-unlock | id | Cluster master | kilidi açılan hesabın id değeri |
user-params-get | yok | geçerli kullanıcı | kaydedilmiş JSON ayarlar nesnesi |
user-params-set | rastgele nesne | geçerli kullanıcı | boş data |
Kullanıcı rolleri ve atamalar
| Yöntem | Parametreler | Erişim | Döndürür |
|---|
user-role | yok | geçerli kullanıcı | UID ve authmap |
user-roles | user_id, q | kendi rolleri: her kullanıcı; başka bir kullanıcının user_id değeri: Cluster master | VDC → rol eşlemi; q anahtarıyla VDC → rol dizisi eşlemi |
user-roles-v2 | user_id | View 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-map | yok | Cluster master | atamaları genişletilmiş tüm kullanıcılar |
user-role-assign | user_id, vdc_id, role_id | Cluster master | boş data |
user-role-deassign | user_id, vdc_id, role_id | Cluster master | boş 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öntem | Parametreler | Erişim | Döndürür |
|---|
role-list | yok | kanonik API belgelerinde belirtilmemiş | scope_ids, creator ve zaman damgalarıyla tüm roller |
role-get | id | View Role Details yetkisine (7114) sahip genel bir rol | eksiksiz privileges ve scope_ids ile rol |
role-scopes | id | View Role Scopes yetkisi (7115) | rolün self_referencing = false olan kapsam öznitelikleri |
role-create | name, privileges, scope_ids | Cluster master | oluşturulan rolün id değeri |
role-set | id, name, remove_privileges, add_privileges, scope_ids | Cluster master | boş data |
role-delete | id | Cluster master | boş data |
role-privilege-list | yok | yedi sabit rolün tümüne verilen View Role Privileges yetkisi (7108) | role_id → privilege_id dizisi eşlemi |
privilege-list | yok | yedi sabit rolün tümüne verilen View Privileges yetkisi (7107) | kategoriler, kapsamlar ve yöntemlerle yetki kaydı |
privilege-categories | yok | yedi sabit rolün tümüne verilen View Privilege Categories yetkisi (7109) | category_id → ad eşlemi |
privilege-scopes | yok | yedi sabit rolün tümüne verilen View Privilege Scopes yetkisi (7110) | kapsam özniteliği başvurusu |
Hesap erişim kısıtlamaları
| Yöntem | Parametreler | Erişim | Döndürür |
|---|
user-remote-list | user_id | Cluster master | izin verilen CIDR'ler dizisi |
user-remote-add | user_id, remote | Cluster master | boş data |
user-remote-delete | user_id, remote | Cluster master | boş data |
user-vhost-list | user_id | Cluster master | izin verilen vhost'lar dizisi |
user-vhost-add | user_id, vhost | Cluster master | boş data |
user-vhost-delete | user_id, vhost | Cluster master | boş data |
Oturum ve güvenlik ayarları
| Yöntem | Parametreler | Erişim | Döndürür |
|---|
auth-logout | all | kimliği doğrulanmış her kullanıcı, kendi oturumları için | {"result": true} |
auth-security-settings-get | yok | yetkili her kullanıcı; alan kümesi role bağlıdır | parola ve kilitleme ayarları |
auth-security-settings-set | sekiz ilke alanı, tümü isteğe bağlı | Cluster master | boş data |
Doğrulamalı parametreler
| Yöntem | Parametre | Tür | Zorunlu | Kısıtlama |
|---|
user-create | name | string | evet | düzenli ifade ^[A-Z,a-z,_-]{4,41}$ |
user-create | fullname | string | hayır | — |
user-delete | id | number | evet | range(min=0); id < 10 yasaktır |
user-set-password | id | number | hayır | varsayılan olarak geçerli kullanıcı |
user-set-password | password | string | evet | düzenli ifade ^[\S]+$ ve parola ilkesi |
user-role-assign | user_id, role_id | number | evet | range(min=0); user_id < 10 yasaktır |
user-remote-add | remote | string | evet | maskesi 8–32 olan IPv4 CIDR veya öneki 16–128 olan IPv6 |
user-vhost-add | vhost | string | evet | uzunluk 5–512 |
role-create | name | string | evet | uzunluk 1–64, benzersiz |
role-create | privileges | array<integer> | evet | boş olmamalı; 7111–7113 hariç |
role-create | scope_ids | array<integer> | hayır | yalnızca self_referencing = false olan öznitelikler |
role-set | id | integer | evet | en az 10000 |
role-delete | id | integer | evet | en az 10000 |
auth-security-settings-set | max_failed_attempts, failed_attempts_window_minutes, password_min_length | integer | hayır | range(min=1) |
auth-security-settings-set | lockout_duration_minutes | integer | hayır | range(min=0) |
auth-logout | all | boolean | hayır | varsayı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.
| Alan | Tür | Açıklama |
|---|
id | integer | kullanıcı tanımlayıcısı |
name | string | hesap adı |
fullname | string | null | tam ad |
created | integer | oluşturma zamanı, epoch |
modified | integer | null | son değiştirme zamanı, epoch |
failed_login_attempts | integer | başarısız oturum açma denemesi sayacı |
first_failed_at | integer | null | geçerli sayım penceresinin başlangıcı, epoch; null başarısız deneme olmadığı anlamına gelir |
locked_until | integer | null | hesabın kilitli kalacağı zaman, epoch; null kilitli olmadığı anlamına gelir |
Rol alanları
| Alan | Tür | Döndüren | Açıklama |
|---|
id | integer | role-list, role-get | rol tanımlayıcısı |
name | string | role-list, role-get | rol adı |
scope_ids | integer[] | role-list, role-get | rolün kapsam öznitelikleri; boş dizi bağlantı olmadığı anlamına gelir |
privileges | integer[] | role-get | rolün eksiksiz yetki listesi |
creator | integer | null | role-list, role-get | rolün oluşturucusu; sabit roller için null |
created_ts | integer | role-list, role-get | oluşturma zamanı, unix zaman damgası |
modified_ts | integer | null | role-list, role-get | son değiştirme zamanı; null hiç değiştirilmediği anlamına gelir |
Platformun sabit rolleri:
| ID | Ad |
|---|
| 1 | Cluster Master |
| 2 | vDC Admin |
| 3 | vDC User |
| 4 | vDC Viewer |
| 5 | Resource Viewer |
| 6 | Security Admin |
| 7 | VM Developer |
Yetki ve kapsam özniteliği alanları
Bir privilege-list kayıt girdisi:
| Alan | Tür | Açıklama |
|---|
id | number | yetki tanımlayıcısı |
name | string | yetki adı |
category_id | number | null | kategori; null yetkinin bir kategoriye atanmadığı anlamına gelir |
scope_ids | number[] | yetkinin kapsam öznitelikleri; boş dizi genel bir yetki anlamına gelir |
methods | string[] | bu yetkiyi gerektiren JSON-RPC yöntemlerinin adları |
Bir privilege-scopes ve role-scopes başvuru girdisi:
| Alan | Tür | Açıklama |
|---|
id | integer | kapsam özniteliği tanımlayıcısı |
name | string | vdc_id veya creator gibi öznitelik adı |
self_referencing | boolean | true 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.
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.
| Yöntem | data biçimi | Ne zaman yararlıdır |
|---|
user-role | UID + authmap: vdc_id, vdc_name, role_id, role_name, GI_account içeren nesneler dizisi | istemcinin tek bir çağrıda "ben kimim ve neredeyim" bilgisini göstermesi gerektiğinde |
q olmadan user-roles | dize vdc_id → role_id eşlemi | VDC başına tek bir rolü hızlıca kontrol etmek |
q ile user-roles | dize vdc_id → role_id dizisi eşlemi | kullanıcının bir VDC'de birden fazla rolü olduğunda |
user-roles-v2 | her attr_id için is_global ve ids içeren role_id → scopes eşlemi | rolün tam olarak nasıl kısıtlandığını belirlemek |
user-roles-map | dize kullanıcı id → profil + roles dizisi eşlemi | kümedeki tüm atamaların envanterini çıkarmak |
user-roles-v2 içindeki alanlar:
| Alan | Tür | Açıklama |
|---|
data.<role_id>.scopes | object | anahtarlar, rolün kapsam özniteliklerinin dize attr_id değerleridir |
data.<role_id>.scopes.<attr_id>.is_global | boolean | true atamalarda değer olmadığı ve rolün öznitelikle kısıtlanmadığı anlamına gelir |
data.<role_id>.scopes.<attr_id>.ids | integer[] | 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ı
| Alan | Tür | auth-security-settings-get içinde kime görünür |
|---|
max_failed_attempts | integer | yalnızca Cluster master |
failed_attempts_window_minutes | integer | yalnızca Cluster master |
lockout_duration_minutes | integer | yalnızca Cluster master |
password_min_length | integer | tüm yetkili kullanıcılar |
password_require_uppercase | boolean | tüm yetkili kullanıcılar |
password_require_lowercase | boolean | tüm yetkili kullanıcılar |
password_require_digits | boolean | tüm yetkili kullanıcılar |
password_require_special | boolean | tüm yetkili kullanıcılar |
Hata kodları
Kullanıcılar
| Kod | İleti | Yöntemler |
|---|
-403 | Access denied | user-list, user-roles-map |
-403 | Access denied | user-roles |
-22204 | Empty param user_id | user-roles, user-roles-v2 |
-22205 | Bad id param value | user-roles, user-roles-v2 |
-403 | Access denied | user-create |
-22505 | Bad name param value | user-create |
-22515 | Failed to add an user | user-create |
-22516 | User with name '<name>' exists already | user-create |
-403 | Access denied | user-delete |
-22606 | Specified user was not found | user-delete |
-22610 | Build-it users removal prohibited | user-delete |
-403 | Access denied | user-set-password |
-22712 | Bad password | user-set-password |
-22720 | Specified user was not found | user-set-password |
-22730…-22735, -22737 | parola ilkesi gereksinimleri | user-set-password |
-403 | Access denied | user-get |
-22803 | No param id | user-get |
-22804 | Empty param id | user-get |
-22805 | Bad id param value | user-get |
-403 | Access denied | user-unlock |
-22906 | Specified user was not found | user-unlock |
-29030 | No user with ID==<uid> | user-params-get |
-34000 | No params at all | user-params-set |
-39030 | No user with ID==<uid> | user-params-set |
Rol ataması
| Kod | İleti | Yöntemler |
|---|
-403 | Access denied | user-role-assign |
-22320 | Build-it users management prohibited / role already assigned | user-role-assign |
-403 | Access denied | user-role-deassign |
-22420 | Specified user has no specified role assignment | user-role-deassign |
-22421 | Build-it users management prohibited | user-role-deassign |
Roller ve yetkiler
| Kod | İleti | Yöntemler |
|---|
-22500 | Access denied: only Cluster Master can create roles | role-create |
-22501 | Privileges list must not be empty | role-create |
-22502 | Role management privileges cannot be assigned to custom roles | role-create |
-22503 | Privilege ID not found | role-create |
-22504 | Scope ID not found | role-create |
-22505 | Self-referencing scope cannot be assigned to custom role | role-create |
-22506 | Role with name already exists | role-create |
-22510 | Access denied: only Cluster Master can edit roles | role-set |
-22511 | Cannot modify a fixed role | role-set |
-22512 | Role not found | role-set |
-22513 | Role management privileges cannot be assigned to custom roles | role-set |
-22514 | Privilege ID not found | role-set |
-22515 | Scope ID not found | role-set |
-22516 | Role with name already exists | role-set |
-22517 | Self-referencing scope cannot be assigned to custom role | role-set |
-22520 | Access denied: only Cluster Master can delete roles | role-delete |
-22521 | Cannot delete a fixed role | role-delete |
-22522 | Role not found | role-delete |
-22530 | Role not found | role-get |
-22540 | Role not found | role-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 | İleti | Yöntemler |
|---|
-403 | Access denied | gruptaki altı yöntemin tümü |
-24504 | user_id param has been ommited | user-remote-list |
-24505 | user_id param is NULL | user-remote-list |
-24506 | user_id param value is not numeric | user-remote-list |
-24604 | user_id param has been ommited | user-vhost-list |
-24605 | user_id param is NULL | user-vhost-list |
-24606 | user_id param value is not numeric | user-vhost-list |
-24712 | remote param value is not CIDR | user-remote-add |
-24713 | remote param has mask out of range 8..32 | user-remote-add |
-24714 | User ID==<id> has remote <cidr> already | user-remote-add |
-24715 | Invalid CIDR syntax of remote param | user-remote-add |
-24812 | remote param value is not CIDR / vhost param has bad length | user-remote-delete, user-vhost-add |
-24814 | User ID==<id> has no remote <cidr> / has vhost <vhost> already | user-remote-delete, user-vhost-add |
-24815 | Invalid CIDR syntax of remote param | user-remote-delete |
-24912 | vhost param has bad length | user-vhost-delete |
-24914 | User 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 | İleti | Nerede oluşur |
|---|
-9494 | No session token | params.auth.cookie olmadan yapılan her çağrı |
-11000 | belirteç 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ı |
-125 | Temp token expired or invalid | temp_token kullanılan user-set-password |
-126 | Method not allowed with temp token | user-set-password ve auth-security-settings-get dışında temp_token ile yapılan her çağrı |
-127 | Temp token allows changing own password only | temp_token kullanılan user-set-password |
-403 | Access denied | auth-security-settings-set |
-29101 | Security settings not found | auth-security-settings-get |
-29102 | veritabanı hatası | auth-security-settings-get, auth-security-settings-set |
Tanımlayıcı kısıtlamaları
| Aralık | Anlamı | Sonucu |
|---|
kullanıcılar id < 10 | yerleşik hesaplar | silinemez (-22610); rol atamaları değiştirilemez (-22320, -22421) |
roller id < 10000 | platformun sabit rolleri | değiştirilemez (-22511) veya silinemez (-22521); creator değeri null |
roller id ≥ 10000 | özel roller | role-create ile oluşturulur; silme işlemi atamalarına da uygulanır |
yetkiler 7111–7113 | rol 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.