FedCM'de otomatik yeniden kimlik doğrulamayı destekleme

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

Federated Credential Management API (FedCM), gizliliği korumaya yönelik kimlik federasyonu için bir web API'sidir. Kimlik federasyonuyla, bir RP (bağımlı taraf) kullanıcıya yeni bir kullanıcı adı ve şifre gerektirmeden hesap sağlaması için bir IdP'den (kimlik sağlayıcı) ihtiyaç duyar.

FedCM, tarayıcının RP ve IdP'nin bilgi alışverişi yaptığı bağlamı anlamasını sağlar. Kullanıcıyı, paylaşılan bilgi ve ayrıcalık düzeyleri hakkında bilgilendirir ve istenmeyen kötüye kullanımları önler. FedCM, 108 sürümünden beri Chrome'da kullanılmaktadır.

FedCM, Chrome 115'te otomatik yeniden kimlik doğrulama desteği alıyor. Bu destek, kullanıcı deneyimini iyileştirir ve ilk izinden sonra RP'de daha kolay bir yeniden kimlik doğrulama yapılmasını sağlar.

Otomatik yeniden kimlik doğrulama

Şu anda, bir kullanıcı FedCM API aracılığıyla bir IdP ile bir RP üzerinde birleşik hesap oluşturduktan sonra, web sitesini bir sonraki ziyaretinde kullanıcı arayüzünde aynı adımları uygulamalıdır. Bu, kullanıcının yeniden kimlik doğrulaması yapmak ve oturum açma akışına devam etmek için açık ve manuel olarak yeniden onaylaması gerektiği anlamına gelir.

Açık kullanıcı deneyimi, kullanıcı izlemeyi engellemek için birleşik hesabı oluşturmadan önce mantıklı olsa da (bu, FedCM'nin ana hedeflerinden biridir) kullanıcının bir kez geçmesinden sonra gereksiz bir şekilde zahmetli olur: Kullanıcı, RP ve IdP arasında iletişime izin verme izni verdikten sonra, daha önce onayladığı başka bir açık kullanıcı onayını zorunlu kılmanın gizlilik veya güvenlik avantajı olmaz. Bu nedenle, RP'lerin geri gelen kullanıcıları için seçebileceği daha basit bir kullanıcı deneyimi sunuyoruz.

FedCM otomatik yeniden kimlik doğrulama ("kısacası otomatik yeniden kimlik doğrulama"), 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ğlayabilir. Buradaki "ilk kimlik doğrulama", kullanıcının aynı tarayıcı örneğinde ilk kez FedCM'nin oturum açma iletişim kutusundaki "Şu kullanıcı olarak devam et..." düğmesine dokunarak bir hesap oluşturduğu veya kısıtlanmış tarafın web sitesinde oturum açtığı anlamına gelir.

Kullanıcının hesap oluşturmak veya kimlik doğrulaması için dokunduğu iletişim kutusu.
Kullanıcının 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 uyum sağlamak için otomatik yeniden kimlik doğrulamayı kullanıma sunuyoruz. Bununla birlikte, herhangi bir kod değişikliği olmadan varsayılan kullanıcı deneyimi farklı olacaktır. Otomatik yeniden kimlik doğrulama kullanılabilir olduğunda tarayıcı, geliştiricilerin navigator.credentials.get() ile sunduğu mediation seçeneğinde belirlediğiniz seçeneğe 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, Credential Management API'deki bir özelliktir, PasswordCredential ve FederatedCredential ile aynı şekilde davranır ve PublicKeyCredential tarafından da kısmen desteklenir. Mülk aşağıdaki dört değeri kabul eder:

  • 'required': Devam etmek için her zaman uyumlulaştırma gerektirir. Örneğin, kullanıcı arayüzündeki "Devam" düğmesini tıklamak. Kullanıcılarınızın kimliklerinin her doğrulanması gerektiğinde açıkça izin vermesi bekleniyorsa bu seçeneği belirleyin.
  • 'optional'(varsayılan): Mümkünse otomatik yeniden kimlik doğrulama, aksi takdirde uyumlulaştırma gerektirir. Oturum açma sayfasında bu seçeneği belirlemenizi öneririz.
  • 'silent': Mümkünse otomatik olarak yeniden kimlik doğrulama, aksi takdirde herhangi bir aracılık gerektirmeden sessizce başarısız olur. Bu seçeneği, özel oturum açma sayfası dışındaki ancak kullanıcıların oturumlarının açık kalmasını istediğiniz sayfalarda (örneğin, kargoyla ilgili bir web sitesindeki öğe sayfası veya haber web sitesindeki bir makale sayfası) tercih etmenizi öneririz.
  • 'conditional': WebAuthn için kullanılır ve şu anda FedCM tarafından kullanılamaz.

Bu çağrıda, otomatik yeniden kimlik doğrulama aşağıdaki koşullarda gerçekleşir:

  • FedCM kullanılabilir. Örneğin, kullanıcı, FedCM'yi global olarak veya ayarlarda RP için devre dışı bırakmamış olmalıdır.
  • Kullanıcı, bu tarayıcıdan web sitesinde oturum açmak için FedCM API'ye sahip yalnızca bir hesap kullanmıştır.
  • Kullanıcı, IdP'de bu hesapla oturum açmıştır.
  • Son 10 dakika içinde otomatik yeniden kimlik doğrulama işlemi gerçekleşmedi.
  • RP, önceki oturum açma işleminden sonra navigator.credentials.preventSilentAccess() adresini aramadı.

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

FedCM aracılığıyla otomatik olarak yeniden kimlik doğrulaması yapan bir kullanıcı.

preventSilentAccess() ile uyumlulaştırmayı zorunlu kılın

Kullanıcıların oturumlarını kapattıktan hemen sonra otomatik olarak yeniden kimlik doğrulaması yapılması, çok iyi bir kullanıcı deneyimi sunmaz. Bu nedenle, FedCM'nin bu davranışı önlemek için otomatik yeniden kimlik doğrulama işleminden sonra 10 dakikalık sessiz bir süresi vardır. 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ştiği anlamına gelir. RP, kullanıcı RP'den açık bir şekilde çıkış yaptığında (ör. oturumu kapatma düğmesini tıklayarak) tarayıcının otomatik yeniden kimlik doğrulamayı devre dışı bırakmasını açıkça istemek için navigator.credentials.preventSilentAccess() işlevini çağırır.

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

Kullanıcılar, ayarlarda otomatik yeniden kimlik doğrulamayı devre dışı bırakabilir

Kullanıcılar ayarlar menüsünden otomatik yeniden kimlik doğrulamayı devre dışı bırakabilir:

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

Açma/kapatma düğmesini devre dışı bıraktığınızda kullanıcı otomatik yeniden kimlik doğrulama davranışını hep birlikte devre dışı bırakabilir. Bu ayar, kullanıcının Chrome örneğinde bir Google Hesabı'nda oturum açmış olması ve senkronizasyonun etkin olması halinde cihazlar arasında depolanır ve senkronize edilir.

Geri bildirim

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

Fotoğraf, Noah Samuel Franz'ın Unsplash'ta çektiği fotoğraf