FixVibe

// docs / baas security / auth0 hardening

Auth0 security checklist: 22 আইটেম

Auth0 একটি identity-as-a-service প্ল্যাটফর্ম যার একটি বিশাল পৃষ্ঠ আছে — applications, APIs (resource servers), tenants, actions, rules (legacy), connections, এবং grants। তাদের যেকোনো একটির misconfiguration একটি auth bypass। এই checklist হল applications, callback / logout allowlists, tokens এবং refresh rotation, custom actions, RBAC, anomaly detection, এবং চলমান monitoring জুড়ে একটি 22-আইটেম audit। প্রতিটি আইটেম 10 মিনিটের কম সময়ে Auth0 Dashboard-এ verifiable।

Clerk-এ সমতুল্য checklist-এর জন্য, Clerk security checklist দেখুন। identity-layer misconfigurations কেন AI-tool blind spots তার পটভূমির জন্য, AI কোডিং টুলগুলি কেন security gaps ছেড়ে দেয় দেখুন।

Application type এবং grant types

Application type এবং enabled grant types হল Auth0-এর সবচেয়ে high-impact settings। সেগুলি ভুল করা attack-এর শ্রেণী খোলে যা কোনো পরিমাণ frontend code বন্ধ করতে পারবে না।

  1. browser-only অ্যাপের জন্য Application Type = Single Page Application এবং server-rendered অ্যাপের জন্য Regular Web Application ব্যবহার করুন। ভুল type ভুল grant types-এর অনুমতি দেয় — যেমন SPA grant সহ একটি Regular Web App PKCE-less Implicit flow সক্ষম করে, যা URL fragments-এর মাধ্যমে tokens leak করে।
  2. প্রতিটি application-এ Implicit grant type disable করুন। Dashboard → Application → Advanced Settings → Grant Types → Implicit uncheck করুন। Implicit flow URL fragments-এ tokens return করে, যেখানে সেগুলি browser history এবং analytics-এ log হয়। পরিবর্তে Authorization Code with PKCE ব্যবহার করুন।
  3. Documented need না থাকলে Password grant disable করুন। Resource Owner Password Credentials (ROPC) grant আপনাকে user passwords নিজে handle করতে বাধ্য করে — Auth0 যা কিনেছেন তার অধিকাংশকে পরাজিত করে। একটি legacy system integrate না করলে এটি disable করুন।
  4. প্রতিটি public client-এ Authorization Code with PKCE enable করুন। Dashboard → Advanced Settings → OAuth → JsonWebToken Signature Algorithm = RS256, OIDC Conformant = enabled। code interception প্রতিরোধ করতে mobile apps এবং SPAs-এর জন্য PKCE প্রয়োজন।

Callback এবং logout URL allowlists

OAuth callback path-এ Open redirects একটি token-theft primitive। Auth0-এর allowlist আপনার একমাত্র প্রতিরক্ষা।

  1. Allowed Callback URLs আপনার সঠিক production callback path-এ set করুন — কোনো wildcards নয়। https://yourapp.com/callback, https://yourapp.com/* নয়। Wildcard callbacks আক্রমণকারীদের আপনার domain-এ arbitrary subpaths-এ tokens redirect করতে দেয়।
  2. Allowed Logout URLs একটি সীমিত list-এ set করুন। একই নিয়ম: শুধুমাত্র explicit URLs। একটি open logout redirect আক্রমণকারীদের phishing pages craft করতে দেয় যা আপনার post-logout state-এর মতো দেখায়।
  3. Allowed Web Origins আপনার production origin-এ set করুন। Silent authentication (hidden iframe-এর মাধ্যমে token renewal)-এর জন্য ব্যবহৃত। একটি wildcard origin আক্রমণকারী pages-কে আপনার tenant-এর বিরুদ্ধে silent auth সম্পাদন করতে দেয়।
  4. API endpoints-এর জন্য Allowed CORS origins set করুন, application-এর জন্য নয়। Tenant Settings → Advanced → Allowed CORS origins। Default খালি (restricted); শুধুমাত্র আপনি নিয়ন্ত্রণ করেন এমন explicit origins যোগ করুন।

Tokens এবং refresh rotation

Token lifetime, refresh rotation, এবং signing algorithm যেকোনো token leak-এর blast radius নির্ধারণ করে।

  1. Refresh Token Rotation enable করুন। Application → Refresh Token Settings → Rotation। প্রতিটি refresh একটি নতুন refresh token issue করে এবং পুরানোটি invalidate করে। Absolute expiry-এর সাথে সংযুক্ত, এটি token theft সীমাবদ্ধ করে।
  2. Refresh Token Reuse Interval 0-এ set করুন (বা যতটা কম আপনার replay সহনশীলতা অনুমতি দেয়)। Reuse interval একটি token-কে একই window-এ দুবার ব্যবহার করতে দেয় — যদি না আপনার এটি রাখার একটি নির্দিষ্ট কারণ থাকে এটি বন্ধ করুন।
  3. Absolute Refresh Token Expiry 14-30 দিনে set করুন, অসীম নয়। Application → Refresh Token Expiration → Absolute Expiration। Auth0 default-এ Inactivity-only, যার মানে একটি idle session বছরের পর বছর persist করতে পারে।
  4. JWT Signature Algorithm RS256-এ set করুন। Application → Advanced → OAuth → JsonWebToken Signature Algorithm। RS256 asymmetric signing ব্যবহার করে যাতে client tokens forge করতে না পারে। Client-facing applications-এর জন্য HS256 কখনো ব্যবহার করবেন না।
  5. আপনার API যে প্রতিটি JWT পায় তার aud এবং iss claims যাচাই করুন। Server side-এ official Auth0 SDK ব্যবহার করুন — এটি স্বয়ংক্রিয়ভাবে এগুলি যাচাই করে। Hand-rolled JWT parsing সাধারণত audience validation skip করে, যা একটি auth bypass।

Actions এবং custom code

Auth0 Actions (এবং legacy Rules) login এবং অন্যান্য lifecycle events-এ server-side চলে। সেগুলির সম্পূর্ণ request context-এ access আছে। এখানে insecure code একটি tenant-wide vulnerability।

  1. event.user বা event.transaction কে একটি সম্পূর্ণ object হিসাবে কখনো log করবেন না। এগুলিতে email addresses, IP addresses, এবং অন্যান্য PII থাকে। শুধুমাত্র field-level logging ব্যবহার করুন, এবং শুধুমাত্র যা প্রয়োজন তা log করুন।
  2. যেকোনো API key বা webhook URL-এর জন্য secrets store ব্যবহার করুন। Actions → Edit → Secrets। Action code-এ একটি string literal হিসাবে একটি API key inline করবেন না — code tenant-এ Action editor access সহ যে কারো কাছে দৃশ্যমান।
  3. সেগুলি user_metadata বা app_metadata হিসাবে persist করার আগে inputs validate করুন। একটি self-service action যা event.body.name কে user.user_metadata.display_name-এ লেখে সেটি একটি stored-XSS vector যদি আপনার frontend সেই field escape ছাড়া render করে।

RBAC এবং resource servers

আপনি Auth0 RBAC ব্যবহার করলে, role-to-permission mapping হল আপনার authorization layer। সেটি ভুল করুন এবং যেকোনো authenticated user admin endpoints হিট করতে পারে।

  1. Auth0 Dashboard-এ Resource Servers (APIs) স্পষ্টভাবে define করুন, on the fly নয়। প্রতিটি API-এর একটি identifier (the audience), scopes, এবং signing settings আছে। একটি registered API ছাড়া, সমস্ত tokens implicit "Auth0 Management API"-এর জন্য issued — ভুল audience।
  2. API প্রতি Permissions configure করুন এবং আপনার code-এ scope claim দিয়ে সেগুলি প্রয়োজন। আপনার application logic-এ role membership check করবেন না; access token-এ scopes check করুন। Scopes হল OAuth-native authorization mechanism।
  3. Test করুন যে required role / scope ছাড়া একজন authenticated user privileged endpoints হিট করতে পারে না। Normal user হিসাবে sign in করুন, POST /api/admin/users/delete call করার চেষ্টা করুন। Response অবশ্যই 403 হতে হবে।

Anomaly detection এবং tenant logs

Auth0 high-signal events emit করে। সেগুলিকে আপনার team-কে alert করতে setup করুন, শুধু একটি log buffer-এ বসে থাকতে নয়।

  1. Attack Protection enable করুন: Bot Detection, Brute Force, Suspicious IP Throttling। Dashboard → Security → Attack Protection। প্রতিটি free tiers-এ default-এ off; production-এর জন্য সব on করুন।
  2. Tenant logs একটি SIEM বা আপনার application logs-এ stream করুন। Dashboard → Monitoring → Streams। Auth0 অধিকাংশ plans-এ 30 দিনের জন্য logs ধরে রাখে; দীর্ঘমেয়াদী retention আপনার নিজস্ব system-এ একটি stream প্রয়োজন।
  3. fcoa (failed cross-origin auth) এবং fp (failed login) spikes-এ alert করুন। অল্প সময়ের window-এ এগুলির একটি burst credential stuffing। আপনার on-call channel-এ route করুন।

পরবর্তী পদক্ষেপ

আপনার production URL-এর বিরুদ্ধে একটি FixVibe scan চালান — baas.clerk-auth0 check JavaScript-এ bundled Auth0 client secrets এবং অন্যান্য identity-provider exposure classes flag করে। Clerk-এ সমতুল্যের জন্য, Clerk security checklist দেখুন। BaaS providers জুড়ে umbrella দৃশ্যের জন্য, BaaS misconfiguration scanner পড়ুন।

// আপনার baas পৃষ্ঠ scan করুন

অন্য কেউ আগে খুঁজে পাওয়ার আগে খোলা table খুঁজে বের করুন।

একটি প্রোডাকশন URL দিন। FixVibe আপনার অ্যাপ যে BaaS providers-এর সাথে কথা বলে সেগুলি গণনা করে, তাদের public endpoints-এর fingerprint নেয়, এবং রিপোর্ট করে যে একটি unauthenticated client কী পড়তে বা লিখতে পারে। ফ্রি, কোনো install নেই, কোনো কার্ড নেই।

  • ফ্রি tier — 3 scans / মাস, signup-এর জন্য কার্ড নেই।
  • Passive BaaS fingerprinting — domain verification প্রয়োজন নেই।
  • Supabase, Firebase, Clerk, Auth0, Appwrite, এবং আরও অনেক।
  • প্রতিটি finding-এ AI fix prompts — Cursor / Claude Code-এ paste করুন।
একটি ফ্রি BaaS scan চালান

signup প্রয়োজন নেই

Auth0 security checklist: 22 আইটেম — Docs · FixVibe