اصل ماجرا
مقاله با مثالهای ساده توصیف میکند که احراز هویت (شناخت کاربر) و مجوزدهی (تعیین دسترسی) دو مسأله متفاوت در بکاند هستند. با تشبیه به فرودگاه، روند ورود کاربر و محدودیتهای دسترسی به بخشهای مختلف نشان داده شد. در ادامه به نقش این دو در سامانههای هوش مصنوعی و نیاز به JWT برای پیادهسازی امن اشاره شد.
متن کامل ترجمهشده
در مقاله قبلی، ما بررسی کردیم که چگونه Pydantic داده ها را قبل از ورود به برنامه ما تصدیق می کند. به عنوان مثال، اگر یک API ارزش درجه حرارت را انتظار دارد، ارسال متن مانند “Sunny” به جای یک ارزش شماری باید رد شود. همانطور که برنامه ها داده ها را قبل از پردازش آن تصدیق می کنند، آنها همچنین باید کاربران را قبل از ارائه دسترسی تصدیق کنند. نه همه باید بتوانند به هر نقطه پایانی دسترسی داشته باشند یا هر اقدام را انجام دهند. این ما را به دو مفهوم مهم در توسعه پشت پایانه هدایت می کند: - تصدیق - مجازات اگرچه این اصطلاحات اغلب با هم استفاده می شوند، آنها مشکلات مختلفی را حل می کنند. اگر هنوز آن را خوانده اید، پست قبلی را برای حفظ مداوم بودن در سری و بهبود درک شما در FastAPI بررسی کنید: تصور کنید که وارد یک فرودگاه هستید. درخلبانان، کارکنان امنیتی و کارکنان فرودگاه می توانند به مناطق محدودیتی که مسافران معمولی نمی توانند دسترسی داشته باشند دسترسی داشته باشند. این فرآیند مجازات است. تفاوت در مقایسه آنها با یکدیگر روشن تر می شود: هر کس می تواند به نقطه پایانی زیر دسترسی داشته باشد: از fastapi import FastAPI app = FastAPI() @app.get(‘/profile/’) def get_profile(): return {‘message’: ‘Your profile is here’} هیچ مکانیسم برای تصدیق اینکه چه کسی درخواست می کند وجود ندارد. آیا کاربر ثبت نام کرده یا نه، نقطه پایانی به دست می آید. تصدیق فرآیند تصدیق هویت کاربر است. یک فرآیند تصدیق معمولی به این شکل است: ↓ Login Username + Password ↓ Verify User ↓ Generate Token ↓ Access Proteاین یک مثال ساده ای است که فقط برای نشان دادن مفهوم استفاده می شود. در برنامه های واقعی، رمز عبور نباید هرگز در متن ساده ذخیره شود و تصدیق به طور معمول با استفاده از تکیه های JWT، OAuth و یا دیگر مکانیسم های امن اجرا می شود. تصدیق شناسایی یک کاربر را تایید می کند. با این حال، به سادگی بدانید که یک کاربر چه کسی است، مشخص نمی کند که چه کاری می توانند انجام دهند. این جایی است که مجازات در بازی می آید. کاربران مجازات = { “suman”: { “role”: “admin” }, {hulra”: “role”: “student” } } @.appdelete(/student/{id}) delete_student(id: int, current_dictuser: if): current_[ruser”ole” != “messadminage”: {تصدیق و تأیید در برنامه های AI فرض کنید که شما یک پلت فرم یادگیری مبتنی بر هوش مصنوعی را ایجاد می کنید. تصدیق تعیین می کند: - کدام کاربر درخواست را ارسال می کند - آیا کاربر ثبت نام کرده است - آیا تکیه دسترسی معتبر است تصدیق تعیین می کند: - آیا کاربر می تواند به مدل های پیشرفته ی هوش مصنوعی دسترسی داشته باشد - آیا کاربر می تواند مجموعه های اطلاعات آموزشی را اپلیکیشن کند - آیا کاربر می تواند تکیه های تجزیه و تحلیل را مشاهده کند - آیا کاربر می تواند کاربران دیگر را مدیریت کند حتی اگر دو کاربر تأیید شده باشند، ممکن است اجازه های مشابهی داشته باشند. به همین دلیل است که تصدیق و تأیید هر دو در سیستم های تولید AI ضروری هستند. درخواست کاربر │ ▼ تصدیق (آیا شما هستید؟) ▼ مجازات (چه می توانید انجام دهید؟یک کاربر باید اول ثابت کند که آنها چه هستند قبل از اینکه سیستم بتواند تصمیم بگیرند که چه کار کنند. در این مقاله، ما بر درک مفاهیم پشت سر تصدیق و مجوز تمرکز کردیم. JWT (JSON Web Tokens) یکی از معمول ترین روش هایی است که برای تصدیق کاربران در API های مدرن استفاده می شود. در مقاله بعدی، ما از نظریه خارج می شویم و تصدیق مبتنی بر JWT را در FastAPI قدم به قدم اجرا می کنیم، که به ما اجازه می دهد تا تیک های دسترسی ایجاد کنیم، راه های محافظت کنیم و کاربران را به طور امن شناسایی کنیم. نظرات بالا (1) این یک تقسیم عالی از تصدیق و مجوز در FastAPI برای برنامه های AI است - بسیار روشن، عملی و دوستانه برای شروع.یک پیشنهاد برای همکاری: اگر شما پروژه های API مبتنی بر هوش مصنوعی را بررسی می کنید، من خوشحال می شوم که به شما کمک کنم با ساخت یک نمونه از نقطه پایانی محافظت شده از JWT با ویژگی های مبتنی بر LLM، یا حتی ایجاد یک سیستم demo کوچک که FastAPI را با عامل های هوش مصنوعی ترکیب می کند.
چرا مهمه؟
احراز هویت بدون مجوزدهی اجازه دسترسی به همه مسیرها را میدهد؛ مجوزدهی بدون شناخت کاربر نمیتواند تصمیمگیری دقیق بکند. توسعهدهندگان هوش مصنوعی که سرویسهای API ارائه میدهند، باید هر دو را بهدرستی پیادهسازی کنند تا دادههای حساس و مدلهای پرهزینه در دست افراد غیرمجاز نیفتند. این مقاله پایهای واضح برای جلوگیری از اشتباهات مبتدیانه فراهم میکند.
به درد کی میخوره؟
• مهندسان هوش مصنوعی که API میسازند • برنامهنویسان بکاند مبتدی • تیمهای DevOps که امنیت سرویسها را تنظیم میکنند • مدیران فنی که میخواهند ریسکهای دسترسی را کاهش دهند
تو عمل چی کار کنیم؟
پس از مطالعه میتوانید ساختار احراز هویت ساده با JWT را در FastAPI پیادهسازی کنید و مسیرهای حساس را با چک نقش کاربر محافظت کنید. این کار باعث میشود سرویسهای AI شما فقط برای کاربران مجاز در دسترس باشد و خطر نفوذ به دادهها یا مدلها کاهش یابد.
نظر Blue IT News
پیشنهاد میکنیم قبل از افزودن هر قابلیت جدید، ابتدا نقشهای دسترسی را تعریف کنید و سپس JWT را بهعنوان لایهٔ احراز هویت بکار ببرید؛ این ترکیب ساده ولی ایمن، پایهٔ محکمی برای سرویسهای AI مقیاسپذیر فراهم میکند.
این صفحه ترجمه و تفسیر کاملی از گزارش اصلی Dev است که توسط تیم تحریریه بلو آی تی نیوز به فارسی ترجمه و تحلیل شده. برای مشاهده نسخه اصلی، به منبع مراجعه کنید.