// docs / baas security / auth0 hardening
Auth0 təhlükəsizlik yoxlama siyahısı: 22 maddə
Auth0 nəhəng səthə malik identity-as-a-service platformasıdır — tətbiqlər, API-lər (resurs serverləri), kirayəçilər, əməliyyatlar, qaydalar (köhnə), əlaqələr və qrant-lar. Onlardan hər hansı birinin səhv konfiqurasiyası auth bypass-dir. Bu yoxlama siyahısı tətbiqlər, callback / çıxış allowlist-ləri, token-lər və refresh rotasiyası, xüsusi əməliyyatlar, RBAC, anomaliya aşkarlama və davamlı monitorinq üzrə 22 maddəlik audit-dir. Hər maddə 10 dəqiqədən az müddətdə Auth0 Dashboard-da yoxlanıla bilər.
Clerk-də eyni yoxlama siyahısı üçün Clerk təhlükəsizlik yoxlama siyahısı-na baxın. Identifikasiya qatı səhv konfiqurasiyalarının niyə AI alət kor nöqtələri olduğuna dair fon məlumat üçün AI kodlaşdırma alətləri niyə təhlükəsizlik boşluqları buraxır-a baxın.
Tətbiq tipi və qrant tipləri
Tətbiq tipi və aktivləşdirilmiş qrant tipləri Auth0-da ən yüksək təsirli parametrlərdir. Onları səhv etmək heç bir frontend kodun bağlamayacağı hücum siniflərini açır.
- Brauzer-yalnız tətbiqlər üçün Application Type = Single Page Application, server-render olunan tətbiqlər üçün Regular Web Application istifadə edin. Səhv tip səhv qrant tiplərinə icazə verir — məsələn, SPA qrantı aktivləşdirilmiş Regular Web App, URL fraqmentləri ilə token sızdıran PKCE-siz Implicit flow-u aktivləşdirir.
- Hər tətbiqdə Implicit qrant tipini söndürün. Dashboard → Application → Advanced Settings → Grant Types → Implicit-i deaktiv edin. Implicit flow URL fraqmentlərində token qaytarır, orada brauzer tarixçəsində və analitikada qeydə alınır. Onun əvəzinə PKCE ilə Authorization Code istifadə edin.
- Sənədləşdirilmiş bir ehtiyacınız olmadıqca Password qrantını söndürün. Resource Owner Password Credentials (ROPC) qrant istifadəçi parollarını özünüz idarə etməyi tələb edir — bunun üçün Auth0 aldığınızın çoxunu məğlub edir. Köhnə bir sistemi inteqrasiya etmədikcə söndürün.
- Hər ictimai müştəridə PKCE ilə Authorization Code-u aktivləşdirin. Dashboard → Advanced Settings → OAuth → JsonWebToken Signature Algorithm = RS256, OIDC Conformant = enabled. PKCE kod tutulmasının qarşısını almaq üçün mobil tətbiqlər və SPA-lar üçün tələb olunur.
Callback və çıxış URL allowlist-ləri
OAuth callback yolunda açıq yönləndirmələr token oğurluğu primitividir. Auth0-nun allowlist-i sizin yeganə müdafiənizdir.
- Allowed Callback URLs-i tam produksiya callback yolunuza təyin edin — joker yoxdur.
https://yourapp.com/*deyil,https://yourapp.com/callback. Wildcard callback-lər hücumçulara domeninizdəki ixtiyari subpath-lərə token yönləndirməyə imkan verir. - Allowed Logout URLs-i məhdud bir siyahıya təyin edin. Eyni qayda: yalnız açıq URL-lər. Açıq çıxış yönləndirməsi hücumçulara çıxışdan sonrakı vəziyyətinizə bənzəyən fişinq səhifələri yaratmağa imkan verir.
- Allowed Web Origins-i yalnız produksiya origin-inizə təyin edin. Səssiz identifikasiya (gizli iframe vasitəsilə token yenilənməsi) üçün istifadə olunur. Wildcard origin hücumçu səhifələrinə kirayəçiniz üzərində səssiz auth icra etməyə imkan verir.
- API endpoint-ləri üçün Allowed CORS origins-i təyin edin, tətbiq üçün yox. Tenant Settings → Advanced → Allowed CORS origins. Standart boşdur (məhdudlaşdırılıb); yalnız idarə etdiyiniz açıq origin-ləri əlavə edin.
Token-lər və refresh rotasiyası
Token ömrü, refresh rotasiyası və imzalama alqoritmi istənilən token sızıntısının partlayış radiusunu müəyyən edir.
- Refresh Token Rotation-u aktivləşdirin. Application → Refresh Token Settings → Rotation. Hər refresh yeni refresh token verir və köhnəni etibarsız edir. Mütləq bitmə müddəti ilə birləşdirildikdə bu, token oğurluğunu məhdudlaşdırır.
- Refresh Token Reuse Interval-i 0-a (və ya təkrar tolerantlığınızın icazə verdiyi qədər aşağı) təyin edin. Reuse interval, bir token-in eyni pəncərədə iki dəfə istifadə olunmasına imkan verir — saxlamaq üçün xüsusi səbəbiniz olmadıqca onu söndürün.
- Absolute Refresh Token Expiry-ni sonsuzluq yox, 14-30 günə təyin edin. Application → Refresh Token Expiration → Absolute Expiration. Auth0 standart olaraq yalnız Inactivity-yə uyğundur, bu, boş sessiyanın illərlə davam edə biləcəyi deməkdir.
- JWT Signature Algorithm-i RS256-ya təyin edin. Application → Advanced → OAuth → JsonWebToken Signature Algorithm. RS256 asimmetrik imzalama istifadə edir, beləliklə müştəri token-ləri saxtalaşdıra bilməz. Müştəri-yönlü tətbiqlər üçün heç vaxt HS256 istifadə etməyin.
- API-nizin aldığı hər JWT-də
audvəissiddialarını doğrulayın. Server tərəfində rəsmi Auth0 SDK-ni istifadə edin — onları avtomatik doğrulayır. Əldə hazırlanmış JWT parsing-i adətən audience doğrulamasını keçir, bu da auth bypass-dir.
Əməliyyatlar və xüsusi kod
Auth0 Actions (və köhnə Rules) giriş və digər həyat dövrü hadisələrində server tərəfdə işləyir. Onların bütün sorğu konteksinə girişi var. Burada təhlükəli kod, kirayəçi səviyyəsində zəiflikdir.
event.uservə yaevent.transaction-u bütöv obyekt kimi heç vaxt log etməyin. Bunlar e-poçt ünvanları, IP ünvanları və digər PII ehtiva edir. Yalnız sahə-səviyyəli loqlaşdırma istifadə edin və yalnız lazım olanı log edin.- Hər API açarı və ya webhook URL-i üçün secrets store-u istifadə edin. Actions → Edit → Secrets. API açarını heç vaxt əməliyyat kodunda string literal kimi inline etməyin — kod kirayəçidə Action editor girişi olan hər kəsə görünür.
- user_metadata və ya app_metadata kimi saxlamadan əvvəl girişləri doğrulayın.
event.body.name-iuser.user_metadata.display_name-ə yazan self-service əməliyyat, frontend-iniz həmin sahəni escape etmədən render edirsə, saxlanan-XSS vektorudur.
RBAC və resurs serverləri
Auth0 RBAC istifadə edirsinizsə, rol-icazə xəritələməsi sizin avtorizasiya qatınızdır. Onu səhv edin və hər identifikasiya olunmuş istifadəçi admin endpoint-lərinə daxil ola bilər.
- Resurs Serverlərini (API-ləri) Auth0 Dashboard-da açıq şəkildə tərif edin, anlıq deyil. Hər API-nin bir identifikatoru (
audience), scope-ları və imzalama parametrləri var. Qeydiyyatlı API olmadan, bütün token-lər nəzərdə tutulan "Auth0 Management API" üçün verilir — səhv audience. - API başına İcazələri konfiqurasiya edin və kodunuzda
scopeiddiası ilə tələb edin. Tətbiq məntiqinizdə rol üzvlüyünü yoxlamayın; giriş token-ində scope-ları yoxlayın. Scope-lar OAuth-native avtorizasiya mexanizmidir. - Tələb olunan rol / scope-suz identifikasiya olunmuş istifadəçinin imtiyazlı endpoint-lərə daxil olmadığını test edin. Normal istifadəçi kimi daxil olun,
POST /api/admin/users/delete-i çağırmağa cəhd edin. Cavab403olmalıdır.
Anomaliya aşkarlama və kirayəçi logları
Auth0 yüksək siqnallı hadisələri yayır. Onları yalnız log bufferində oturmaq üçün deyil, komandanıza xəbərdarlıq vermək üçün quraşdırın.
- Attack Protection-ı aktivləşdirin: Bot Detection, Brute Force, Suspicious IP Throttling. Dashboard → Security → Attack Protection. Hər biri pulsuz tariflərdə standart olaraq söndürülüb; produksiya üçün hamısını yandırın.
- Kirayəçi loqlarını SIEM-ə və ya tətbiq loqlarınıza yayın. Dashboard → Monitoring → Streams. Auth0 əksər planlarda 30 gün ərzində logları saxlayır; uzunmüddətli saxlama öz sisteminizə bir axın tələb edir.
fcoa(uğursuz cross-origin auth) vəfp(uğursuz giriş) artımları üzrə xəbərdarlıq verin. Qısa pəncərədə bunların artması credential stuffing-dir. Onları on-call kanalınıza yönləndirin.
Sonrakı addımlar
Produksiya URL-inizə qarşı bir FixVibe skanı işlədin — baas.clerk-auth0 yoxlaması JavaScript-də paketlənmiş Auth0 müştəri sirrlərini və digər identifikasiya provayderi ifşa siniflərini işarələyir. Clerk-də ekvivalent üçün Clerk təhlükəsizlik yoxlama siyahısı-na baxın. BaaS provayderləri üzrə ümumi baxış üçün BaaS səhv konfiqurasiya skaneri oxuyun.
