احراز هویت SAML در ChromeOS

به طور پیش‌فرض، سرویس حساب‌های کاربری گوگل که از خارج قابل دسترسی است، احراز هویت حساب‌های کاربری گوگل را انجام می‌دهد. وقتی یک کاربر احراز هویت نشده از صفحه‌ای در گوگل که نیاز به احراز هویت دارد بازدید می‌کند، فرم ورود گوگل آدرس ایمیل و رمز عبور کاربر را درخواست می‌کند. پس از اینکه کاربر ایمیل و رمز عبور خود را ارسال کرد، احراز هویت گوگل صحت اطلاعات وارد شده را تأیید می‌کند. اگر اطلاعات صحیح باشد، احراز هویت گوگل کوکی‌های ورود کاربر را تنظیم می‌کند.

برخی از شرکت‌ها از مدل پیچیده‌تری استفاده می‌کنند که در آن یک ارائه‌دهنده هویت شخص ثالث (IdP) احراز هویت را مدیریت می‌کند. احراز هویت گوگل از این مدل از طریق پروتکل استاندارد صنعتی زبان نشانه‌گذاری ادعای امنیتی (SAML) پشتیبانی می‌کند. یک مدیر می‌تواند یک دامنه را برای استفاده از احراز هویت SAML پیکربندی کند .

بدست آوردن رمز عبور کاربر

سیستم عامل کروم (ChromeOS) برای موارد زیر باید رمز عبور کاربر وارد شده هنگام ورود به سیستم را شناسایی کند:

  • داده‌های کاربر ذخیره شده روی دیسک درایو را رمزگذاری کنید.
  • از صفحه قفل محافظت کنید.
  • وقتی دسترسی به شبکه وجود ندارد، ورود آفلاین را فعال کنید.

هنگام استفاده از SAML، رمز عبور مستقیماً در پنجره محاوره‌ای سیستم ChromeOS وارد نمی‌شود، بلکه در یک نمای وب که توسط ارائه‌دهنده هویت میزبانی می‌شود، وارد می‌شود. در حالی که ChromeOS به HTML دسترسی دارد، هیچ راه ساده و استانداردی برای دریافت رمز عبور وجود ندارد زیرا مشخص نیست کدام فیلدهای فرم حاوی داده‌ها هستند.

دو راه برای دریافت رمز عبور کاربر هنگام استفاده از SAML وجود دارد: API ارسال اعتبارنامه‌ها و استخراج رمز عبور.

اعتبارنامه‌های کروم از طریق API ارسال می‌شوند

گوگل یک API برای ارسال اعتبارنامه‌ها ارائه می‌دهد که ارائه‌دهندگان هویت می‌توانند آن را در صفحات SAML، در جاوا اسکریپت، پیاده‌سازی کنند تا داده‌های مورد نیاز را به ChromeOS منتقل کنند. احراز هویت گوگل از این API استفاده می‌کند، اما هر ارائه‌دهنده هویت SAML نیز می‌تواند از آن استفاده کند.

حذف رمز عبور

یک ارائه‌دهنده هویت SAML ممکن است زمانی که از API انتقال اعتبارنامه‌ها پشتیبانی نمی‌کند، از رمزگشایی رمز عبور استفاده کند.

در این روش:

  1. صفحه احراز هویت، یک اسکریپت محتوا را به نمای وب که میزبان فرآیند ورود به سیستم است، تزریق می‌کند.
  2. اسکریپت محتوا فیلدهای ورودی HTML از نوع رمز عبور را شناسایی کرده و محتویات آنها را در یک آرایه کپی می‌کند. هر زمان که محتویات یک فیلد رمز عبور تغییر کند، آرایه به‌روزرسانی می‌شود.
  3. رمزهای عبور ضبط شده به یک صفحه پس‌زمینه ارسال می‌شوند که آنها را جمع‌آوری می‌کند. به این ترتیب، حتی اگر جریان ورود شامل چندین تغییر مسیر به صفحات HTML مختلف باشد، رمز عبور قابل ضبط است.

در پایان جریان ورود، آرایه‌ای از رمزهای عبور استخراج‌شده از صفحه پس‌زمینه بازیابی می‌شود. سه حالت ممکن است: هیچ رمز عبوری استخراج نشده باشد، دقیقاً یک رمز عبور استخراج شده باشد، یا بیش از یک رمز عبور استخراج شده باشد.

هیچ رمز عبوری لو نرفته است

اسکریپت محتوا نمی‌تواند رمز عبور را در صفحات HTML ارائه شده توسط ارائه دهنده هویت پیدا کند. ارائه دهنده هویت ممکن است از رمزهای عبور سنتی استفاده نکند.

در این سناریو، ChromeOS از کاربر می‌خواهد که یک رمز عبور دستی برای دستگاه انتخاب کند . اگر رمز عبور وجود نداشته باشد (مثلاً احراز هویت با کارت‌های هوشمند، NFC، بیومتری)، فرآیند احراز هویت ChromeOS ممکن است بدون رمز عبور ادامه یابد .

دقیقاً یک رمز عبور رمزگشایی شد

اسکریپت محتوا دقیقاً یک رمز عبور را شناسایی می‌کند. به احتمال زیاد، این رمز عبور کاربر است که برای احراز هویت استفاده می‌شود.

در این سناریو، به احتمال زیاد رمز عبور کاربر را به درستی استخراج کرده‌ایم. ChromeOS از رمز عبور استخراج شده به عنوان رمز عبور کاربر برای ادامه فرآیند احراز هویت استفاده خواهد کرد.

بیش از یک رمز عبور از بین رفته است

اسکریپت محتوا چندین رمز عبور را شناسایی می‌کند. این ممکن است تحت شرایطی اتفاق بیفتد، مانند زمانی که یک ارائه‌دهنده هویت از کاربر می‌خواهد یک رمز عبور دائمی و یک رمز عبور یکبار مصرف را در فرم ورود وارد کند.

در این سناریو، ما احتمالاً رمز عبور واقعی کاربر و برخی از فیلدهای رمز عبور اضافی که مورد توجه ChromeOS نیستند را حذف کرده‌ایم. برای تعیین اینکه کدام یک رمز عبور صحیح است، ChromeOS از کاربر می‌خواهد که یک بار دیگر رمز عبور را در یک درخواست رمز عبور اضافی وارد کند.

اگر رمز عبور وارد شده با یکی از رمزهای عبور استخراج شده مطابقت داشته باشد، رمز عبور واقعی کاربر شناسایی شده و فرآیند احراز هویت ادامه خواهد یافت. اگر هیچ تطابقی وجود نداشته باشد، از کاربر خواسته می‌شود که دوباره رمز عبور خود را وارد کند. پس از دو بار عدم تطابق، ورود با یک پیام خطا ناموفق می‌شود.

ثبت نام سازمانی

برای ثبت‌نام سازمانی، آدرس ایمیل کاربر ثبت‌نام‌کننده برای مرتبط کردن دستگاه با دامنه صحیح مورد نیاز است. ایمیل از سرور مدیریت دستگاه (DM) در فیلد نام کاربری پیام PolicyData در حین واکشی سیاست دستگاه به Chrome ارسال می‌شود. نیازی به تعیین رمز عبور کاربر نیست.