Federated Credential Management API güncellemeleri

Federated Credential Management API Chrome 108'de gönderildi ancak gelişmeye devam etmesi bekleniyor. Planlanmış zarar veren bir değişiklik yoktur.

Bu güncellemeler kimler için oluşturuldu?

Aşağıdaki durumlarda bu güncellemeler tam size göredir:

  • Federated Credential Management API kullanan bir IdP iseniz
  • Bir IdP veya RP'yseniz ve API'yi kullanım alanınıza uygun şekilde genişletmek istiyorsanız (ör. FedID CG deposundaki tartışmaları gözlemliyor veya bunlara katılıyor ve API'de yapılan değişiklikleri anlamak istiyorsunuz).
  • Bir tarayıcı tedarikçisi olduğunuzu ve API'nin uygulama durumunu öğrenmek istiyorsunuz.

Bu API'yi kullanmaya yeni başladıysanız veya henüz denemediyseniz Federated Credential Management API'nin tanıtımını okuyun.

Değişiklik günlüğü

FedCM API değişikliklerinden haberdar olmak için blogumuza veya bültenimize göz atın.

Chrome 125 (Nisan 2024)

Chrome 123 (Şubat 2024)

  • Alan İpucu API'si için destek eklendi. Alan İpucu API'si, RP'lerin bir FedCM API çağrısında domainHint mülkü belirterek kullanıcı için yalnızca eşleşen hesapları göstermesini sağlar.

Chrome 122 (Ocak 2024)

  • Bağlantıyı Kes API desteği eklendi. Bağlantıyı Kesme API'si, üçüncü taraf çerezlerine gerek kalmadan kullanıcılarının IdP'nin hesabıyla bağlantısını kesmelerini sağlar.
  • Kısıtlanmış taraf ve IdP aynı sitede olduğunda /.well-known/web-identity kontrolü artık atlanıyor.
  • Alt kaynaklar artık aynı sitenin giriş durumunu ayarlayabilir.

Chrome 121 (Aralık 2023)

  • FedCM otomatik yeniden kimlik doğrulama işlemini tetiklemek için esnek koşul:
    • FedCM'deki otomatik yeniden kimlik doğrulama özelliği yalnızca kullanıcı geri döndüğünde tetiklenir. Bu, otomatik yeniden kimlik doğrulamanın tetiklenmesi için kullanıcının, FedCM'yi kullanarak her tarayıcı örneğinde bir kez RP'de oturum açması gerektiği anlamına gelir. Bu koşul başlangıçta izleyicilerin bir kimlik sağlayıcı (IdP) gibi davranarak 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ırma riskini azaltmak amacıyla kullanıma sunulmuştu. Bununla birlikte, izleyici, kısıtlanmış taraf bağlamında üçüncü taraf çerezlerine erişebiliyorsa bu tasarım, gizlilik avantajını garanti edemez. FedCM, üçüncü taraf çerezleriyle mümkün olan özelliklerin yalnızca bir alt kümesini sağlar. Bu nedenle, izleyicinin kısıtlanmış taraf bağlamında üçüncü taraf çerezlerine zaten erişimi varsa FedCM'ye erişim ek bir gizlilik riski oluşturmaz.
      Üçüncü taraf çerezlerinin meşru kullanımları olduğundan ve bu durumun gevşetilmesi kullanıcı deneyimini iyileştireceğinden, bu davranış Chrome 121 sürümünden itibaren değişecektir. Bir kullanıcıyı geri gelen olarak kabul etme koşulunun gevşetilmesine karar verdik: IdP bağlamında üçüncü taraf çerezleri IdP'de kullanılabiliyorsa Chrome, IdP'nin approved_clients listesi aracılığıyla belirtilen kullanıcı hesap durumuyla ilgili iddiasına güvenecek ve geçerliyse otomatik yeniden kimlik doğrulamayı tetikler. Üçüncü taraf çerezlerine şu yollarla 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 gelecekte üçüncü taraf çerezlerine erişimi kaybettiğinde, bir kullanıcı daha önce FedCM kullanıcı arayüzünde hiçbir zaman açıkça izin vermemişse (ör. Farklı devam et düğmesini tıklayarak) yeni kullanıcı olarak değerlendirilmeye devam eder.
      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'de aşağıdaki üç özellik için destek eklendi:
    • Login Status API: Login Status API, bir web sitesinin (özellikle bir IdP'nin) tarayıcıya kullanıcısının giriş durumunu bildirdiği bir mekanizmadır. Bu API ile tarayıcı, IdP'ye gönderilen gereksiz istekleri azaltabilir ve olası zamanlama saldırılarını hafifletebilir. Login Status API, FedCM için bir zorunluluktur. Bu değişiklikle birlikte, üçüncü taraf çerezleri engellendiğinde FedCM'nin etkinleştirilmesi için chrome://flags/#fedcm-without-third-party-cookies işareti artık gerekli olmayacaktır.
    • 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 olarak yeniden kimlik doğrulama yapıldığında ya da açık bir uyumlulaştırma gerçekleştiğinde hem IdP hem de RP ile Farklı devam et düğmesine dokunarak açık bir kullanıcı izninin alınıp alınmadığını paylaşır. Paylaşım, yalnızca IdP ve RP iletişimi için kullanıcı izni verildikten sonra gerçekleşir.

Chrome 117 (Eylül 2023)

Chrome 116 (Ağustos 2023)

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

Chrome 115 (Haziran 2023)

  • Kullanıcıların FedCM'yi kullanarak ilk kimlik doğrulamalarından sonra geri döndüklerinde otomatik olarak yeniden kimlik doğrulaması yapmasını sağlayan otomatik yeniden kimlik doğrulama desteği eklendi. Bu, kullanıcı deneyimini iyileştirir ve ilk izinden sonra RP'ye yeniden kimlik doğrulama işleminin daha kolay olmasını sağlar. FedCM otomatik yeniden kimlik doğrulama 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 amacıyla Origin üst bilgisini (Referer başlığı yerine) kontrol etmesi gerekir.
  • FedCM için kaynaklar arası iframe desteği kullanıma sunuldu. Yerleştirici, yerleşik kaynaklar arası iframe'de FedCM API'ye izin vermek için Permissions-Policy'yi identity-credentials-get belirtmelidir. Kaynaklar arası iframe'in örneğine göz atabilirsiniz.
  • Yeni bir Chrome işareti chrome://flags/#fedcm-without-third-party-cookies eklendi. Bu işaret ile üçüncü taraf çerezlerini engelleyerek Chrome'da FedCM işlevini test edebilirsiniz. FedCM belgelerinden daha fazla bilgi edinebilirsiniz.

Chrome 108 (Ekim 2022)

  • "üst düzey manifest" artık dokümanda "iyi bilinen dosya" olarak adlandırılıyor. Uygulama değişikliklerine gerek yoktur.
  • "IdP manifest" artık dokümanda "yapılandırma dosyası" olarak adlandırılıyor. Uygulama değişikliğine gerek yoktur.
  • "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ının (IdP), Referer üstbilgisinin kimlik jetonu uç noktasına önceden kaydedilen kaynak RP ile eşleşip eşleşmediğini kontrol etmesi gerekir.
  • Üst düzey manifestin adı /.well-known/fedcm.json iken /.well-known/web-identity olarak değiştirildi ve 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 artık FederatedCredential yerine yeni bir IdentityCredential türünü kullanıyor. Bu, özellik algılama için kullanılabilir ancak onun dışındaki 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() hizmetine 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ını kullanın.
  • url artık configURL oldu ve navigator.credentials.get() çağrısının yolu yerine manifest JSON dosyasının tam URL'si olmalı.
  • nonce artık navigator.credentials.get() için isteğe bağlı bir parametredir.
  • hint, navigator.credentials.get() için artık bir seçenek olarak sunulmuyor.
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 kısıtlanmış taraf başına ayarları destekler.
  • İstemci meta verisi uç noktası artık isteğe bağlı. Bu uç noktada, gizlilik politikası URL'si de isteğe bağlıdır.
  • Dokümana CSP connect-src kullanımı hakkında uyarı eklendi.

Kaynaklar