𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗠𝗶𝗱𝗱𝗹𝗲𝘄𝗮𝗿𝗲 𝗶𝗻 𝗛𝘆𝗽𝗲𝗿𝗹𝗮𝗻𝗲
ഏതൊരു വെബ് ആപ്ലിക്കേഷനും സുരക്ഷാ മുൻഗണനയാണ്. നിങ്ങളുടെ റിസോഴ്സുകൾ ആർക്കൊക്കെ ഉപയോഗിക്കാം എന്ന് നിങ്ങൾ നിയന്ത്രിക്കണം. Hyperlane-ൽ, നിങ്ങൾ ഇത് middleware ഉപയോഗിച്ചാണ് ചെയ്യുന്നത്. Middleware ഒരു കാവൽക്കാരനെപ്പോലെ (gatekeeper) പ്രവർത്തിക്കുന്നു. നിങ്ങളുടെ കോഡിൽ എത്തുന്നതിന് മുമ്പ് തന്നെ ഇത് റിക്വസ്റ്റുകളെ തടഞ്ഞുനിർത്തുന്നു.
How Hyperlane Middleware Works
Middleware ServerHook trait ഉപയോഗിക്കുന്നു. ഇതിന് രണ്ട് പ്രധാന ഭാഗങ്ങളുണ്ട്:
• new(): കണക്ഷൻ സജ്ജീകരിക്കുന്നു.
• handle(): ഓരോ റിക്വസ്റ്റിനും പ്രവർത്തിക്കുന്നു. സുരക്ഷ പരിശോധിക്കുന്നത് ഇവിടെയാണ്.
handle മെത്തേഡ് ഒരു സ്റ്റാറ്റസ് (status) നൽകുന്നു:
• Status::Continue: റിക്വസ്റ്റ് സുരക്ഷിതമാണ്. അത് മുന്നോട്ട് പോകാൻ അനുവദിക്കുക.
• Status::Reject: റിക്വസ്റ്റ് സുരക്ഷിതമല്ല. ഇവിടെത്തന്നെ തടയുക.
Common Authentication Patterns
Header Checks നിങ്ങൾക്ക് ഒരു Authorization header ഉണ്ടോ എന്ന് പരിശോധിക്കാം. ഹെഡർ ഇല്ലെങ്കിൽ, 401 Unauthorized സ്റ്റാറ്റസ് നൽകുക. ഉടൻ തന്നെ റിക്വസ്റ്റ് നിരസിക്കുക.
Bearer Tokens മിക്ക API-കളും Bearer tokens ആണ് ഉപയോഗിക്കുന്നത്. നിങ്ങളുടെ middleware താഴെ പറയുന്നവ ചെയ്യണം: • ഹെഡർ "Bearer " എന്ന് തുടങ്ങുന്നുണ്ടോ എന്ന് പരിശോധിക്കുക. • ടോക്കൺ വേർതിരിച്ചെടുക്കുക (Extract). • പിന്നീട് ഉപയോഗിക്കുന്നതിനായി ടോക്കൺ
context-ൽ സൂക്ഷിക്കുക.Attribute Filtering ലളിതമായ macros ഉപയോഗിച്ച് റിക്വസ്റ്റുകളെ ഫിൽട്ടർ ചെയ്യാൻ Hyperlane അനുവദിക്കുന്നു. നിങ്ങൾക്ക് താഴെ പറയുന്നവയിലൂടെ ആക്സസ് നിയന്ത്രിക്കാം: • HTTP methods (GET അല്ലെങ്കിൽ POST പോലുള്ളവ). • Host names. • പ്രത്യേക പാത്തുകൾ (Specific paths). • Referer headers.
Best Practices for Secure APIs
• Fail fast: സെർവർ റിസോഴ്സുകൾ ലാഭിക്കുന്നതിനായി തെറ്റായ റിക്വസ്റ്റുകൾ നേരത്തെ തന്നെ നിരസിക്കുക.
• Use context attributes: പരിശോധിച്ചുറപ്പുവരുത്തിയ (validated) ടോക്കണുകൾ context-ൽ സൂക്ഷിക്കുക, അങ്ങനെ നിങ്ങളുടെ ആപ്പിന്റെ മറ്റ് ഭാഗങ്ങൾക്ക് അവ വീണ്ടും പാഴ്സ് ചെയ്യാതെ തന്നെ വായിക്കാൻ കഴിയും.
• Handle CORS correctly: Authentication ചെയ്യുന്നതിന് മുമ്പ് തന്നെ CORS ഹെഡറുകൾ സെറ്റ് ചെയ്യുക. ഇത് ബ്രൗസറുകൾക്ക് എറർ മെസ്സേജുകൾ വായിക്കാൻ സഹായിക്കുന്നു.
• Layer your middleware: ക്രമം തീരുമാനിക്കാൻ priority നമ്പറുകൾ ഉപയോഗിക്കുക. ആദ്യം CORS-ഉം പിന്നീട് authentication-ഉം പ്രവർത്തിപ്പിക്കുക.
• Manage streams: ഒരു റിക്വസ്റ്റ് അയക്കുന്നതിൽ പരാജയപ്പെട്ടാൽ, പിശകുകൾ ഒഴിവാക്കാൻ stream ക്ലോസ് ചെയ്യുക.
ഈ ടൂളുകൾ ഉപയോഗിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് സുരക്ഷിതവും ചിട്ടയായതുമായ സിസ്റ്റങ്ങൾ നിർമ്മിക്കാൻ കഴിയും.
Source: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Project Code: https://github.com/hyperlane-dev/hyperlane