FedCM'de otomatik yeniden kimlik doğrulamayı destekleme

Chrome, FedCM'de otomatik yeniden kimlik doğrulamayı destekler

Federated Credential Management API (FedCM), gizliliği korumaya yönelik kimlik federasyonu için bir web API'sidir. Kimlik federasyonunda, RP (güvenilir taraf) yeni bir kullanıcı adı ve şifre gerektirmeden kullanıcıya hesap sağlamak için bir IdP'den (kimlik sağlayıcı) yararlanır.

FedCM, tarayıcıya RP ile IdP'nin bilgi alışverişinde bulunduğu bağlamı anlama olanağı tanır. Kullanıcıyı paylaşılan bilgiler ve ayrıcalık düzeyleri hakkında bilgilendirir ve istenmeyen kötüye kullanımları önler. FedCM, Chrome'da 108 sürümünden beri kullanılabilir.

Chrome 115'te FedCM, kullanıcı deneyimlerini iyileştiren ve ilk izinden sonra RP ile daha kolay bir şekilde yeniden kimlik doğrulama yapılmasını sağlayan otomatik yeniden kimlik doğrulama desteği alıyor.

Otomatik yeniden kimlik doğrulama

Şu anda, bir kullanıcı FedCM API aracılığıyla bir IdP'ye sahip bir RP'de birleşik hesap oluşturduktan sonra, web sitesini tekrar ziyaret ettiğinde kullanıcı arayüzünde aynı adımları uygulaması gerekir. Bu, kullanıcının kimliğini yeniden doğrulamak ve oturum açma akışına devam etmek için açıkça ve manuel olarak yeniden onaylaması gerektiği anlamına gelir.

Belirli bir kullanıcı deneyimi, kullanıcı izlemeyi önlemek için birleşik hesabı oluşturmadan önce (FedCM'nin ana hedeflerinden biri) anlamlı olsa da kullanıcı bu işlemi bir kez yaptıktan sonra gereksiz yere hantal olur: Kullanıcı, RP ile IdP arasında iletişime izin verdikten sonra, daha önce kabul ettiği bir şey için başka bir açık kullanıcı onayı zorunlu kılmak gizlilik veya güvenlik açısından bir avantaj sağlamaz. Bu nedenle, RP'lerin geri gelen kullanıcıları için seçebilecekleri daha basit bir kullanıcı deneyimi sunuyoruz.

FedCM otomatik yeniden kimlik doğrulama ("auto-reauthn" kısaca) özelliği, kullanıcıların FedCM'yi kullanarak ilk kimlik doğrulamalarını yaptıktan sonra geri geldiklerinde otomatik olarak yeniden kimlik doğrulamasına izin verebilir. Buradaki "ilk kimlik doğrulama", kullanıcının aynı tarayıcı örneğinde FedCM'nin oturum açma iletişim kutusunda ilk kez "Böyle devam et..." düğmesine dokunarak hesap oluşturması veya RP'nin web sitesinde oturum açması anlamına gelir.

Kullanıcının hesap oluşturmak veya kimlik doğrulamak için dokunduğu iletişim kutusu.
Kullanıcı, hesap oluşturmak veya kimlik doğrulamak için dokunduğu iletişim kutusu.

Otomatik yeniden kimlik doğrulama için bir seçenek belirleyin

Daha iyi bir kullanıcı deneyimi sunmak ve spesifikasyona uygunluk sağlamak için otomatik yeniden kimlik doğrulamayı kullanıma sunuyoruz. Ancak kod değişikliği yapılmadığı için varsayılan kullanıcı deneyimi farklı olacaktır. Otomatik yeniden kimlik doğrulama kullanılabilir durumdayken tarayıcı, geliştiricilerin mediation seçeneğiyle sağladığı navigator.credentials.get() seçeneğinde belirlediğinize göre davranışını değiştirir.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

mediation, Kimlik Bilgisi Yönetimi API'sindeki bir mülktür. PasswordCredential ve FederatedCredential için olduğu gibi aynı şekilde çalışır ve PublicKeyCredential tarafından da kısmen desteklenir. Özellik aşağıdaki dört değeri kabul eder:

  • 'required': Devam etmek için her zaman bir arabuluculuk gerekir (ör. kullanıcı arayüzündeki "Devam" düğmesini tıklama). Kullanıcılarınızın kimlik doğrulamanın gerekli olduğu her durumda açıkça izin vermesi gerekiyorsa bu seçeneği belirleyin.
  • 'optional'(varsayılan): Mümkünse otomatik yeniden yetkilendirme, mümkün değilse arabuluculuk gerekir. Oturum açma sayfasında bu seçeneği belirlemenizi öneririz.
  • 'silent': Mümkünse otomatik olarak yeniden kimlik doğrulama, mümkün değilse uyumlulaştırma gerektirmeden sessizce başarısız olur. Özel oturum açma sayfası dışındaki ancak kullanıcıların oturumunu açık tutmak istediğiniz sayfalarda (ör. bir kargo web sitesindeki ürün sayfası veya bir haber web sitesindeki makale sayfası) bu seçeneği tercih etmenizi öneririz.
  • 'conditional': WebAuthn için kullanılır ve şu anda FedCM için kullanılamaz.

Bu çağrıyla, otomatik yeniden yetkilendirme aşağıdaki koşullarda gerçekleşir:

  • FedCM kullanılabilir. Örneğin, kullanıcı FedCM'yi genel olarak veya ayarlarda RP için devre dışı bırakmamıştır.
  • Kullanıcı, bu tarayıcıda web sitesinde oturum açmak için FedCM API ile yalnızca bir hesap kullandı.
  • Kullanıcı, IdP'de bu hesapla oturum açmıştır.
  • Otomatik yeniden yetkilendirme son 10 dakika içinde gerçekleşmedi.
  • RP, önceki oturum açmadan sonra navigator.credentials.preventSilentAccess() çağrısı yapmadı.

Yukarıdaki koşullar karşılandığında, FedCM navigator.credentials.get() çağrıldığı anda kullanıcının kimliğini otomatik olarak yeniden doğrulama girişimi başlar.

FedCM üzerinden otomatik olarak kimlik doğrulaması yapan bir kullanıcı.

preventSilentAccess() ile uyumlulaştırmayı zorunlu kılma

Kullanıcıların oturumlarını kapattıktan hemen sonra otomatik olarak kimlik doğrulamasını yapmak çok iyi bir kullanıcı deneyimi sunmaz. Bu nedenle FedCM, bu davranışı önlemek için otomatik yeniden yetkilendirmeden sonra 10 dakikalık bir bekleme süresi uygular. Bu, kullanıcı 10 dakika içinde tekrar oturum açmadığı sürece otomatik yeniden kimlik doğrulamanın en fazla 10 dakikada bir gerçekleşeceği anlamına gelir. RP, kullanıcı RP'den açıkça çıkış yaptığında (ör. çıkış düğmesini tıklayarak) tarayıcıdan otomatik yeniden kimlik doğrulamayı devre dışı bırakmasını açıkça istemek için navigator.credentials.preventSilentAccess() işlevini çağırmalıdır.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Kullanıcılar, otomatik yeniden yetkilendirmeyi ayarlardan devre dışı bırakabilir.

Kullanıcılar, ayarlar menüsünden otomatik yeniden yetkilendirmeyi devre dışı bırakabilir:

  • Masaüstünde Chrome'da chrome://password-manager/settings > Oturumu otomatik olarak aç'a gidin.
  • Android Chrome'da Ayarlar > Şifre Yöneticisi'ni açın > Sağ üst köşedeki dişli simgesine dokunun > Otomatik oturum açma'yı seçin.

Kullanıcı, açma/kapatma düğmesini devre dışı bırakarak otomatik yeniden kimlik doğrulama davranışını tamamen devre dışı bırakabilir. Kullanıcı Chrome örneğinde bir Google Hesabı'nda oturum açtıysa ve senkronizasyon etkinse bu ayar cihazlar arasında depolanır ve senkronize edilir.

Geri bildirim

FedCM'yi test ediyorsanız geri bildiriminizi veya karşılaştığınız sorunları crbug.com adresindeki "Blink>Identity>FedCM" bileşeni altında paylaşabilirsiniz.

Fotoğraf: Noah Samuel Franz, Unsplash