Federated Credential Management API güncellemeleri

Federated Credential Management API'si Chrome 108'de kullanıma sunulmuştur ancak gelişmeye devam etmesi beklenmektedir. Planlanmış zarar veren bir değişiklik yok.

Bu güncellemeler kimin için?

Bu güncellemeler, aşağıdaki durumlarda size özeldir:

  • Federated Credential Management API'yi kullanan bir IdP iseniz.
  • Bir IdP veya R
  • Bir tarayıcı tedarikçi firmasısınız ve API'nin uygulama durumunu takip etmek istiyorsunuz.

Bu API'yi kullanmaya yeni başladıysanız veya henüz denemediyseniz Federated Credential Management API'ye giriş sayfasını okuyun.

Değişiklik günlüğü

FedCM API ile ilgili değişiklikler hakkında güncel bilgiler almak için bültenimize abone olun.

Chrome 125 (Nisan 2024)

Chrome 123 (Şubat 2024)

  • Domain İpucu API için destek eklendi. Domain İpucu API, RP'lerin kullanıcı için yalnızca eşleşen hesapları göstermek üzere bir FedCM API çağrısında domainHint özelliği belirtmesine olanak tanır.

Chrome 122 (Ocak 2024)

  • Bağlantıyı Kes API için destek eklendi. Bağlantıyı Kes API'si, RP'lerin üçüncü taraf çerezlerine gerek kalmadan kullanıcılarının IdP hesabıyla olan bağlantısını kesmesine olanak tanır.
  • RP ve IdP aynı sitedeyken /.well-known/web-identity kontrolü artık atlanıyor.
  • Alt kaynaklar artık aynı site giriş durumunu ayarlayabilir.

Chrome 121 (Aralık 2023)

  • FedCM otomatik yeniden kimlik doğrulamasını tetiklemek için kullanılan rahat koşul:
    • FedCM'deki otomatik yeniden kimlik doğrulama özelliği yalnızca kullanıcı geri döndüğünde tetiklenir. Bu durumda, otomatik yeniden kimlik doğrulamanın tetiklenebilmesi için kullanıcının her tarayıcı örneğinde bir kez FedCM'yi kullanarak RP'de oturum açması gerekir. Bu koşul başlangıçta, bir kimlik sağlayıcı gibi davranan ve bir kullanıcının bilgisi veya izni olmadan kullanıcının kimliğini otomatik olarak yeniden doğrulaması için tarayıcıyı kandırması riskini azaltmak amacıyla kullanıma sunulmuştur. Ancak bu tasarım, izleyicinin RP bağlamında üçüncü taraf çerezlerine erişimi varsa gizlilik avantajını garanti edemez. FedCM, üçüncü taraf çerezleri aracılığıyla mümkün olan özelliklerin yalnızca bir alt kümesini sağlar. Bu nedenle, izleyicinin RP bağlamında üçüncü taraf çerezlerine zaten erişimi varsa FedCM'ye erişim, ek gizlilik riski teşkil etmez.
      Üçüncü taraf çerezlerinin meşru kullanımları olduğundan ve bu durumun gevşetilmesi kullanıcı deneyimini iyileştireceğinden Chrome 121 sürümünden itibaren bu davranış değişecektir. Bir kullanıcıyı geri gelen kullanıcı olarak değerlendirmek için koşul kısıtlamasını gevşetmeye karar verdik: IdP bağlamında IdP için üçüncü taraf çerezleri varsa Chrome, IdP'nin approved_clients listesi aracılığıyla belirtilen kullanıcı hesabı durumuyla ilgili talebine güvenecek ve mümkünse otomatik yeniden kimlik doğrulamayı tetikleyecektir. Üçüncü taraf çerezlerine şu yöntemlerle erişilebilir: kullanıcı ayarları, kurumsal politikalar, buluşsal yöntemler (Safari, Firefox, Chrome) ve diğer web platformu API'leri (ör. Storage Access API). IdP ileride üçüncü taraf çerezlerine erişimi kaybederse, daha önce FedCM kullanıcı arayüzünde hiçbir zaman açıkça izin vermemiş (ör. Farklı devam et düğmesini tıklama) bir kullanıcının yine yeni bir kullanıcı olarak değerlendirileceğini unutmayın.
      Geliştiricinin herhangi bir işlem yapması gerekmez. IdP'nin üçüncü taraf çerezlerine erişimi varsa ve kullanıcının geçmişte RP'de bir hesap oluşturduğunu iddia ediyorsa otomatik yeniden kimlik doğrulama akışının bu değişiklikle daha fazla tetiklenebileceğini unutmayın.

Chrome 120 (Kasım 2023)

  • Chrome 120'nin aşağıdaki üç özelliği için destek eklendi:
    • Giriş Durumu API'si: Giriş Durumu API'si bir web sitesinin, özellikle de IdP'nin tarayıcıya, kullanıcının giriş durumunu bildirdiği bir mekanizmadır. Bu API sayesinde tarayıcı, IdP'ye gönderilen gereksiz istekleri ve olası zamanlama saldırılarını azaltabilir. Login Status API, FedCM için bir gerekliliktir. Bu değişiklikle birlikte, üçüncü taraf çerezleri engellendiğinde FedCM'nin etkinleştirilmesi için artık chrome://flags/#fedcm-without-third-party-cookies işareti gerekli değildir.
    • Error API: Error API, IdP tarafından sağlanan hata bilgilerini içeren bir tarayıcı kullanıcı arayüzü göstererek kullanıcıyı bilgilendirir.
    • Auto-Selected Flag API: Auto-Selected Flag API, otomatik yeniden kimlik doğrulama gerçekleştiğinde veya açık bir uyumlulaştırma gerçekleştiğinde Farklı devam et düğmesine dokunarak açık kullanıcı izninin alınıp alınmadığını paylaşır. Paylaşım yalnızca IdP ve RP iletişimleri için kullanıcı izni verildikten sonra gerçekleşir.

Chrome 117 (Eylül 2023)

Chrome 116 (Ağustos 2023)

  • Chrome 116'daki aşağıdaki üç özellik için destek eklendi:
    • Giriş İpucu API'sı: Oturum açılması için tercih edilen bir kullanıcı hesabı belirtin.
    • User Info API: Kimlik sağlayıcının (IdP) bir iframe içinde kişiselleştirilmiş bir oturum açma düğmesi oluşturabilmesi için geri gelen kullanıcının bilgilerini getirin.
    • RP Context API: FedCM iletişim kutusundaki "Oturum Aç"tan farklı bir başlık kullanın.
  • IdP Sign-In Status API için Kaynak Denemesi kullanılabilir. FedCM güncellemeleri: IdP Sign-In Status API, Login İpucu ve daha fazlası bölümünden bu konuyla ilgili daha fazla bilgi edinebilirsiniz.

Chrome 115 (Haziran 2023)

  • Kullanıcıların FedCM kullanarak ilk kimlik doğrulamalarından sonra geri döndüklerinde otomatik olarak yeniden kimlik doğrulamalarına olanak tanıyan otomatik yeniden kimlik doğrulama desteği eklendi. Bu, kullanıcı deneyimini iyileştirir ve ilk izinden sonra kısıtlanmış taraf için daha kolay bir yeniden kimlik doğrulama yapılmasını sağlar. FedCM otomatik yeniden kimlik doğrulaması hakkında daha fazla bilgi edinin.

Chrome 110 (Şubat 2023)

  • Kimlik onayı uç noktası için IdP'lerin, değerin istemci kimliğinin kaynağıyla eşleşip eşleşmediğini görmek için Origin üstbilgisini (Referer başlığı yerine) kontrol etmesi gerekir.
  • FedCM için artık kaynaklar arası iframe desteği sunulmaktadır. Yerleşik çapraz kaynak iframe'de FedCM API'ye izin vermek için yerleştirme aracı, Permissions-Policy identity-credentials-get değerini belirtmelidir. Çapraz kaynak iframe örneğine göz atabilirsiniz.
  • Yeni bir Chrome işareti chrome://flags/#fedcm-without-third-party-cookies eklendi. Bu işaretle üçüncü taraf çerezlerini engelleyerek Chrome'daki FedCM işlevini test edebilirsiniz. Daha fazla bilgi için FedCM belgelerini inceleyin.

Chrome 108 (Ekim 2022)

  • Dokümanda "üst düzey manifest" artık "iyi bilinen dosya" olarak adlandırılıyor. Uygulama değişikliği gerekmez.
  • "IdP manifest"i artık dokümanda "yapılandırma dosyası" olarak adlandırılmaktadır. Hiçbir uygulama değişikliği gerekmez.
  • "Yapılandırma dosyası"ndaki id_token_endpoint, id_assertion_endpoint olarak yeniden adlandırıldı.
  • IdP'ye gönderilen istekler artık Sec-FedCM-CSRF: ?1 başlığı yerine Sec-Fetch-Dest: webidentity üstbilgisi içeriyor.

Chrome 105 (Ağustos 2022)

  • Dokümana önemli güvenlik bilgileri eklendi. Kimlik sağlayıcı (IdP), Referer başlığının önceden kimlik jetonu uç noktasında kaydedilen RP kaynağıyla eşleşip eşleşmediğini kontrol etmelidir.
  • /.well-known/fedcm.json olan üst düzey manifest /.well-known/web-identity olarak yeniden adlandırıldı. provider_urls politikasında belirtilen URL, dosya adını içermelidir.
  • FederatedCredential örneklerinde login(), logout() ve revoke() yöntemleri artık kullanılamıyor.
  • Federated Credential Management API'si artık FederatedCredential yerine yeni bir IdentityCredential türü kullanıyor. Bu, özellik algılama için kullanılabilir ancak büyük ölçüde görünmez bir değişikliktir.
  • Giriş işlevini navigator.credentials.get() ve FederatedCredential.prototype.login() kombinasyonundan navigator.credentials.get() birimine taşıyın.
  • Manifest'teki iptal uç noktası artık etkin değil.
  • navigator.credentials.get() çağrıları için federated alanı yerine identity alanı kullanın.
  • url artık configURL oldu ve bir navigator.credentials.get() çağrısının yolu yerine manifest JSON dosyasının tam URL'si olmalıdır.
  • nonce artık navigator.credentials.get() için isteğe bağlı bir parametredir.
  • hint artık navigator.credentials.get() için bir seçenek olarak kullanılamıyor.
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (Haziran 2022)

Chrome 103 (Mayıs 2022)

  • Masaüstü ortamlarını destekler.
  • Masaüstünde RP başına ayarları destekler.
  • İstemci meta verisi uç noktası artık isteğe bağlıdır. Bu uç noktada, gizlilik politikası URL'si de isteğe bağlıdır.
  • Dokümanda CSP connect-src kullanımıyla ilgili bir uyarı eklendi.

Kaynaklar