بررسی اجمالی
هنگام استفاده از کلیدهای عبور همگام شده ، افراد با یک ارائه دهنده کلید عبور احراز هویت می کنند.
برای ایجاد و احراز هویت با کلیدهای عبور، از WebAuthn API برای وب یا Credential Manager API برای برنامههای Android استفاده خواهید کرد. این APIها ارتباط بین مشتری و ارائهدهنده رمز عبور را مدیریت میکنند.
در حالی که این APIها از یک کلاینت مانند یک صفحه وب یا برنامه اندروید فراخوانی می شوند، باید بقیه عملکردها را روی سرور پیاده سازی کنید تا موارد استفاده احراز هویت خود را تکمیل کنید.
پیاده سازی رمز عبور شامل دو عملکرد است:
- ثبت رمز عبور از WebAuthn API یا Credential Manager API استفاده کنید تا به کاربر اجازه دهید یک رمز عبور ایجاد کند. کلید عمومی مرتبط را روی سرور ذخیره کنید.
- احراز هویت با رمز عبور یک چالش احراز هویت از سرور دریافت کنید و از WebAuthn API یا Credential Manager استفاده کنید تا به کاربر اجازه دهید این چالش را با رمز عبور خود امضا کند. امضای روی سرور را تأیید کنید. اگر امضا معتبر است، کاربر را احراز هویت کنید.
کتابخانه های سمت سرور
در حالی که امکان پیادهسازی عملکرد کلیدهای عبور سمت سرور از ابتدا وجود دارد، توصیه میکنیم به جای آن به یک کتابخانه تکیه کنید.
سروری که از ایجاد رمز عبور و احراز هویت پشتیبانی می کند، سرور FIDO2 یا به اختصار سرور FIDO نامیده می شود. با بسط، ما در اینجا به کتابخانه های سمت سرور اشاره خواهیم کرد که پشتیبانی از کلید عبور را به عنوان کتابخانه های سمت سرور FIDO اجرا می کنند.
چرا از کتابخانه استفاده کنیم؟
استفاده از کتابخانه سمت سرور FIDO چندین مزیت دارد:
- زمان و تجربه توسعه دهنده. مشخصات WebAuthn پیچیده است. کتابخانه های سمت سرور FIDO می توانند API های ساده ای را برای پیاده سازی کلیدهای عبور ارائه دهند که می تواند در زمان و منابع توسعه شما صرفه جویی کند.
- قابلیت نگهداری. مشخصات WebAuthn هنوز در معرض تغییر است. استفاده از آخرین نسخه کتابخانه ای که به طور فعال نگهداری می شود به به روز نگه داشتن پیاده سازی شما کمک می کند.
- امنیت و انطباق. شما می خواهید اجرای رمز عبور شما با مشخصات WebAuthn و الزامات امنیتی آن مطابقت داشته باشد. کتابخانه های سمت سرور FIDO می توانند به شما کمک کنند پیاده سازی خود را ایمن و مطابق با مشخصات نگه دارید. بسته به محصول و صنعت شما، پیاده سازی شما ممکن است مشمول مقرراتی باشد که شما را ملزم به استفاده از استانداردهای امنیتی خاص برای احراز هویت می کند.
در صورت امکان، حمایت مالی از پروژه های منبع باز که محصول شما به آنها متکی است را در نظر بگیرید.
کتابخانه ها
- مخزن Awesome-webauthn GitHub شامل فهرستی از کتابخانه های سمت سرور است که توسط انجمن انتخاب شده است . کتابخانه هایی برای جاوا اسکریپت و تایپ اسکریپت، Go، پایتون و غیره پیدا خواهید کرد.
- مجموعه ای از کتابخانه ها در passkeys.dev موجود است. توسط W3C WebAuthn Adoption Group نگهداری می شود.
- FIDO Alliance به مجموعه ای از سرورهای FIDO2 ارجاع می دهد.