میانافزار احراز هویت در Hyperlane
امنیت برای هر اپلیکیشن وب یک اولویت است. شما باید کنترل کنید که چه کسی به منابع شما دسترسی دارد. در Hyperlane، این کار را با استفاده از میانافزار (middleware) انجام میدهید. میانافزار مانند یک نگهبان عمل میکند و درخواستها را پیش از رسیدن به کد شما رهگیری میکند.
میانافزار Hyperlane چگونه کار میکند
میانافزار از ServerHook trait استفاده میکند. این trait دو بخش اصلی دارد:
• new(): اتصال را راهاندازی میکند.
• handle(): برای هر درخواست اجرا میشود. اینجاست که امنیت را بررسی میکنید.
متد handle یک وضعیت (status) را برمیگرداند:
• Status::Continue: درخواست ایمن است. اجازه عبور بدهید.
• Status::Reject: درخواست ناامن است. آن را در اینجا متوقف کنید.
الگوهای رایج احراز هویت
۱. بررسی هدرها (Header Checks)
شما میتوانید هدر Authorization را بررسی کنید. اگر این هدر وجود نداشت، وضعیت 401 Unauthorized را برگردانید. بلافاصله درخواست را رد کنید.
۲. توکنهای Bearer
اکثر APIها از توکنهای Bearer استفاده میکنند. میانافزار شما باید:
• بررسی کند که آیا هدر با "Bearer " شروع میشود یا خیر.
• توکن را استخراج کند.
• توکن را برای استفادههای بعدی در context ذخیره کند.
۳. فیلتر کردن ویژگیها (Attribute Filtering)
Hyperlane به شما اجازه میدهد با استفاده از ماکروهای ساده، درخواستها را فیلتر کنید. شما میتوانید دسترسی را از طریق موارد زیر محدود کنید:
• متدهای HTTP (مانند GET یا POST).
• نامهای میزبان (Host names).
• مسیرهای (paths) خاص.
• هدرهای Referer.
بهترین روشها برای APIهای امن
• سریع شکست بخورید (Fail fast). برای صرفهجویی در منابع سرور، درخواستهای نامعتبر را در همان ابتدا رد کنید.
• از ویژگیهای context استفاده کنید. توکنهای تایید شده را در context ذخیره کنید تا سایر بخشهای اپلیکیشن شما بتوانند بدون تجزیه (parsing) مجدد، آنها را بخوانند.
• CORS را به درستی مدیریت کنید. قبل از انجام احراز هویت، هدرهای CORS خود را تنظیم کنید. این کار تضمین میکند که مرورگرها بتوانند پیامهای خطا را بخوانند.
• میانافزارهای خود را لایهبندی کنید. از اعداد اولویت (priority numbers) برای تعیین ترتیب استفاده کنید. ابتدا CORS را اجرا کنید، سپس احراز هویت را.
• استریمها (streams) را مدیریت کنید. اگر ارسال یک درخواست با شکست مواجه شد، استریم را ببندید تا از بروز خطا جلوگیری شود.
با استفاده از این ابزارها، سیستمهای امن و سازمانیافتهای خواهید ساخت.
Source: https://dev.to/tengxgfyrz67s/authentication-middleware-151c Project Code: https://github.com/hyperlane-dev/hyperlane