Kullanıcı Kimliğine Bürünme
Destek ve hata ayıklama için herhangi bir kullanıcının şifresini sormadan onun adına hareket edin. 10 dakikayla sınırlı, güvenlik kayıtlarında sıkı bir şekilde denetleniyor.
Kimliğe bürünme nedir?
Kullanıcı kimliğine bürünme, bir yöneticinin veya destek mühendisinin, belirli bir kullanıcı gibi davranan kısa ömürlü bir taşıyıcı jeton oluşturmasına olanak tanır. Bu, kimlik bilgileri istemeden müşteri hatalarının yeniden oluşturulmasına, RLS politika izinlerinin kontrol edilmesine veya veri sorunlarının giderilmesine olanak tanır.
Aurabase'de kimliğe bürünme üç temel güvenlik ilkesini garanti eder:
- Kısa ömür: Kimliğe bürünme belirteçleri 1 ile 600 saniye arasında geçerlidir (maksimum 10 dakika, varsayılan 300 saniye). Hiçbir zaman yenileme belirteci içermezler.
- Açık aktör ilişkilendirmesi: Verilen erişim belirteci, oturumu kimin başlattığını belirten standart RFC 8693
acttalebini taşır. - Düzenlemeden önce denetim: Eylem, belirteç oluşturulmadan önce aktör, neden, süre ve hedef kullanıcıyla birlikte
auth_audit_log'ye kaydedilir. Günlük ekleme işlemi başarısız olursa belirteç verilmez.
RFC 8693 kanunu talep yapısı
Bir kimliğe bürünme belirteci, projenin etkin ES256 anahtarıyla imzalanır ve ek bir act (aktör) nesnesiyle standart kullanıcı erişim belirteci biçimine uygundur:
sub: Kimliğine bürünülen kullanıcının kimliği. Postgres RLS (auth.uid()) bu değeri değerlendirir.act.sub: Belirteci oluşturan operatörün kimliği (ör. konsol kullanıcı kimliği veyaservice_role).
Yönetici uç noktası
Kimliğe bürünme, service_role anahtarı veya admin rolüne sahip bir operatör aracılığıyla yönetici yetkilendirmesi gerektirir.
Talep gövdesi
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
reason | dize | İsteğe bağlı | Gerekçe güvenlik kayıtlarına kaydedildi. Ayrıcalıklı hedef hesaplar için gerekli (admin/owner). |
ttl_seconds | sayı | İsteğe bağlı | Saniye cinsinden belirteç ömrü (1 - 600, varsayılan 300). |
allow_privileged | boolean | İsteğe bağlı | Hedef kullanıcının admin veya owner rolü varsa true olarak ayarlanmalıdır. |
Yanıt (200 OK)
TypeScript SDK'sı
authAdmin.impersonate() öğesini, service_role anahtarıyla yapılandırılmış bir Aurabase istemcisiyle kullanın:
Ayrıcalıklı hesaplar ve denetim günlükleri
Ayrıcalıklı hesapları koruma
Yönetim rollerine sahip hedef hesaplar (örneğin role = 'admin', role = 'owner' veya 'admin' içeren app_metadata.roles ) yüksek değerli hedefleri temsil eder. Yanlışlıkla ayrıcalık yükselmesini önlemek için:
- Açıkça
allow_privileged: truekodunu iletmelisiniz. - Boş olmayan bir
reasondizesi sağlanmalıdır. - Her iki kontrol de başarısız olursa, arka uç isteği
403 Forbiddenile reddeder.
Güvenlik denetim günlüğü
Her kimliğe bürünme olayı kiracının auth_audit_log tablosuna eklenir:
- Eylem:
admin_impersonation - Kullanıcı Kimliği: Hedef kullanıcının kimliği
- Meta Veri:
{ "actor": "...", "reason": "...", "ttl_seconds": 300, "privileged": false }içeren JSON nesnesi
Bu iz Studio › Kimlik Doğrulama › Denetim günlükleri'de görülebilir ve veritabanı kanalları aracılığıyla SIEM araçlarına iletilebilir.