Panel hesaplarının rolleri ve proxy listeleri

Hesaplar

Her panel hesabının bir rolü vardır. Editör ve izleyici hesaplarının bir proxy listesi de olabilir. Yönetim paneli, yönetim API'si ve proxy'lerin Panel Oturumu kimlik doğrulaması aynı hesapları kullanır.

Roller

İşlemAdminEditörProxy listesi olan editörİzleyici
Proxy'leri okumabütün proxy'lerbütün proxy'lerlistesindeki proxy'lerbütün proxy'ler veya listesindeki proxy'ler
Proxy eklemeevetevetevet, yeni proxy listesine eklenirhayır
Proxy'yi değiştirme, silme, cache'ini temizlemeevetevetlistesindeki proxy'lerhayır
Portları, sertifikaları, ACME kayıtlarını ve erişim listelerini okumaevetevetevetevet
Portları, sertifikaları, ACME kayıtlarını ve erişim listelerini değiştirme, sertifika indirme, CDN IP aralıklarını yenilemeevetevethayırhayır
Ayarları ve hesapları okuma veya değiştirme, denetim kaydını okumaevethayırhayırhayır
Deploy platformunun uygulamalarını, hedeflerini, deployment'larını ve container log'larını okumaevetevethayırevet, proxy listesi yoksa
Uygulama ekleme, değiştirme veya silme, ortam değişkenlerini okuma veya değiştirme, Git token'ını ayarlama veya silme, webhook secret'ını oluşturma veya silme, uygulamayı deploy etme, deployment'ı geri almaevetevethayırhayır
Agent hedefi ekleme, kayıt token'ını oluşturma, hedefi silmeevethayırhayırhayır
Git sağlayıcı bağlantılarını okuma, bir bağlantının repository'lerini ve branch'lerini listeleme, uygulamanın webhook'unu yeniden kurmaevetevethayırhayır
Git sağlayıcı bağlantısı ekleme, değiştirme, bağlama veya silme, GitHub App oluşturma veya kurmaevethayırhayırhayır

Kurallar

Kullanıcı hesapları, parola hash'leri, geçiş anahtarları (passkey) ve API token'ları birleşik SQLite veritabanında (r3v3rs3.db) güvenli bir şekilde saklanır. Mevcut bir accounts.toml dosyası varsa başlangıçta otomatik olarak SQLite'a aktarılır ve migrasyonu yapılır.

Hesap oluşturma

WebUI'daki "Hesaplar" sayfası hesapları listeler, ekler, değiştirir ve siler. Bu sayfayı yalnız admin açar. TOTP'si açık bir hesap eklediğinizde sayfa TOTP secret'ını bir kez gösterir. Secret'ı o anda doğrulama uygulamanıza ekleyin.

Komut satırında add-user bir hesap ekler. --role verilmezse hesap admin olur:

$ r3v3rs3 add-user alice --role editor
$ r3v3rs3 add-user bob --role viewer --totp

--role şu değerleri kabul eder: admin, editor veya viewer. --password verilmezse komut parolayı sorar. Komut satırından eklenen hesabın proxy listesi olmaz. Proxy listesini "Hesaplar" sayfasında veya yönetim API'si ile ayarlayın.

Yönetim API'si

Bu endpoint'leri yalnız admin hesabı çağırabilir.

Endpointİşlem
GET /api/accountsHesapları rol, proxy listesi ve TOTP durumuyla listeler.
POST /api/accountsBir hesap ekler. TOTP açıksa yanıt totp_secret alanını taşır.
PUT /api/accounts/{username}Rolü, proxy listesini ve isteğe bağlı olarak parolayı değiştirir.
DELETE /api/accounts/{username}Hesabı siler.
$ curl -b cookies.txt -H 'Content-Type: application/json' \
    -d '{"username":"alice","password":"correct horse","role":"editor","proxies":["a1b2c3d"],"totp":false}' \
    http://localhost:46492/api/accounts
$ curl -b cookies.txt -X PUT -H 'Content-Type: application/json' \
    -d '{"role":"viewer"}' \
    http://localhost:46492/api/accounts/alice

proxies alanı olmayan güncelleme proxy listesini kaldırır. password alanı olmayan güncelleme parolayı korur.

YanıtNeden
400 password_too_shortParola 8 karakterden kısadır.
400 invalid_usernameKullanıcı adı kurallara uymuyor.
400 invalid_account_scopeAdmin hesabına proxy listesi verilmiştir.
409 account_existsBu kullanıcı adına sahip bir hesap var.
404 account_not_foundBu kullanıcı adına sahip hesap yok.

GET /api/session, giriş yapmış hesabın kullanıcı adını, rolünü ve proxy listesini döndürür.

WebAuthn ve Passkey

r3v3rs3, parola ve TOTP kimlik doğrulamasının yanında donanım güvenlik anahtarları, Touch ID, Face ID ve biyometrik cihaz anahtarlarını (FIDO2 / WebAuthn, ES256 P-256) destekler.

Passkey Ekleme

  1. WebUI'da oturum açın ve Hesaplar sayfasına gidin.
  2. Hesabınızı düzenleyin veya passkey yönetim bölümündeki Passkey Ekle butonuna tıklayın.
  3. Açıklayıcı bir etiket girin (örneğin "MacBook Touch ID" veya "YubiKey 5C") ve tarayıcının biyometrik/güvenlik anahtarı onayını verin.
  4. r3v3rs3, genel anahtarı kaydeder ve replay saldırılarına karşı monotonik sayaç takibi başlatır.

[!NOTE] WebAuthn güvenli bir kaynak (HTTPS) veya http://localhost gerektirir. Panele bir ters proxy alan adı veya loopback portu üzerinden erişildiğinde, Relying Party ID (rp.id) otomatik olarak tarayıcının mevcut alan adına veya localhost'a eşlenir. Web tarayıcıları doğrudan IP adresleri (örn. 127.0.0.1) üzerinde passkey oluşturulmasına izin vermez.

Passkey ile Giriş Yapma

Giriş ekranında Passkey ile giriş yap butonuna tıklayın. Destekleyen tarayıcılar kullanıcı adı veya parola yazmaya gerek kalmadan yerleşik anahtar (resident key) ile doğrulamayı tamamlar. İsteğe bağlı olarak kullanıcı adınızı yazarak da passkey onayınızı verebilirsiniz.

API Endpoint'leri

EndpointYöntemİşlem
/api/auth/passkey/challengeGETKimlik doğrulama veya kayıt için tek kullanımlık rastgele challenge üretir.
/api/auth/passkey/registerPOSTGiriş yapmış kullanıcı için yeni üretilen passkey kaydını tamamlar.
/api/auth/passkey/{id}DELETECredential ID ile kayıtlı bir passkey'i siler.
/api/auth/loginPOSTİmzalanmış WebAuthn kanıtı ve istemci verisi ile LoginMethod::Passkey üzerinden oturum açar.

API Token'ları

r3v3rs3, otomasyon betikleri, CI/CD süreçleri ve Prometheus izleme araçlarının oturum çerezlerine ihtiyaç duymadan güvenle istek atabilmesi için kalıcı kişisel API token'ları sunar.

Kapsamlar ve Yetkiler

Token Güvenliği

Kullanım Örneği

Token'ı standart HTTP Authorization başlığında Bearer olarak iletin:

$ curl -H "Authorization: Bearer r3v_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
    http://localhost:46492/api/proxies
$ curl -H "Authorization: Bearer r3v_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
    http://localhost:46492/api/metrics

API Endpoint'leri

EndpointYöntemİşlem
/api/auth/tokensGETGiriş yapmış hesabın aktif API token'larını listeler.
/api/auth/tokensPOSTYeni bir API token'ı (name, scope) oluşturur ve ham anahtarı tek seferlik döner.
/api/auth/tokens/{id}DELETEID'si verilen API token'ını iptal eder ve siler.

Denetim kaydı her hesap değişikliğini ve her girişi kaydeder.