Kontekst
- nginx
issuer.bloku/{slug}/admin/yolunuallow 127.0.0.1; deny allilə bağlayır; tətbiqx-admin-token(vahid, bütün kirayəçilər üçün ortaq) gözləyir. Bu, demo portalı (eyni server) üçün düzgündür. - D10/D14 ilə xarici qurumlar (sənədi verən qurum (issuer)Rəqəmsal sənədləri imzalayan və verən qurum: universitet, peşə təşkilatı, dövlət qurumu və ya şirkət.) üçün müştəri yazıldı (
@tamga-network/issuer/client:createOffer,sellTicket,revoke…); istehsal mühitində bu uc nöqtələrə xaricdən təhlükəsiz çatmaq yolu yoxdur. Ortaq administrator açarını qurumlara vermək bir kirayəçinin digərinin rəqəmsal sənədlərini (credential)Sənədi verən qurum tərəfindən imzalanan və şəxsin rəqəmsal cüzdanında saxlanan rəqəmsal sənəd; şəxs yalnız soruşulan sahələri göstərir.ləğv (revocation)Müddəti bitmədən əvvəl rəqəmsal sənədin geri çəkilməsi; sənədi verən qurum bunu yoxlayan tərəflərin yoxladığı status siyahısında qeyd edir. edə bilməsi deməkdir.
Qərar
- K1 — Ayrıca səth:
/{slug}/api/v1/*(offers, tickets, revocations)./{slug}/admin/*daxili istifadədə (127.0.0.1) qalır. - K2 — Kirayəçi API açarı: hər quruma bir və ya daha çox açar;
Authorization: Bearer tmg_<slug>_<rastgele>. Serverdə yalnız heşi (SHA-256) saxlanılır; açar yalnız yaradılarkən bir dəfə göstərilir. Açar birslugvə əhatə dairəsi ilə bağlıdır (offers:write,tickets:write,revocations:write); başqa kirayəçinin yolunda etibarsızdır. - K3 — Rotasiya və ləğv: açarın son etibarlılıq tarixi (tövsiyə 90 gün), iki açar eyni vaxtda etibarlı ola bilər (fasiləsiz rotasiya); ləğv dərhal qüvvəyə minir.
- K4 — Limitlər: hər açar üçün sürət limiti, sorğu ölçüsü limiti; audit qeydində açar identifikatoru (heş prefiksi) və hadisə adı — fərdi məlumatlar və açarın özü yoxdur (PR14/AP3).
- K5 — Pilot seçimi: universitet kimi korporativ inteqrasiyalarda mTLS (qurumun etibar siyahısındakı (trust list)Bir ölkənin kök sertifikatlarının, sənədi verən qurumlarının və qeydiyyatlı yoxlayan tərəflərinin imzalanmış siyahısı. Bu gün Tamga-da etibar bu siyahılara əsaslanır; ortaq jurnal (ledger) sonra gələcək. qeydi ilə uyğun gələn X.509-u) K2-yə əlavə olaraq məcburi edilə bilər.
- K6 — Müştəri:
createIssuerClient({ baseUrl, slug, apiKey });adminTokenyalnız daxili istifadə üçün qalır.
Əsaslandırma / alternativlər
- Ortaq administrator açarını xaricə açmaq: kirayəçilər arası səlahiyyət yoxdur → rədd edilir.
- OAuth 2.0 client credentials: düzgündür, lakin əlavə avtorizasiya serveri tələb edir; ilk qurumlar üçün ağırdır. K2 gələcəkdə OAuth-a köçürülə bilər.
- Yalnız mTLS: güclüdür, lakin kiçik satıcılar üçün sertifikat idarəetməsi maneədir; K5 isteğe bağlı olaraq saxlanılır.
Dəyişməzlər
| # | Qayda |
|---|---|
| HA1 | Xarici giriş yalnız kirayəçiyə bağlı, əhatə dairəli API açarı ilə; ortaq administrator açarı xaricə açılmır. |
| HA2 | API açarı serverdə yalnız heşi ilə saxlanılır; loglarda və audit qeydində açarın özü yer almır. |
| HA3 | Açar yalnız aid olduğu slug yollarında və əhatə dairəsindəki əməliyyatlarda etibarlıdır. |
Status
Accepted — 2026-09-27. DECISIONS: D-API-1. Qeyd: pilot universitet inteqrasiyasında K5 (mTLS) qiymətləndiriləcək.
Tətbiq: apps/issuer (operator repozitoriyası) API marşrutları + açar anbarı, nginx api/v1 bloku, issuer/client apiKey seçimi, qurum təlimatı (docs saytı).