به‌روزرسانی‌های API مدیریت اعتبار فدرال

API مدیریت اعتبار فدرال در Chrome 108 ارسال شده است، اما انتظار می‌رود که به تکامل خود ادامه دهد. هیچ تغییر قطعی برنامه ریزی نشده است.

این آپدیت ها برای چه کسانی هستند؟

این به روز رسانی ها برای شما هستند اگر:

  • شما یک IdP هستید که از API مدیریت اعتبار فدرال استفاده می کنید.
  • شما یک IdP یا RP هستید و علاقه مند به گسترش API متناسب با مورد استفاده خود هستید - به عنوان مثال شما در حال مشاهده یا شرکت در بحث های مربوط به مخزن FedID CG بوده اید و می خواهید تغییرات ایجاد شده در API را درک کنید.
  • شما یک فروشنده مرورگر هستید و می خواهید وضعیت اجرای API را دنبال کنید.

اگر با این API تازه کار هستید یا هنوز آن را آزمایش نکرده اید، مقدمه API مدیریت اعتبار فدرال را بخوانید.

تغییرات

برای به روز ماندن در مورد تغییرات API FedCM، در خبرنامه ما مشترک شوید.

Chrome 125 (آوریل 2024)

Chrome 123 (فوریه 2024)

  • پشتیبانی از Domain Hint API اضافه شده است. Domain Hint API به RP ها اجازه می دهد تا یک ویژگی domainHint را در فراخوانی API FedCM مشخص کنند تا فقط حساب های منطبق را برای کاربر نشان دهد.

Chrome 122 (ژانويه 2024)

  • پشتیبانی برای Disconnect API اضافه شده است. Disconnect API به RP ها اجازه می دهد تا بدون اتکا به کوکی های شخص ثالث، ارتباط کاربران خود را از حساب IdP قطع کنند.
  • وقتی RP و IdP در یک سایت هستند، بررسی /.well-known/web-identity اکنون نادیده گرفته می شود.
  • منابع فرعی اکنون می توانند وضعیت ورود به سایت را تنظیم کنند.

Chrome 121 (دسامبر 2023)

  • شرایط آرام برای شروع احراز هویت مجدد خودکار FedCM:
    • ویژگی احراز هویت مجدد خودکار در FedCM تنها زمانی فعال می شود که کاربر در حال بازگشت است. این بدان معناست که کاربر باید یک بار در هر نمونه مرورگر با استفاده از FedCM وارد RP شود، قبل از اینکه احراز هویت مجدد خودکار فعال شود. این شرایط در ابتدا برای کاهش خطر ردیاب‌هایی که تظاهر به ارائه‌دهنده هویت (IdP) می‌کنند و فریب مرورگر را برای احراز هویت مجدد خودکار کاربر بدون اطلاع یا رضایت آن‌ها ارائه کردند. با این حال، اگر ردیاب به کوکی‌های شخص ثالث در زمینه RP دسترسی داشته باشد، این طرح نمی‌تواند مزیت حریم خصوصی را تضمین کند. FedCM تنها زیرمجموعه ای از قابلیت های ممکن را از طریق کوکی های شخص ثالث فراهم می کند، بنابراین اگر ردیاب از قبل به کوکی های شخص ثالث در زمینه RP دسترسی داشته باشد، دسترسی به FedCM خطر حفظ حریم خصوصی اضافی ایجاد نمی کند.
      از آنجایی که استفاده‌های قانونی از کوکی‌های شخص ثالث وجود دارد و آرام کردن شرایط باعث بهبود UX می‌شود، این رفتار از Chrome 121 تغییر می‌کند. ما تصمیم گرفته‌ایم محدودیت‌های شرایط را کاهش دهیم تا کاربر را به‌عنوان بازگشت‌کننده رفتار کنیم: اگر کوکی‌های شخص ثالث هستند در دسترس IdP در زمینه RP، Chrome به ادعای IdP در مورد وضعیت حساب کاربر که از طریق لیست approved_clients مشخص شده است اعتماد می کند و در صورت وجود، احراز هویت مجدد خودکار را راه اندازی می کند. کوکی‌های شخص ثالث می‌توانند از طریق: تنظیمات کاربر، خط‌مشی‌های سازمانی، روش‌های اکتشافی ( Safari ، Firefox ، Chrome ) و سایر APIهای پلتفرم وب (مانند Storage Access API ) در دسترس باشند. توجه داشته باشید که وقتی IdP در آینده دسترسی به کوکی‌های شخص ثالث را از دست بدهد، اگر کاربر قبلاً هرگز به طور صریح مجوز FedCM UI را اعطا نکرده باشد (مثلاً روی دکمه «ادامه به‌عنوان » کلیک کنید، همچنان به‌عنوان یک کاربر جدید رفتار می‌شود.
      هیچ اقدام توسعه دهنده مورد نیاز نیست. توجه داشته باشید که اگر IdP به کوکی‌های شخص ثالث دسترسی داشته باشد و ادعا کند که کاربر در گذشته یک حساب در RP ایجاد کرده است، جریان احراز هویت مجدد خودکار می‌تواند بیشتر با این تغییر فعال شود.

Chrome 120 (نوامبر 2023)

  • پشتیبانی از سه ویژگی زیر در Chrome 120 اضافه شده است:
    • Login Status API : Login Status API مکانیزمی است که در آن یک وب سایت، به ویژه یک IdP، وضعیت ورود کاربر خود را به مرورگر اطلاع می دهد. با این API، مرورگر می‌تواند درخواست‌های غیرضروری را به IdP کاهش دهد و حملات احتمالی زمان‌بندی را کاهش دهد. Login Status API یک الزام برای FedCM است. با این تغییر، پرچم chrome://flags/#fedcm-without-third-party-cookies دیگر برای فعال کردن FedCM زمانی که کوکی شخص ثالث مسدود است، لازم نیست.
    • Error API : Error API با نشان دادن رابط کاربری مرورگر با اطلاعات خطای ارائه شده توسط IdP، کاربر را مطلع می کند.
    • Auto-Selected Flag API : API Flag Auto-Selected به اشتراک می‌گذارد که آیا با ضربه زدن روی دکمه Continue as با IdP و RP، هر زمان که احراز هویت مجدد خودکار یا میانجی‌گری صریح صورت می‌گیرد، مجوز صریح کاربر به دست آمده است یا خیر. اشتراک گذاری تنها پس از اعطای مجوز کاربر برای ارتباطات IdP و RP انجام می شود.

Chrome 117 (سپتامبر 2023)

Chrome 116 (اوت 2023)

  • پشتیبانی از سه ویژگی زیر در Chrome 116 اضافه شده است:
    • Login Hint API : یک حساب کاربری ترجیحی را برای ورود به سیستم مشخص کنید.
    • User Info API : اطلاعات کاربر بازگشتی را واکشی کنید تا ارائه‌دهنده هویت (IdP) بتواند یک دکمه ورود به سیستم شخصی‌شده را در یک iframe ارائه دهد.
    • RP Context API : از عنوانی متفاوت از «ورود به سیستم» در گفتگوی FedCM استفاده کنید.
  • Origin Trial برای IdP Sign-In Status API در دسترس است. در به‌روزرسانی‌های FedCM درباره آن بیشتر بیاموزید: IdP Sign-In Status API، راهنمای ورود، و موارد دیگر .

Chrome 115 (ژوئن 2023)

  • پشتیبانی از احراز هویت مجدد خودکار اضافه شده است که به کاربران امکان می دهد وقتی پس از احراز هویت اولیه با استفاده از FedCM برگشتند، به طور خودکار احراز هویت مجدد را انجام دهند. این تجربه کاربر را بهبود می‌بخشد و احراز هویت ساده‌تر را برای RP پس از رضایت اولیه ممکن می‌سازد. درباره احراز هویت مجدد خودکار FedCM بیشتر بیاموزید.

Chrome 110 (فوریه 2023)

  • برای نقطه پایانی ادعای ID، IdP ها باید سرصفحه Origin را (به جای سرصفحه Referer ) بررسی کنند تا ببینند آیا مقدار با مبدا شناسه مشتری مطابقت دارد یا خیر.
  • پشتیبانی iframe cross-origin برای FedCM اکنون در دسترس است. جاسازی‌کننده باید Permissions-Policy identity-credentials-get را مشخص کند تا به FedCM API در iframe متقاطع جاسازی شده اجازه دهد. می توانید نمونه ای از iframe متقاطع را بررسی کنید.
  • یک پرچم جدید Chrome اضافه شد chrome://flags/#fedcm-without-third-party-cookies . با این پرچم، می‌توانید عملکرد FedCM را در کروم با مسدود کردن کوکی‌های شخص ثالث آزمایش کنید. از مستندات FedCM بیشتر بیاموزید.

Chrome 108 (اکتبر 2022)

  • "مانیفست سطح بالا" اکنون در سند "فایل شناخته شده" نامیده می شود. هیچ تغییری در پیاده سازی مورد نیاز نیست.
  • "مانیفست IdP" اکنون در سند "فایل پیکربندی" نامیده می شود. هیچ تغییری در پیاده سازی مورد نیاز نیست.
  • id_token_endpoint در "فایل پیکربندی" به id_assertion_endpoint تغییر نام داده است.
  • درخواست‌ها به IdP اکنون شامل یک سرصفحه Sec-Fetch-Dest: webidentity به جای هدر Sec-FedCM-CSRF: ?1 است.

Chrome 105 (اوت 2022)

  • اطلاعات امنیتی مهمی را به سند اضافه کرد. ارائه‌دهنده هویت (IdP) باید بررسی کند که آیا هدر Referer با مبدای که RP از قبل در نقطه پایانی نشانه ID ثبت شده مطابقت دارد یا خیر.
  • مانیفست سطح بالا از /.well-known/fedcm.json به /.well-known/web-identity تغییر نام داده و URL مشخص شده در provider_urls باید شامل نام فایل باشد.
  • متدهای login() ، logout() و revoke() در نمونه های FederatedCredential دیگر در دسترس نیستند.
  • API مدیریت اعتبار فدرال اکنون از نوع جدیدی از IdentityCredential به جای FederatedCredential استفاده می کند. این می تواند برای تشخیص ویژگی استفاده شود، اما در غیر این صورت یک تغییر تا حد زیادی نامرئی است.
  • عملکرد ورود به سیستم را از ترکیبی از navigator.credentials.get() و FederatedCredential.prototype.login() به navigator.credentials.get() منتقل کنید.
  • نقطه پایان ابطال در مانیفست دیگر قابل اجرا نیست.
  • برای فراخوانی های navigator.credentials.get() از یک فیلد identity به جای یک فیلد federated استفاده کنید.
  • url اکنون configURL است و باید URL کامل فایل JSON مانیفست به جای مسیر فراخوانی navigator.credentials.get() باشد.
  • nonce اکنون یک پارامتر اختیاری برای navigator.credentials.get() است.
  • hint دیگر به عنوان گزینه ای برای navigator.credentials.get() موجود نیست.
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (ژوئن 2022)

  • پارامتر consent_acquired ارسال شده به نقطه پایانی رمز شناسه اکنون disclosure_text_shown است. ارزش بدون تغییر است.
  • نمادهای نام تجاری در مانیفست IdP پشتیبانی از تصاویر SVG را متوقف کرده‌اند، اما دیگر نیازی نیست که توسط خط‌مشی امنیت محتوای RP مجاز باشند.

Chrome 103 (مه 2022)

  • از محیط های دسکتاپ پشتیبانی می کند.
  • از تنظیمات per-RP روی دسکتاپ پشتیبانی می کند.
  • نقطه پایانی فراداده مشتری اکنون اختیاری است. در این نقطه پایانی، URL خط مشی رازداری نیز اختیاری است.
  • یک هشدار در مورد استفاده از CSP connect-src در سند اضافه شده است.

منابع