به‌روزرسانی‌های FedCM: Multi IdP API در دسک‌تاپ، API حالت دکمه‌ای و Continuation Bundle برای Chrome در نسخه‌های آزمایشی اصلی Android

ناتالیا مارکوبورودوا
Natalia Markoborodova

از Chrome 128، Multi-IdP API در حال شروع یک آزمایش اولیه روی دسکتاپ است، و API حالت دکمه و بسته Continuation در حال شروع یک آزمایش اولیه در Android هستند. با ویژگی Multi IdP، توسعه دهندگان می توانند آرایه ای از چندین ارائه دهنده هویت پشتیبانی شده را در یک تماس get() مشخص کنند. Button Mode API یک رابط کاربری جدید اضافه می کند. با API Button Mode، ارائه دهندگان هویت می توانند از FedCM API استفاده کنند، حتی اگر کاربران آنها جلسات IdP فعالی در تماس API نداشته باشند. بسته Continuation از Continuation API و Parameters API تشکیل شده است که تجربه‌ای مشابه جریان مجوز OAuth را که شامل گفتگوی مجوز ارائه‌شده توسط IdP است، فعال می‌کند. این بسته شامل تغییرات دیگری مانند Fields API، Multiple configURL و برچسب‌های حساب سفارشی است.

آزمایش اولیه: Multi IdP API

این ویژگی به کاربران اجازه می‌دهد تا از میان مجموعه‌ای از IdP‌های پشتیبانی‌شده، حسابی را انتخاب کنند و RP‌ها از نرخ‌های ورود و ثبت‌نام بالاتر بهره می‌برند. اگر کاربر با چندین IdP وارد شده باشد، از او خواسته می شود با استفاده از یکی از IdP ها وارد RP شود.

یک کاربر با استفاده از API چند IdP با IdP های مختلف وارد سیستم می شود.

IdP ها بر اساس حساب های موجود کاربر و مهرهای زمانی مرتبط با آنها اولویت بندی می شوند.

  • اگر کاربر قبلاً با یک IdP خاص وارد RP شده باشد (یعنی یک "حساب برگشتی" داشته باشد)، آن IdP ها ابتدا لیست می شوند.
  • در حساب‌های برگشتی، IdP‌ها بر اساس مُهر زمانی آخرین استفاده‌شان مرتب‌سازی می‌شوند و IdP اخیراً استفاده‌شده در بالای فهرست ظاهر می‌شود. در برخی موارد، Chrome ممکن است داده‌های مُهر زمانی برای حساب برگشتی نداشته باشد. این احتمالاً به این دلیل است که کاربر قبل از پیاده‌سازی گزارش‌های مهر زمانی در FedCM وارد سیستم شده است. این حساب‌ها در زیر حساب‌هایی که دارای مهر زمانی هستند فهرست شده‌اند.
  • اگر کاربر هیچ حساب برگشتی با IdP نداشته باشد، سفارش ارائه شده RP رعایت می شود.

FedCM در صورت درخواست توسعه‌دهنده و اگر یک حساب برگشتی وجود داشته باشد، امکان احراز هویت مجدد خودکار را فراهم می‌کند. در مورد Multi IdP، اگر حساب های برگشتی برای چندین IdP وجود داشته باشد، کاربر به طور خودکار دوباره احراز هویت نمی شود. داشتن یک حساب برگشتی یک نیاز قوی برای احراز هویت مجدد خودکار است. مرورگر تنها زمانی احراز هویت مجدد خودکار را آغاز می کند که مرورگر به صراحت حساب را شناسایی کرده باشد. این بدان معناست که کاربر باید قبلاً از FedCM با این حساب خاص در این RP استفاده کرده باشد.

اگر وضعیت ورود کاربر برای یک IdP روی Log-out تنظیم شده باشد، فراخوانی FedCM حساب‌هایی را برای آن IdP واکشی نمی‌کند. به طور مشابه، اگر وضعیت کاربر برای همه IdP های موجود از سیستم خارج شده باشد، اعلان ورود به سیستم FedCM به طور خودکار در حالت ویجت نشان داده نمی شود.

اگر وضعیت ورود به سیستم ذخیره شده در مرورگر برای یک IdP وارد سیستم شده باشد، اما هیچ حسابی برای این IdP با درخواست واکشی برگردانده نشده است (به عنوان مثال، اگر جلسه کاربر منقضی شده باشد، اما وضعیت ورود به سیستم هنوز به‌روزرسانی نشده است. مرورگر)، رابط کاربری نامتناسب برای IdP نشان داده می‌شود، و به کاربر پیشنهاد می‌دهد با IdP نامتناسب وارد شود.

هنگامی که وضعیت ورود کاربر به سیستم وارد شده است، اما جلسه منقضی شده است، رابط کاربری ناسازگار نمایش داده می شود.

برای اطلاعات بیشتر در مورد وضعیت ورود به سیستم، اسناد را بررسی کنید. برای جزئیات بیشتر پیاده سازی، راهنمای توسعه دهنده را ببینید.

آزمایش اولیه: Multi IdP API

می‌توانید Multi IdP API را به‌عنوان کاربر در RP آزمایشی یا به‌عنوان برنامه‌نویس با استفاده از Chrome 128 یا جدیدتر امتحان کنید.

آن را به عنوان یک کاربر امتحان کنید

خودتان به عنوان یک کاربر آن را امتحان کنید . مطمئن شوید که:

  • Chrome برای مسدود کردن درخواست‌های ورود به سیستم شخص ثالث در این صفحه پیکربندی نشده است: chrome://settings/content/federatedIdentityApi .
  • شما وارد چندین IdP نسخه ی نمایشی شده اید. دستورالعمل های صفحه نمایشی را دنبال کنید.

توجه داشته باشید که برای امتحان Multi-IdP در سایت‌هایی که مبدا آنها برای آزمایش اصلی ثبت نشده است، باید پرچم ویژگی را در زیر chrome://flags/#fedcm-multi-idp فعال کنید.

آن را به عنوان یک توسعه دهنده امتحان کنید

اگر یک ارائه‌دهنده ورود به سیستم یک جاوا اسکریپت SDK روی RP تعبیه شده باشد (توصیه می‌شود)، فراخوانی navigator.credentials.get() برای فعال کردن چندین IdP می‌تواند توسط ارائه‌دهنده پیاده‌سازی شود و توسعه‌دهندگان RP نیازی به تغییر کد خود ندارند. در غیر این صورت، RP باید خود FedCM API را فراخوانی کند.

برای آزمایش چند IdP در یک RP، آرایه ارائه دهندگان پشتیبانی شده را به صورت زیر مشخص کنید:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

ویژگی configURL در شیء حاصل، URL فایل پیکربندی را برای IdP که کاربر با آن احراز هویت کرده است، ذخیره می کند. RP می تواند نحوه مدیریت token به دست آمده را تعیین کند زیرا بسته به IdP متفاوت است.

در آزمایش مبدا شرکت کنید

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

می‌توانید با ثبت‌نام برای آزمایش‌های اولیه که از Chrome 128 شروع می‌شود، ویژگی Multi IdP را امتحان کنید.

برای امتحان Multi IdP، یک RP می‌تواند مبدأ خود را ثبت کند و یک آزمایش اولیه شخص اول را اجرا کند. همچنین این امکان برای IdP وجود دارد که برای یک آزمایش اولیه شخص ثالث ثبت نام کند و ویژگی Multi IdP را برای همه RP های خود با استفاده از Javascript SDK در دسترس داشته باشد.

مراحل شرکت در آزمایش مبدا:

  1. به صفحه ثبت نام آزمایشی اولیه Multi IdP API بروید.
  2. روی دکمه ثبت کلیک کنید و فرم درخواست توکن را پر کنید.
  3. برای ثبت نام برای آزمایش اولیه شخص اول، مبدا RP را در قسمت «مبدا وب» وارد کنید. برای آزمایش اولیه شخص ثالث ، مبدأ SDK جاوا اسکریپت IdP را وارد کنید و کادر «تطبیق شخص ثالث» را علامت بزنید.
  4. روی ارسال کلیک کنید.
  5. توکن صادر شده را در صفحه RP ارائه دهید:
    • برای شرکت کنندگان در آزمایش اولیه 1P:
      • به عنوان یک متا تگ در <head> : <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • به عنوان هدر HTTP: Origin-Trial: TOKEN_GOES_HERE
    • برای شرکت کنندگان آزمایشی اصلی شخص ثالث:
      • با ارائه توکن به صورت برنامه ای.

API حالت دکمه برای کروم در اندروید

از کروم نسخه 128، نسخه آزمایشی اولیه API حالت دکمه در Chrome در اندروید و پس از آزمایش اولیه آن در دسک‌تاپ آغاز می‌شود. با استفاده از Button Mode API، ارائه دهندگان هویت می توانند از FedCM API استفاده کنند، حتی اگر کاربران آنها پس از تماس API از IdP خارج شده باشند. جریان ورود به سیستم توسط یک حرکت کاربر شروع می شود که بهتر نشان دهنده قصد کاربر است.

در کروم 128، ویژگی جدیدی معرفی شده است که به IdP ها اجازه می دهد نماد لوگوی رسمی RP را مستقیماً در پاسخ نقطه پایانی فراداده مشتری قرار دهند. این UI را در دستگاه های تلفن همراه در حالت دکمه بهبود می بخشد.

مشابه با نام تجاری IdP در فایل پیکربندی، نمادهای RP را می توان در سمت IdP پیکربندی کرد و در پاسخ client_metadata_endpoint به صورت زیر برگرداند:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
نمادهای آرم IdP و RP.
نمادهای IdP و RP در رابط کاربری افشا در تلفن همراه.

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

اگر کاربر هنوز وارد سیستم نشده باشد، FedCM از کاربر می‌خواهد با استفاده از login_url ارائه‌شده توسط IdP از طریق یک برگه سفارشی Chrome (CCT) به IdP وارد شود.

کاربر در حال ورود از طریق حالت دکمه در تلفن همراه است.

اگر کاربر با یک حساب برگشتی مجدداً احراز هویت می‌کند، رابط کاربری افشا نمایش داده نمی‌شود.

یک کاربر با یک حساب برگشتی وارد سیستم می شود. رابط کاربری افشا نمایش داده نمی شود.

برای ثبت نام در نسخه آزمایشی اصلی، به دستورالعمل‌های مربوط به API حالت دکمه روی دسک‌تاپ مراجعه کنید. اگر قبلاً برای نسخه آزمایشی اصلی روی دسک‌تاپ ثبت‌نام کرده‌اید، این ویژگی به‌طور خودکار در Chrome Android از Chrome 128 برای شما در دسترس خواهد بود.

بسته API Continuation برای Chrome در Android

از نسخه 128 کروم، بسته نرم افزاری Continuation API برای Chrome در Android به عنوان بخشی از نسخه آزمایشی اصلی، پس از آزمایش اولیه آن در دسک تاپ، در دسترس خواهد بود. این بسته شامل چندین ویژگی FedCM، از جمله Continuation API ، Parameters API ، Fields API ، چندین configURL و برچسب‌های حساب سفارشی است .

Continuation API جریان های ورود به سیستم چند مرحله ای را فعال می کند. Parameters API اجازه می دهد تا پارامترهای اضافی را به IdP منتقل کنید. Fields API به RP اجازه می‌دهد تا ویژگی‌های حساب خاصی را برای UI افشا در گفتگوی FedCM درخواست کند. علاوه بر این، Multiple configURL از چندین فایل پیکربندی برای یک IdP پشتیبانی می‌کند، و برچسب‌های حساب سفارشی به IdPها اجازه می‌دهند حساب‌ها را حاشیه‌نویسی کنند تا RP‌ها بتوانند آنها را با این برچسب‌ها فیلتر کنند.

برای کسب اطلاعات بیشتر در مورد بسته API Continuation، به پست وبلاگ در بسته API Continuation در دسک تاپ مراجعه کنید. برای ثبت نام برای آزمایش اولیه ، این دستورالعمل ها را دنبال کنید. اگر قبلاً برای نسخه آزمایشی اصلی روی دسک‌تاپ ثبت‌نام کرده‌اید، این ویژگی‌ها به‌طور خودکار در Chrome Android از Chrome 128 برای شما در دسترس خواهند بود.

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

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