پشتیبانی از احراز هویت مجدد خودکار در FedCM

کروم از احراز هویت مجدد خودکار در FedCM پشتیبانی می کند

API مدیریت اعتبار فدرال (FedCM) یک API وب برای فدراسیون حفظ حریم خصوصی است. با فدراسیون هویت، یک RP (طرف متکی) به یک IdP (ارائه‌دهنده هویت) برای ارائه یک حساب کاربری بدون نیاز به نام کاربری و رمز عبور جدید متکی است.

FedCM به مرورگر اجازه می دهد تا زمینه ای را که در آن RP و IdP تبادل اطلاعات می کنند، درک کند. کاربر را از اطلاعات و سطوح امتیازی که به اشتراک گذاشته می شود مطلع می کند و از سوء استفاده ناخواسته جلوگیری می کند. FedCM از نسخه 108 در کروم در دسترس بوده است.

در Chrome 115، FedCM از احراز هویت مجدد خودکار پشتیبانی می‌کند که تجربیات کاربر را بهبود می‌بخشد و احراز هویت ساده‌تر را برای RP پس از رضایت اولیه امکان‌پذیر می‌کند.

احراز هویت مجدد خودکار

در حال حاضر، پس از اینکه یک کاربر از طریق FedCM API یک حساب فدرال روی یک RP با IdP ایجاد کرد ، دفعه بعد که از وب سایت بازدید کرد باید همان مراحل را در رابط کاربری طی کند. این بدان معناست که کاربر برای احراز هویت مجدد و ادامه روند ورود به سیستم باید صریحاً و به صورت دستی مجدداً تأیید کند.

در حالی که تجربه کاربری صریح قبل از ایجاد حساب فدرال توسط کاربر برای جلوگیری از ردیابی (که یکی از اهداف اصلی FedCM است) منطقی است، پس از اینکه کاربر یک بار آن را گذرانده است، غیرضروری دست و پا گیر است: پس از اعطای مجوز به کاربر برای اجازه دادن به آن. ارتباط بین RP و IdP، هیچ مزیتی برای حفظ حریم خصوصی یا امنیتی برای اعمال تأیید صریح کاربر دیگر برای چیزی که قبلاً تأیید کرده است وجود ندارد. به همین دلیل است که ما یک UX ساده تر را معرفی می کنیم که RP ها می توانند برای کاربران بازگشتی خود انتخاب کنند.

احراز هویت مجدد خودکار FedCM (به طور خلاصه «تأیید مجدد خودکار») می تواند به کاربران اجازه دهد که پس از احراز هویت اولیه با استفاده از FedCM دوباره به طور خودکار احراز هویت شوند. "تأیید هویت اولیه" در اینجا به این معنی است که کاربر با ضربه زدن روی دکمه "ادامه به عنوان..." در گفتگوی ورود به سیستم FedCM برای اولین بار در همان نمونه مرورگر، یک حساب ایجاد می کند یا به وب سایت RP وارد می شود.

گفتگویی که کاربر برای ایجاد حساب کاربری یا احراز هویت روی آن ضربه می زند.
گفتگویی که کاربر برای ایجاد حساب کاربری یا احراز هویت روی آن ضربه می زند.

گزینه ای را برای احراز هویت مجدد خودکار انتخاب کنید

در حالی که ما در حال معرفی مجدد خودکار برای ارائه UX بهتر و همسویی با مشخصات هستیم، تجربه کاربر پیش فرض بدون تغییر کد متفاوت خواهد بود. با در دسترس بودن احراز هویت مجدد خودکار، مرورگر رفتار خود را بسته به گزینه ای که در گزینه mediation که توسعه دهندگان با navigator.credentials.get() انتخاب می کنید، تغییر می دهد.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

mediation یک ویژگی در Credential Management API است، مانند PasswordCredential و FederatedCredential رفتار می کند و تا حدی توسط PublicKeyCredential نیز پشتیبانی می شود. این ویژگی چهار مقدار زیر را می پذیرد:

  • 'required' : همیشه برای ادامه به واسطه نیاز دارد، برای مثال، روی دکمه "ادامه" در رابط کاربری کلیک کنید. اگر از کاربران شما انتظار می رود هر بار که نیاز به احراز هویت دارند، به صراحت اجازه دهند این گزینه را انتخاب کنید.
  • 'optional' (پیش‌فرض): در صورت امکان احراز هویت مجدد خودکار، در غیر این صورت نیاز به میانجیگری دارد. توصیه می کنیم این گزینه را در صفحه ورود به سیستم انتخاب کنید.
  • 'silent' : در صورت امکان، احراز هویت مجدد خودکار، در غیر این صورت بدون نیاز به میانجیگری، بی‌صدا شکست می‌خورد. توصیه می‌کنیم این گزینه را در صفحاتی غیر از صفحه ورود به سیستم اختصاصی، اما در جایی که می‌خواهید کاربران را وارد سیستم کنید، انتخاب کنید - برای مثال، صفحه موردی در وب‌سایت حمل و نقل یا صفحه مقاله در یک وب‌سایت خبری.
  • 'conditional' : برای WebAuthn استفاده می شود و در حال حاضر برای FedCM در دسترس نیست.

با این تماس، احراز هویت مجدد خودکار در شرایط زیر انجام می شود:

هنگامی که شرایط فوق برآورده می شود، به محض فراخوانی FedCM navigator.credentials.get() تلاش برای احراز هویت مجدد خودکار کاربر شروع می شود.

کاربر احراز هویت مجدد خودکار از طریق FedCM.

اجرای میانجیگری با preventSilentAccess()

احراز هویت مجدد خودکار کاربران بلافاصله پس از خروج از سیستم، تجربه کاربری بسیار خوبی را ایجاد نمی کند. به همین دلیل است که FedCM برای جلوگیری از این رفتار، یک دوره 10 دقیقه‌ای سکوت پس از احراز هویت مجدد خودکار دارد. این بدان معناست که احراز هویت مجدد خودکار حداکثر هر 10 دقیقه یک بار اتفاق می‌افتد مگر اینکه کاربر در عرض 10 دقیقه دوباره وارد سیستم شود. RP باید navigator.credentials.preventSilentAccess() را فراخوانی کند تا صراحتاً از مرورگر درخواست کند تا زمانی که کاربر بطور صریح از RP خارج می شود، مثلاً با کلیک کردن روی دکمه خروج، احراز هویت مجدد خودکار را غیرفعال کند.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

کاربران می توانند از احراز هویت مجدد خودکار در تنظیمات انصراف دهند

کاربران می توانند از منوی تنظیمات از احراز هویت مجدد خودکار انصراف دهند:

  • در کروم دسکتاپ، به chrome://password-manager/settings > ورود خودکار به سیستم بروید.
  • در Android Chrome، تنظیمات > مدیریت رمز عبور > روی چرخ دنده در گوشه بالا سمت راست > ورود خودکار ضربه بزنید.

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

بازخورد را به اشتراک بگذارید

اگر FedCM را آزمایش می‌کنید، می‌توانید بازخورد خود یا هر مشکلی را که با آن مواجه می‌شوید در crbug.com در قسمت «Blink>Identity>FedCM» به اشتراک بگذارید.

عکس نوح ساموئل فرانتس در Unsplash