𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗠𝗶𝗱𝗱𝗹𝗲𝘄𝗮𝗿𝗲 𝗶𝗻 𝗛𝘆𝗽𝗲𝗿𝗹𝗮𝗻𝗲
ఏ వెబ్ అప్లికేషన్కైనా సెక్యూరిటీ అనేది ఒక ప్రాధాన్యత అంశం. మీ రిసోర్స్లను ఎవరు యాక్సెస్ చేయవచ్చో మీరు నియంత్రించాలి. Hyperlaneలో, మీరు దీనిని middleware ఉపయోగించి చేస్తారు. Middleware ఒక గేట్కీపర్లా పనిచేస్తుంది. ఇది మీ కోడ్కు చేరుకోకముందే రిక్వెస్ట్లను అడ్డుకుంటుంది (intercept చేస్తుంది).
How Hyperlane Middleware Works
Middleware ServerHook traitని ఉపయోగిస్తుంది. దీనికి రెండు ప్రధాన భాగాలు ఉన్నాయి:
• new(): కనెక్షన్ను సెటప్ చేస్తుంది.
• handle(): ప్రతి రిక్వెస్ట్కు రన్ అవుతుంది. ఇక్కడే మీరు సెక్యూరిటీని తనిఖీ చేస్తారు.
handle మెథడ్ ఒక స్టేటస్ను రిటర్న్ చేస్తుంది:
• Status::Continue: రిక్వెస్ట్ సురక్షితంగా ఉంది. దానిని అనుమతించండి.
• Status::Reject: రిక్వెస్ట్ సురక్షితం కాదు. దానిని ఇక్కడే ఆపివేయండి.
Common Authentication Patterns
Header Checks మీరు Authorization header కోసం తనిఖీ చేయవచ్చు. ఒకవేళ header లేకపోతే, 401 Unauthorized స్టేటస్ను రిటర్న్ చేయండి. రిక్వెస్ట్ను వెంటనే తిరస్కరించండి.
Bearer Tokens చాలా APIలు Bearer tokensని ఉపయోగిస్తాయి. మీ middleware ఈ క్రింది విధంగా ఉండాలి: • Header "Bearer "తో మొదలవుతుందో లేదో తనిఖీ చేయండి. • Tokenను ఎక్స్ట్రాక్ట్ చేయండి. • తర్వాత ఉపయోగం కోసం tokenను contextలో స్టోర్ చేయండి.
Attribute Filtering Hyperlane సాధారణ macros ఉపయోగించి రిక్వెస్ట్లను ఫిల్టర్ చేయడానికి అనుమతిస్తుంది. మీరు ఈ క్రింది వాటి ద్వారా యాక్సెస్ను పరిమితం చేయవచ్చు: • HTTP methods (GET లేదా POST వంటివి). • Host names. • నిర్దిష్టమైన paths. • Referer headers.
Best Practices for Secure APIs
• Fail fast: సర్వర్ రిసోర్స్లను ఆదా చేయడానికి చెడు రిక్వెస్ట్లను త్వరగానే తిరస్కరించండి. • Context attributesని ఉపయోగించండి: ధృవీకరించబడిన (validated) tokensను contextలో స్టోర్ చేయండి, తద్వారా మీ యాప్లోని ఇతర భాగాలు వాటిని మళ్ళీ పార్స్ చేయకుండానే చదవగలవు. • CORSని సరిగ్గా హ్యాండిల్ చేయండి: మీరు authentication చేసే ముందే మీ CORS headersని సెట్ చేయండి. దీనివల్ల బ్రౌజర్లు ఎర్రర్ మెసేజ్లను చదవగలవు. • మీ middlewareని లేయర్లుగా విభజించండి: క్రమాన్ని నిర్ణయించడానికి priority numbersని ఉపయోగించండి. మొదట CORSని, ఆ తర్వాత authenticationని రన్ చేయండి. • Streamsని మేనేజ్ చేయండి: ఒక రిక్వెస్ట్ పంపడంలో విఫలమైతే, ఎర్రర్లను నివారించడానికి streamని క్లోజ్ చేయండి.
ఈ సాధనాలను ఉపయోగించడం ద్వారా, మీరు సురక్షితమైన మరియు క్రమబద్ధమైన వ్యవస్థలను నిర్మించగలరు.
Source: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Project Code: https://github.com/hyperlane-dev/hyperlane