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

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

از کروم ۱۲۸، رابط برنامه‌نویسی کاربردی چند-آی‌دی‌پی (Multi-IdP API) در حال شروع یک دوره آزمایشی اولیه در دسکتاپ است و رابط برنامه‌نویسی کاربردی حالت دکمه (Button Mode API) و بسته نرم‌افزاری ادامه (Continuation Bundle) در حال شروع یک دوره آزمایشی اولیه در اندروید هستند. با ویژگی چند-آی‌دی‌پی (Multi IdP API)، توسعه‌دهندگان می‌توانند آرایه‌ای از چندین ارائه‌دهنده هویت پشتیبانی‌شده را در یک فراخوانی get() مشخص کنند. رابط برنامه‌نویسی کاربردی حالت دکمه (Button Mode API) یک رابط کاربری جدید اضافه می‌کند. با رابط برنامه‌نویسی کاربردی حالت دکمه، ارائه‌دهندگان هویت می‌توانند از رابط برنامه‌نویسی کاربردی فِد‌سی‌ام (FedCM API) استفاده کنند، حتی اگر کاربرانشان در زمان فراخوانی رابط برنامه‌نویسی کاربردی، جلسات فعال آی‌دی‌پی (IdP Session) نداشته باشند. بسته نرم‌افزاری ادامه شامل رابط برنامه‌نویسی کاربردی ادامه (Continuation API) و رابط برنامه‌نویسی کاربردی پارامترها (Parameters API) است که یک تجربه شبیه به جریان مجوزدهی OAuth را با استفاده از یک پنجره محاوره‌ای مجوزدهی ارائه‌شده توسط آی‌دی‌پی (IdP) امکان‌پذیر می‌کند. این بسته نرم‌افزاری همچنین شامل تغییرات دیگری مانند رابط برنامه‌نویسی کاربردی فیلدها (Fields API)، آدرس پیکربندی چندگانه (Multiple configURL و برچسب‌های حساب سفارشی (Custom Account Labels) است.

نسخه آزمایشی اصلی: رابط برنامه‌نویسی کاربردی چند IdP

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

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

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

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

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

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

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

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

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

نسخه آزمایشی اصلی: رابط برنامه‌نویسی کاربردی چند IdP

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

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

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

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

توجه داشته باشید که برای امتحان کردن Multi-IdP در سایت‌هایی که origin آنها برای نسخه آزمایشی origin ثبت نشده است، باید feature flag را در chrome://flags/#fedcm-multi-idp فعال کنید.

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

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

برای آزمایش Multi 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 متفاوت است.

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

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

می‌توانید با ثبت‌نام در نسخه‌های آزمایشی اصلی کروم ۱۲۸، ویژگی Multi IdP را امتحان کنید.

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

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

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

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

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

در کروم ۱۲۸، یک ویژگی جدید معرفی شده است که به IdPها اجازه می‌دهد تا آیکون لوگوی رسمی RP را مستقیماً در پاسخ متاداده کلاینت به نقطه پایانی قرار دهند. این امر باعث بهبود رابط کاربری در دستگاه‌های تلفن همراه در حالت دکمه می‌شود.

مشابه برند 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 از طریق یک برگه سفارشی کروم (CCT) وارد IdP شود.

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

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

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

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

از نسخه ۱۲۸ کروم، بسته Continuation API پس از نسخه آزمایشی اولیه روی دسکتاپ، به عنوان بخشی از یک نسخه آزمایشی اصلی برای کروم در اندروید در دسترس خواهد بود. این بسته شامل چندین ویژگی FedCM، از جمله Continuation API ، Parameters API ، Fields API ، Multiple configURLs و Custom Account Labels است .

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

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

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

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