شاید تا همین چند سال پیش بسیاری از توسعهدهندگان، سرور یا پایگاه داده را به عنوان مهمترین بخش زیرساخت نرمافزار خویش در نظر میگرفتند. اما حالا دیگر شرایط تغییر کرده، زیرا در سازمانهای بزرگ، کاربران اول از همه باید از سیستم احراز هویت عبور کنند تا به اطلاعات یک سرویس دسترسی داشته باشند. این موضوع نقش مهمی در امنیت آن نرمافزار و همینطور تجربه کاربری مطلوب دارد. به همین دلیل، طراحی درست معماری سرویس احراز هویت اهمیت بسیار زیادی دارد. در این مقاله همراه ما باشید تا این موضوع را با هم بررسی کنیم که یک سامانه احراز هویت آنلاین برای سازمانهای بزرگ باید چه ویژگیهایی داشته باشد و همچنین در طراحی معماری سامانه احراز هویت آنلاین چه نکاتی باید در نظر گرفته شود.
چرا معماری سرویسهای احراز هویت در سازمانهای بزرگ مهم است؟
یک اپراتور تلفن همراه، یک بانک، سامانه سلامت و حتی یک فروشگاه اینترنتی، روزانه چندین هزار درخواست ورود ممکن است دریافت کند. مدیریت این حجم از درخواستها با یک سیستم ساده احراز هویت امکانپذیر نیست و به یک معماری قدرتمند، مقیاسپذیر و همواره در دسترس نیاز دارد.
بیشتر بخوانید: احراز هویت الکترونیک چیست و چه کاربردهایی دارد؟
از طرف دیگر، احراز هویت در اکثر سیستمهای امروزی تنها با وارد کردن نام کاربری و رمز عبور امکانپذیر نیست و به روشهای چند لایه مانند رمز یکبار مصرف، اثر انگشت، تشخیص چهره و… احتیاج دارند. علاوه بر این در سازمانهای بزرگ، سرویس احراز هویت فقط مسئول ورود کاربران نیست، بلکه در کنار احراز هویت، باید با بخشهای مختلف سیستم ارتباط داشته باشند و مطمئن باشند هر کاربر فقط به اطلاعات و امکاناتی که برای او تعریف شده دسترسی دارد.
بنابراین معماری اینگونه سرویسها باید طوری طراحی شود که علاوه بر تامین امنیت، امکان توسعه را نیز در آینده هم داشته باشد. به طوری که با افزایش روزافزون تعداد کاربران یا اضافه شدن قابلیتهای جدید، همچنان عملکرد مناسبی داشته باشد و به خدمترسانی خودشان ادامه دهد. در واقع یک معماری خوب برای احراز هویت علاوه بر تامین امنیت اطلاعات کاربران، زیرساخت قابل اطمینانی را فراهم میکند تا کسبوکارها بتوانند با خیال راحت رشد کنند و خدمات جدیدی را توسعه دهند.
اجزای اصلی یک سرویس احراز هویت
سرویس احراز هویت آنلاین از منظر کاربر شاید تنها یک صفحه ورود ساده به نظر برسد، اما در واقعیت این سامانه از چند بخش مختلف تشکیل شده تا در کنار هم، فرایند ورود امن به سیستم، سریع و قابل اعتماد باشد. در ادامه همراه ما باشید تا با این بخشها آشنا شویم.

- مدیریت هویت کاربران (Identity Management): اولین بخش یک سرویس احراز هویت، مدیریت هویت کاربران است. این قسمت وظیفه نگهداری اطلاعات هویتی کاربران مانند نام، شماره موبایل، ایمیل، شناسه کاربری و … را برعهده دارد. علاوه بر ذخیره اطلاعات، این بخش کارهایی مانند ایجاد حساب کاربری، بهروزرسانی اطلاعات، غیرفعال کردن حساب یا حذف کاربران هم در همین بخش انجام میشود. در سازمانهای بزرگ این اطلاعات به صورت متمرکز نگهداری میشود تا همه سرویسها از یک مرجع مشترک برای شناسایی کاربران استفاده کنند.
- موتور احراز هویت (Authentication Engine): بعد از اینکه کاربر اطلاعات خود را وارد سیستم کرد، نوبت به عملکرد موتور احراز هویت میرسد. این بخش وظیفه بررسی اعتبار اطلاعات کاربران را دارد و تمام درخواستهای ورود از این بخش رد میشود. بنابراین این قسمت، علاوه بر امنیت بالا باید بتواند تعداد زیادی درخواست را بدون افت عملکرد مدیریت کند.
- مدیریت نشست و توکن (Session & Token Management): قطعا کاربران برای هر بار ورود به یک سیستم لازم نیست رمز عبورشان را وارد کنند. در واقع بعد از اینکه هویت کاربر تایید شد، سیستم باید راهی داشته باشد تا در درخواستهای بعدی دوباره از کاربر رمز عبور نخواهد. عملکرد مدیریت نشست یا توکن در اینجا خودش را نشان میدهد. در سیستمهای جدید معمولا به جای نگهداری نشست (Session) روی سرور، از توکنهایی مانند JWT استفاده میشود که مسئول صدور، بررسی تمدید و در صورت نیاز باطل کردن این توکنهاست تا تنها کاربران مجاز بتوانند به سرویسها دسترسی داشته باشند.
- مدیریت مجوزها (Authorization): احراز هویت فقط این موضوع را مشخص میکند که کاربر چه کسی است. اما اینکه کاربر بعد از ورود به چه بخشهایی دسترسی داشته باشد وظیفه بخش مدیریت مجوزهاست. برای مثال ممکن است دو نفر وارد یک سامانه شوند، اما فقط یک نفر اجازه مشاهده اطلاعات را داشته باشد و دیگری برای مشاهده باید اشتراک تهیه کند. در واقع این بخش مشخص میکند هر کاربر دقیقا چه کارهایی میتواند انجام دهد.
- ثبت رویدادها و پایش (Logging & Monitoring): آخرین بخش اجزای اصلی یک سرویس احراز هویت، ثبت رویدادها و پایش مداوم سرویس است. این بخش اتفاقات مهمی مانند ورودهای موفق، تلاشهای ناموفق، تغییر رمز عبور یا فعالیتهای مشکوک را ثبت میکند. این بخش علاوه بر بررسی مشکلات امنیتی، به تیم فنی نیز کمک میکند تا عملکرد سرویس را زیر نظر داشته باشند و در صورت بروز اختلال، در مدت زمان کوتاهی مشکل را پیدا و سپس برطرف کنند.
فناوریهای مورد استفاده در معماری سرویسهای احراز هویت
حالا که با اجزای اصلی یک سرویس احراز هویت آشنا شدیم، بد نیست نگاهی به پشت صحنه این سرویسها نیز بیندازیم. در واقع میتوان گفت هر کدام از این فناوریها به کار رفته در توسعه این سرویسها، یک وظیفه مشخص دارند. بعضی امنیت بیشتری را فراهم میکنند. بعضیها باعث میشوند ارتباط بین سرویسها سادهتر شود و بعضی هم به توسعه راحتتر سیستم کمک میکنند.
- مدیریت دسترسی بین سرویسها با OAuth 2.0: یکی از پرکاربردترین استانداردها در معماریهای امروزی OAuth 2.0 است. برخلاف چیزی که بسیاری از افراد تصور میکنند، این فناوری برای احراز هویت نیست، بلکه برای مدیریت دسترسی نیز استفاده میشود. به عنوان مثال، در نظر بگیرید که میخواهید با حساب گوگل خودتان وارد یک سایت شوید. در این حالت، سایت هیچگاه متوجه رمز عبور گوگل شما نمیشود و تنها اجازه دسترسی محدودی را میگیرد. این دقیقا همان کاری است که OAuth 2.0 انجام میدهد و باعث میشود ارتباط بین سرورها امنتر باشد.
- JWT، جایگزینی برای Session: بعد از اینکه کاربر به سیستم وارد شد، دیگر لازم نیست که برای هر درخواست دوباره نام کاربری و رمز عبور را وارد کند. معمولا به این شکل است که یک توکن در اختیار کاربر قرار میگیرد تا هویت و سطح دسترسی او مشخص شود. یکی از رایجترین این توکنها JWT است که باعث میشود مدیریت کاربران در سیستمهای بزرگ راحتتر باشد و سرویسها با سرعت بالاتری با هم ارتباط برقرار کنند.
- REST API، زبان مشترک بین سرویسها: سازمانهای بزرگ معمولا چند پلتفرم دارند و احراز هویت علاوه بر وب سایت، در اپلیکیشن موبایل و سایر سرویسها نیز کار میکند. این ارتباط معمولا از طریق REST API انجام میشود که زبان مشترک سرویسهاست و باعث میشود سرویسهای مختلف بدون وابستگی مستقیم با هم اطلاعات را رد و بدل کنند. در طراحی API احراز هویت باید علاوه بر سادگی و سرعت، امنیت، کنترل دسترسی و امکان توسعه در آینده هم در نظر گرفته شود.
- مدیریت متمرکز کاربران با LDAP و Active Directory: از آنجا که در سازمانهای مختلف تعداد کاربران زیاد است، نگهداری اطلاعات آنها نیز در چند سیستم مختلف کار دشواری است. بنابراین سرویسهایی مانند LDAP و Active Directory این مشکل را حل میکنند و اطلاعات کاربران و سطح دسترسی آنها را نیز به صورت متمرکز نگهداری میکنند تا همه سیستمهای سازمان از یک مرجع واحد استفاده کنند.
- SAML، ورود یکباره به چند سامانه: فناوری SAML یکی از استانداردهای رایج برای ورود یکپارچه یا همان (SSO) Single Sign-On محسوب میشود که به کاربران کمک میکند تا بدون وارد کردن دوباره رمز عبور، به چند سامانه مختلف دسترسی داشته باشند.
- احراز هویت چند عاملی (MFA): امروزه دیگر فقط داشتن رمز عبوری که حاوی چند عدد باشد، برای محافظت از حساب کاربری کافی نیست. به همین دلیل، بسیاری از سازمانها از احراز هویت چند عاملی یا MFA استفاده میکنند. در این روش، علاوه بر رمز عبور، کاربر باید از عاملهای دیگر مانند رمز یکبار مصرف، اپلیکیشن تولید کد، اثر انگشت یا تشخیص چهره نیز استفاده کند تا احتمال دسترسی غیرمجاز تا حد بسیار زیادی کاهش پیدا کند.
- فناوریهای بیومتریک: روشهایی مانند استفاده از اثر انگشت، تشخیص چهره یا اسکن عنبیه چشم، نمونههای دیگری از احراز هویت بیومتریک محسوب میشوند. این فناوری علاوه بر اینکه فرایند ورود به سیستم را آسانتر میکند، در بسیاری از کسبوکارها مانند بانکها و سامانههای مالی نیز، امنیت بیشتری را فراهم میکند.
- هوش مصنوعی و یادگیری ماشین: در چند سال اخیر، هوش مصنوعی نیز وارد حوزه احراز هویت شده است. این فناوری علاوه بر بررسی صحت ورود، رفتار کاربران را نیز تحلیل میکند. به عنوان مثال اگر کاربری همیشه از تهران وارد سیستم میشده اما ناگهان از کشوری دیگر یا با دستگاهی ناشناس وارد حسابش شود، سیستم میتواند این رفتار مشکوک را تشخیص دهد و درخواست تایید هویت دوباره را ارسال کند.
- معماری میکروسرویس Microservices: در سازمانهای بزرگ، سرویسهای احراز هویت معمولا به چند بخش مستقل تقسیم میشوند. برای مثال مدیریت کاربران، صدور توکن، مجوزدهی یا ثبت رویدادها هر کدام میتوانند به صورت یک سرویس جداگانه توسعه داده شوند. این نوع معماری علاوه بر اینکه باعث میشود، توسعه، نگهداری و مقیاسپذیری سیستم راحتتر باشد، تاثیر تغییرات هر بخش روی بخش دیگر را نیز کمتر میکند.
- ابزارهای مانیتورینگ و پایش: هیچ سرویس احراز هویتی بدون نظارت دائمی قابل اعتماد نیست. به همین دلیل، سازمانها از ابزارهای مانیتورینگ استفاده میکند. این ابزارها به صورت مداوم وضعیت سرویس، سرعت پاسخدهی، تعداد خطاها و میزان دسترسیپذیری را بررسی میکنند و باعث میشوند مشکلات احتمالی قبل از اینکه روی کاربران تاثیر بگذارد، شناسایی و سپس برطرف شوند. علاوه بر این، در بسیاری از سازمانها شاخصهایی مثل SLA، SLO وSLI هم برای اندازهگیری کیفیت سرویس، میزان دسترسپذیری و عملکرد سیستم تعریف میشوند تا تیمهای فنی بتوانند وضعیت سرویس را بهصورت دقیق ارزیابی کنند.
ملاحظات امنیتی در طراحی معماری سرویسهای احراز هویت
معماری فنی احراز هویت یکی از مهمترین بخشهای زیرساخت نرمافزاری هر سازمان محسوب میشود. به همین دلیل، امنیت این سرویس تنها به یک ابزار یا فناوری خاص محدود نمیشود. بنابراین باید از همان مرحله طراحی معماری مشخص شود که اطلاعات کاربران چطور باید محافظت و کنترل شود و همچنین سیستم در برابر تهدیدهای مختلف چه واکنشی باید داشته باشد؟ در ادامه مهمترین نکاتی را که باید در طراحی یک معماری امن احراز هویت در نظر گرفته بررسی کنیم.
- محافظت از اطلاعات هویتی کاربران: سرویسهای احراز هویت با اطلاعات حساسی مانند اطلاعات شخصی، رمز عبور، توکنها و گاهی اطلاعات بیومتریک کاربران سروکار دارند. به همین دلیل، معماری سیستم باید طوری طراحی شود که این اطلاعات تنها در جاهایی که لازم است، استفاده شود و دسترسی به آنها محدود باشد. مواردی مانند رمزنگاری اطلاعات، کنترل دسترسی و نگهداری درست دادهها باعث میشود احتمال نشست یا سوءاستفاده از اطلاعات کاربران کاهش پیدا میکند.
- مدیریت درست دسترسیها (Authorization): احراز هویت فقط مشخص میکند کاربر چه کسی است، اما بعد از ورود نیز باید مشخص شود که این کاربر چه کاری میتواند انجام دهد. برای مثال، ممکن است دو نفر وارد سامانه شوند، اما یک نفر فقط امکان مشاهده اطلاعات و دیگری اجازه ویرایش را داشته باشد. بنابراین یک معماری امن باید طوری طراحی شود که هر کاربر فقط به اطلاعات و سرویسهایی دسترسی داشته باشد که واقعا به آنها نیاز دارد.
- مقابله با حملات مربوط به ورود کاربران: سرویسهای احراز هویت به دلیل اطلاعات مهمی که دارند، معمولا یکی از هدفهای اصلی حملات سایبری محسوب میشوند. حملاتی مانند حدس زدن رمز عبور، استفاده از رمزهای لو رفته کاربران یا سرقت توکنهای دسترسی میتواند امنیت سیستم را تهدید کند. به همین دلیل، معماری سرویس احراز هویت سازمانهای بزرگ باید از همان ابتدا برای مقابله با این تهدیدها آماده باشند. استفاده از روشهایی مانند محدود کردن تعداد درخواستهای ورود، احراز هویت چند عاملی (MFA) و شناسایی رفتارهای مشکوک میتواند امنیت سیستم را چند برابر کند.
- ثبت رویدادها و پایش امنیتی: یک سرویس احراز هویت باید بتواند اتفاقات مانند ورودهای ناموفق، تغییر رمز عبور، تغییر سطح دسترسی و فعالیتهای غیرعادی را ثبت و بررسی کند تا اگر مشکلی امنیتی اتفاق افتاد، امکان بررسی سریع وجود داشته باشد.
- حفظ دسترسپذیری سریع: یک سرویس احراز هویت علاوه بر اینکه باید از نفوذ جلوگیری کند، باید همواره در دسترس باشد. به همین دلیل معماری باید برای شرایطی مانند افزایش ناگهانی تعداد درخواستها، خرابی سرویسها یا حملاتی مانند DDoS آماده باشد تا سیستم بتواند بدون اختلال به کار خود ادامه دهد.
چالشهای رایج در پیادهسازی سرویسهای احراز هویت آنلاین
طراحی یک سرویس احراز هویت شاید روی کاغذ ساده به نظر برسد، اما وقتی قرار باشد این سرویس در یک سازمان بزرگ و با میلیونها کاربر اجرا شود، چالشهای متعددی پیش میآید. در واقع سازمانها باید بین امنیت، سرعت، تجربه کاربری و هزینه تعادل برقرار کنند و این موضوع همیشه هم ساده نیست. در ادامه همراه ما باشید تا مهمترین چالشهای پیادهسازی سرویسهای احراز هویت آنلاین را بررسی کنیم.
- مدیریت حجم بالای درخواستها: یکی از بزرگترین چالشهای سرویسهای احراز هویت، مدیریت تعداد زیادی از درخواستهای ورود کاربران است. اگر معماری سیستم از ابتدا برای این حجم طراحی نشده باشد، ممکن است سرعت سرویس کم شود و یا حتی از دسترس خارج شود. به همین دلیل، معماری باید از همان ابتدا امکان مقیاسپذیری و توزیع بار بین چندین سرور را داشته باشد.
- ایجاد تعادل بین امنیت و تجربه کاربری: هر چقدر فرایند ورود امنتر باشد، معمولا پیچیدهتر هم میشود. از طرف دیگر، اگر ورود ساده هم باشد، احتمال سوءاستفاده افزایش پیدا میکند. در واقع پیدا کردن تعادل بین امنیت و راحتی کاربر یکی از مهمترین چالشهای طراحی سرویس احراز است.
- یکپارچهسازی با سیستمهای مختلف: در سازمانهای بزرگ، سرویس احراز هویت باید با اپلیکیشنها، وبسایتها و سیستمهای مختلف ارتباط برقرار کند. اما مسئله وقتی ایجاد میشود که بعضی از این سیستمها قدیمی و برخی دیگر با فناوریهای جدید ساخته شدند و هماهنگ کردن همه این سرویسها با یک سیستم احراز هویت واحد، یکی از چالشهای مهم در زمان پیادهسازی است.
- نگهداری و توسعه سرویس: کار سرویس احراز هویت بعد از راهاندازی تمام نمیشود. با افزایش تعداد کاربران، تغییر نیازهای کسبوکار و ظهور تهدیدهای جدید، این سرویس باید دائما بهروزرسانی، تست و مانیتور شود تا همچنان امن و پایدار باقی بماند.
- وابستگی به سرویسهای خارجی: بسیاری از سامانههای احراز هویت برای ارسال رمز یکبار مصرف، ورود با حساب گوگل یا مایکروسافت و یا حتی احراز هویت بیومتریک، به سرویسهای خارجی وابسته هستند. در چنین شرایطی اگر یکی از این سرویسها دچار اختلال شود، ممکن است فرایند ورود کاربران با مشکل مواجه شود. به همین دلیل هم بهتر است از گزینههای مناسب داخلی استفاده شود.
یکپارچهسازی آسان سرویسهای احراز هویت با ویرا
یکی از راهکارهایی که میتواند چالش استفاده از سرویسهای خارجی و پیچیدگی یکپارچهسازی را برطرف کند، استفاده از پلتفرمهایی مانند ویراست. این پلتفرم امکان استفاده از سرویسهای احراز هویت را از طریق API فراهم کرده و با ارائه مستندات فنی و پشتیبانی به موقع، فرایند اتصال این سرویسها به سیستمهای سازمانی را فراهم میکند.

یکی از سرویسهای قابل استفاده روی این پلتفرم، سرویس احراز هویت فراشناست که با قابلیتهایی مانند تطبیق چهره، تشخیص زنده بودن و سنجش هوشیاری، هویت کاربران را با دقت بالا بررسی میکند. همچنین با استفاده از فناوری تشخیص حملات نمایشی (Presentation Attack Detection) یا همان PAD میتواند روشهای مختلف جعل هویت مانند استفاده از عکس یا ویدئو، ماسک، گریم و سایر تلاشها برای فریب سیستم را شناسایی و از ورود افراد غیرمجاز جلوگیری کند. استفاده از قابلیتهایی مثل تطبیق چهره، تشخیص زنده بودن و تحلیل هوشمند تصاویر، فراشناسا را به یکی از نمونههای معماری احراز هویت مبتنی بر هوش مصنوعی تبدیل کرده است.
بیشتر بخوانید: توکن امضای دیجیتال چیست؟
این سرویس میتواند به عنوان بخشی از معماری سامانه KYC در بانکها، نئوبانکها و سایر کسبوکارهای مالی مورد استفاده قرار بگیرد. فراشناسا تاکنون با بیش از 70 میلیون احراز هویت موفق و با در اختیار داشتن 75 درصد از سهم بازار، به یکی از شناختهشدهترین سرویسهای احراز هویت غیرحضوری در میان سازمانهای دولتی و خصوصی تبدیل شده و سازمانهای بزرگ میتوانند به جای اینکه از صفر به فکر طراحی یک سرویس احراز هویت باشند، بدون نیاز به توسعه زیرساختهای پیچیده، دانش فنی و تخصصی هوش مصنوعی و متخصصان AI یک راهکار احراز هویت امن و مقیاسپذیر را در سامانههای خودشان استفاده کنند.
جمعبندی
در نهایت میتوان گفت پیادهسازی سرویس احراز هویت فقط به انتخاب فناوریهای مناسب یا رعایت چند نکته امنیتی محدود نمیشود. موفقیت این سرویس زمانی مشخص میشود که بتواند به صورت همزمان امنیت، سرعت، مقیاسپذیری و تجربه کاربری مناسبی ارائه دهد. سازمانهایی که از ابتدا معماری این بخش را به صورت اصولی طراحی میکنند، علاوه بر کاهش ریسکهای امنیتی، در آینده هم راحتتر میتوانند سرویسهای جدید را اضافه کنند، تعداد کاربرانشان را افزایش دهند و بدون افت عملکرد به رشد کسب و کار خود ادامه دهند.











