FixVibe

// docs / baas security / auth0 hardening

Auth0 қауіпсіздік тізімі: 22 тармақ

Auth0 — өте үлкен бетпен қызмет-ретіндегі-идентификация платформасы — қолданбалар, API (ресурстық серверлер), жалгерлер, әрекеттер, ережелер (мұра), қосылымдар және берулер. Олардың кез келгенінің қате конфигурациясы — аутентификация айналуы. Бұл тізім — қолданбалар, кері шақыру / шығу ақ тізімдері, токендер және жаңарту айналымы, арнайы әрекеттер, RBAC, ауытқу анықтау және үздіксіз бақылау бойынша 22-тармақты аудит. Әр тармақты Auth0 бақылау тақтасында 10 минуттан аз уақытта тексеруге болады.

Clerk-те эквивалентті тізім үшін Clerk қауіпсіздік тізімі қараңыз. Идентификация-қабат қате конфигурацияларының неге ИИ-құрал соқыр нүктелері екенінің фондық ақпараты үшін ИИ кодтау құралдары неге қауіпсіздік олқылықтарын қалдырады қараңыз.

Қолданба түрі және беру түрлері

Қолданба түрі және қосылған беру түрлері — Auth0-дегі ең жоғары әсерлі параметрлер. Оларды қате жасау алдыңғы жақтың ешқандай көлемі жабатын шабуыл кластарын ашады.

  1. Тек браузер қолданбалары үшін Application Type = Single Page Application, серверлік-рендерленген қолданбалар үшін Regular Web Application пайдаланыңыз. Қате түр қате беру түрлеріне рұқсат береді — мысалы, SPA берумен Regular Web App PKCE-сіз Implicit ағынын қосады, ол URL фрагменттері арқылы токендерді ағызады.
  2. Әр қолданбада Implicit беру түрін өшіріңіз. Бақылау тақтасы → Application → Advanced Settings → Grant Types → Implicit белгісін алып тастаңыз. Implicit ағыны токендерді URL фрагменттерінде қайтарады, олар браузер тарихы мен аналитикада журналданады. Оның орнына PKCE бар авторизация кодын пайдаланыңыз.
  3. Құжатталған қажеттілік жоқ болса Password беруін өшіріңіз. Resource Owner Password Credentials (ROPC) беруі сізге пайдаланушы құпиясөздерін өзіңіз өңдеуді талап етеді — Auth0 сатып алуыңыздың көп бөлігін жеңеді. Мұра жүйесін біріктірмесеңіз оны өшіріңіз.
  4. Әр жалпыға ортақ клиентте PKCE бар авторизация кодын қосыңыз. Бақылау тақтасы → Advanced Settings → OAuth → JsonWebToken Signature Algorithm = RS256, OIDC Conformant = қосылған. PKCE мобильді қолданбалар мен SPA-лар үшін код ұстауының алдын алу үшін талап етіледі.

Кері шақыру және шығу URL ақ тізімдері

OAuth кері шақыру жолындағы ашық қайта бағыттаулар — токен-ұрлау примитиві. Auth0 ақ тізімі — сіздің жалғыз қорғанысыңыз.

  1. Рұқсат етілген кері шақыру URL-дерін нақты өндіріс кері шақыру жолыңызға орнатыңыз — джокер жоқ. https://yourapp.com/* емес, https://yourapp.com/callback. Джокер кері шақырулары шабуылдаушыларға доменіңіздегі ерікті қосалқы жолдарға токендерді қайта бағыттауға мүмкіндік береді.
  2. Рұқсат етілген шығу URL-дерін шектеулі тізімге орнатыңыз. Сондай ереже: тек нақты URL-дер. Ашық шығу қайта бағыттауы шабуылдаушыларға кейінгі шығу күйіңіз сияқты көрінетін фишинг беттерін жасауға мүмкіндік береді.
  3. Рұқсат етілген веб шығу тегі тек өндіріс шығу тегіне орнатыңыз. Үнсіз аутентификация үшін пайдаланылады (жасырын iframe арқылы токенді жаңарту). Джокер шығу тегі шабуылдаушы беттеріне сіздің жалгеріңізге қарсы үнсіз аутентификацияны орындауға мүмкіндік береді.
  4. API соңғы нүктелері үшін рұқсат етілген CORS шығу тегін орнатыңыз, қолданба үшін емес. Tenant Settings → Advanced → Allowed CORS origins. Әдепкі — бос (шектелген); тек өзіңіз басқаратын нақты шығу тектерін қосыңыз.

Токендер және жаңарту айналымы

Токеннің өмір сүру мерзімі, жаңарту айналымы және қол қою алгоритмі кез келген токен ағуының жарылыс радиусын шешеді.

  1. Refresh Token Rotation қосыңыз. Application → Refresh Token Settings → Rotation. Әр жаңарту жаңа жаңарту токенін шығарып, ескісін жарамсыз етеді. Абсолюттік аяқталу мерзімімен біріктірілгенде, бұл токен ұрлауын сақтайды.
  2. Refresh Token Reuse Interval мәнін 0-ге орнатыңыз (немесе сіздің қайта ойнау толеранттылығыңыз рұқсат еткенше төмен). Қайта пайдалану аралығы токенді бір терезеде екі рет пайдалануға мүмкіндік береді — оны нақты себеп болмаса өшіріңіз.
  3. Абсолюттік жаңарту токенінің аяқталу мерзімін шексіздікке емес, 14-30 күнге орнатыңыз. Application → Refresh Token Expiration → Absolute Expiration. Auth0 әдепкі бойынша тек Әрекетсіздік, бұл әрекетсіз сеанс жылдар бойы сақталуы мүмкін екенін білдіреді.
  4. JWT қолтаңба алгоритмін RS256-ға орнатыңыз. Application → Advanced → OAuth → JsonWebToken Signature Algorithm. RS256 асимметриялық қол қоюды пайдаланады, сондықтан клиент токендерді жалғандай алмайды. Клиентпен сөйлесетін қолданбалар үшін HS256 ешқашан пайдаланбаңыз.
  5. API-ыңыз алатын әр JWT-да aud және iss талаптарын тексеріңіз. Серверде ресми Auth0 SDK пайдаланыңыз — ол оларды автоматты түрде тексереді. Қолмен жазылған JWT талдау әдетте аудиторияны тексеруді өткізіп жібереді, бұл аутентификация айналуы.

Әрекеттер және арнайы код

Auth0 Actions (және мұра Rules) кіруде және басқа өмір циклі оқиғаларында сервер жағында орындалады. Олардың бүкіл сұрау контекстіне қол жеткізуі бар. Мұндағы қауіпсіз емес код — жалгер-ауқымдағы осалдық.

  1. event.user немесе event.transaction мәнін толық нысан ретінде ешқашан журналдамаңыз. Олар электрондық пошта мекенжайларын, IP мекенжайларын және басқа PII қамтиды. Тек өріс деңгейіндегі журналдауды пайдаланыңыз және қажеттіні ғана журналдаңыз.
  2. Кез келген API кілті немесе вебхук URL үшін құпиялар қоймасын пайдаланыңыз. Actions → Edit → Secrets. Әрекет кодында API кілтін жол литералы ретінде ешқашан кіріктірмеңіз — код жалгердегі Action редакторы рұқсаты бар кез келген адамға көрінеді.
  3. Кірістерді user_metadata немесе app_metadata ретінде сақтамас бұрын тексеріңіз. event.body.name мәнін user.user_metadata.display_name ішіне жазатын өзіне-қызмет ететін әрекет — алдыңғы жағыңыз сол өрісті қайтасыз көрсетсе сақталған-XSS векторы.

RBAC және ресурстық серверлер

Auth0 RBAC пайдалансаңыз, рөл-рұқсат картасы — сіздің авторизация қабатыңыз. Оны қате жасасаңыз кез келген аутентификацияланған пайдаланушы әкімші соңғы нүктелеріне жете алады.

  1. Ресурстық серверлерді (API-ларды) ұшып жүргенде емес, Auth0 бақылау тақтасында нақты анықтаңыз. Әр API-да идентификатор (audience), ауқымдар және қол қою параметрлері бар. Тіркелген API-сыз барлық токендер жасырын "Auth0 Management API" үшін шығарылады — қате аудитория.
  2. Әр API бойынша рұқсаттарды конфигурациялаңыз және оларды кодыңызда scope талабымен талап етіңіз. Қолданба логикасында рөл мүшелігін тексермеңіз; қол жеткізу токенінде ауқымдарды тексеріңіз. Ауқымдар — OAuth-туыстық авторизация механизмі.
  3. Қажетті рөл / ауқымы жоқ аутентификацияланған пайдаланушы привилегиялы соңғы нүктелерге жете алмайтынын тексеріңіз. Қалыпты пайдаланушы ретінде кіріп, POST /api/admin/users/delete шақырып көріңіз. Жауап 403 болуы керек.

Ауытқу анықтау және жалгер журналдары

Auth0 жоғары сигналды оқиғаларды шығарады. Тек журнал буферінде отырмай, командаңызға ескерту үшін орнатыңыз.

  1. Шабуылдан қорғауды қосыңыз: Bot Detection, Brute Force, Suspicious IP Throttling. Бақылау тақтасы → Security → Attack Protection. Әрқайсысы тегін деңгейде әдепкі бойынша өшірулі; өндіріс үшін барлығын қосыңыз.
  2. Жалгер журналдарын SIEM-ге немесе қолданба журналдарыңызға ағындаңыз. Бақылау тақтасы → Monitoring → Streams. Auth0 көптеген жоспарларда журналдарды 30 күн сақтайды; ұзақ мерзімді сақтау сіздің жүйеңізге ағын талап етеді.
  3. fcoa (сәтсіз кросс-шығу тегі auth) және fp (сәтсіз кіру) секірулеріне ескерту беріңіз. Қысқа терезедегі бұлардың жарылысы — тіркелгі деректерін толтыру. Кезекшілер арнаңызға бағыттаңыз.

Келесі қадамдар

Өндіріс URL мекенжайыңызға қарсы FixVibe сканерлеуін іске қосыңыз — baas.clerk-auth0 тексеруі JavaScript-те бумалы Auth0 клиент құпияларын және басқа идентификация-провайдер ашылу кластарын белгілейді. Clerk-те эквивалент үшін Clerk қауіпсіздік тізімі қараңыз. BaaS провайдерлерінен шатыр көрінісі үшін BaaS қате конфигурациясының сканері оқыңыз.

// baas бетіңізді сканерлеңіз

Ашық кестені біреу одан бұрын тапқанша табыңыз.

Өндіріс URL мекенжайын енгізіңіз. FixVibe сіздің қолданбаңыз сөйлесетін BaaS провайдерлерін санайды, олардың жалпыға ортақ соңғы нүктелерінің саусақ ізін алады және аутентификацияланбаған клиент не оқи немесе жаза алатынын хабарлайды. Тегін, орнатусыз, картасыз.

  • Тегін деңгей — айына 3 сканерлеу, тіркелу картасы жоқ.
  • Пассивті BaaS саусақ ізін алу — домен иелігін растау қажет емес.
  • Supabase, Firebase, Clerk, Auth0, Appwrite және басқалары.
  • Әр табылған нәтижеде ИИ түзету шақырулары — Cursor / Claude Code ішіне қайта қойыңыз.
Auth0 қауіпсіздік тізімі: 22 тармақ — Docs · FixVibe