Gizliliği korumaya yönelik kimlik federasyonu için bir web API'si.
FedCM nedir?
FedCM (Federated Credential Management), birleşik kimlik hizmetlerinde (ör. "... ile oturum aç") üçüncü taraf çerezlerine veya gezinme yönlendirmelerine ihtiyaç duymayan, gizliliği korumaya yönelik bir yaklaşımdır.
Uygulama durumu
- Chrome Platformunun Durumu
- FedCM, Chrome 108 ile gönderildi.
- FedCM teklifi herkese açık tartışmaya açık.
- FedCM henüz diğer tarayıcılarda desteklenmemektedir.
Bundan sonra kimlik sağlayıcılardan (IdP), güvenen taraflardan (RP) ve tarayıcı tedarikçilerinden aldığımız geri bildirimler doğrultusunda bir dizi yeni özellik sunmayı planlıyoruz. Kimlik sağlayıcıların FedCM'yi benimseyeceğini umuyoruz ancak FedCM'nin hâlâ aktif olarak geliştirilmekte olan bir API olduğunu unutmayın.
Geriye dönük uyumlu olmayan değişiklikleri dağıtmanın zorluklarını en aza indirmek için kimlik sağlayıcılar için iki önerimiz var:
- API'nin geliştikçe güncellemeler göndereceğimiz bültenimize abone olun.
- IdP'lerin, API olgunlaşırken JavaScript SDK'larını kullanarak FedCM API'yi dağıtmasını ve RP'lerin SDK'ları kendi kendine barındırmasını engellemesini öneririz. Bu sayede, kimlik sağlayıcılar API geliştikçe tüm güvenen taraflarından yeniden dağıtma isteğinde bulunmak zorunda kalmadan değişiklik yapabilir.
FedCM'ye neden ihtiyacımız var?
Son on yılda kimlik federasyonu, web'de kimlik doğrulama çıtasını site başına kullanıcı adları ve şifrelere kıyasla güvenilirlik, kullanım kolaylığı (ör. şifresiz tek oturum açma) ve güvenlik (ör. kimlik avı ve kimlik bilgisi doldurma saldırılarına karşı daha iyi direnç) açısından yükseltmede merkezi bir rol oynadı.
Kimlik federasyonu sayesinde, 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.
Maalesef kimlik federasyonunun kullandığı mekanizmalar (iFrame'ler, yönlendirmeler ve çerezler), web'de kullanıcıları izlemek için aktif olarak kötüye kullanılıyor. Kullanıcı aracısı, kimlik federasyonu ile izlemeyi ayırt edemediğinden, çeşitli kötüye kullanım türlerine yönelik azaltıcı önlemler kimlik federasyonunun dağıtımını daha da zorlaştırır.
Federated Credential Management API (FedCM), web'deki birleşik kimlik akışları için kullanım alanına özel bir soyutlama sağlar. Bu API, kullanıcıların web sitelerine giriş yapmak için kimlik sağlayıcılardan hesap seçmesine olanak tanıyan tarayıcı aracılı bir iletişim kutusu sunar.
FedCM, web'deki kimliği iyileştirmeye yönelik çok adımlı bir yolculuktur. İlk adımda, üçüncü taraf çerez kısıtlamalarının birleşik kimlik üzerindeki etkisini azaltmaya odaklanıyoruz (Daha fazla adım için Yol Haritası bölümüne bakın).
Bu durumdan hangi öğeler etkilenir?
Topluluk çabaları ve yaptığımız araştırmalar sonucunda, üçüncü taraf çerez kısıtlamalarından etkilenen kimlik federasyonuyla ilgili birkaç entegrasyon olduğunu öğrendik:
- OpenID Connect Ön Kanal Oturum Kapatması
- OpenID Connect Oturum Yönetimi
- Iframe tabanlı arka plan jetonunun yenilenmesi
- Iframe tabanlı giriş widget'ları
FedCM'nin ilk hedefi, üçüncü taraf çerez kısıtlamalarının kimlik federasyonu üzerindeki etkisini azaltmaktır. Bu, etkilenmesini beklediğimiz alanlardır. Listede yer almayan başka kullanım alanları varsa etkileşebilir ve geri bildirim paylaşabilirsiniz.
Diğer API'ler için güven sinyali olarak FedCM
FedCM, birleşik kimliği yönetmenin yanı sıra diğer Özel Korumalı Alan API'leri için güven sinyali görevi de görür.
Chrome 131'den itibaren Storage Access API (SAA), güven sinyali olarak FedCM'yi kullanır. Bu entegrasyon, hem kimlik doğrulama için FedCM'den hem de kaynak dışı iFrame'lerin gerekli depolamaya erişmesini sağlamak için SAA'dan yararlanan web siteleri için yararlıdır.
Bir kullanıcı, RP'nin etkinleştirilmesiyle FedCM ile kimlik doğrulaması yaptığında, IdP'nin RP'nin web sitesine yerleştirilmiş içeriği, ek bir kullanıcı istemi gerekmeden kendi üst düzey çerezlerine otomatik olarak depolama erişimi elde etmek için requestStorageAccess()
yöntemini çağırabilir. İzin yalnızca kullanıcının FedCM ile oturum açtığı ve FedCM oturum açma durumu etkin olduğu sürece otomatik olarak verilir. Daha fazla bilgi için Storage Access API belgelerini okuyun.
FedCM'yi kimler kullanmalıdır?
FedCM'nin yalnızca aşağıdaki koşulların tümü geçerliyse sizin için yararlı olacağını umuyoruz:
- Kimlik sağlayıcı (IdP) iseniz.
- Üçüncü taraf çerez kısıtlamalarından etkileniyorsunuz.
- RP'leriniz üçüncü taraf siteleriyse. RP'leriniz anlamlı bir şekilde alakalı sitelerse ilgili web sitesi grupları sizin için daha iyi olabilir.
IdP'siniz
FedCM için bir kimlik sağlayıcıdan destek gerekir. Güvenen taraf, FedCM'yi bağımsız olarak kullanamaz. RP iseniz kimlik sağlayıcınızdan talimat vermesini isteyebilirsiniz.
Üçüncü taraf çerez kısıtlamalarından etkileniyorsanız
FedCM'yi yalnızca mevcut entegrasyonunuz üçüncü taraf çerez kısıtlamalarından etkileniyorsa kullanmalısınız.
Kimlik federasyonunuzun üçüncü taraf çerezleri kullanılamadığında çalışmaya devam edip etmeyeceğinden emin değilseniz Chrome'da üçüncü taraf çerezlerini engelleyerek bu durumun bir web sitesindeki etkisini test edebilirsiniz.
Üçüncü taraf çerezleri olmadan kimlik federasyonunuz üzerinde keşfedilebilir bir etki yoksa FedCM olmadan mevcut entegrasyonunuzu kullanmaya devam edebilirsiniz.
Neleri kontrol etmeniz gerektiğinden emin değilseniz üçüncü taraf çerez kısıtlamalarının etkilemesi beklenen bilinen özellikler hakkında daha fazla bilgi edinin.
RP'leriniz üçüncü taraftır
RP'leri IdP ile birinci taraf ilişkisi olan bir kimlik sağlayıcıysanız İlgili Web Sitesi Grupları daha iyi bir seçenek olabilir. İlgili Web Sitesi Grupları (RWS), kuruluşların siteler arasındaki ilişkileri tanımlamasını sağlar. Böylece tarayıcılar, üçüncü taraf çerezinin belirli amaçlar doğrultusunda sınırlı şekilde erişimine izin verebilir. Bu, üçüncü taraf çerezleri başka şekilde kısıtlanmış olsa bile üçüncü taraf çerezlerinin anlamlı bir şekilde ilişkili site grupları arasında çalışmasına olanak tanır.
Kullanıcılar FedCM ile nasıl etkileşim kuracak?
FedCM'nin birincil odak noktası, üçüncü taraf çerez kısıtlamalarının etkisini azaltmaktır. Kullanıcılar, Chrome'un kullanıcı ayarlarından FedCM'yi etkinleştirebilir veya devre dışı bırakabilir.
FedCM, protokolden bağımsız olacak şekilde tasarlanmıştır ve kimlik doğrulamayla ilgili aşağıdaki işlevleri sunar.
İşleyiş şeklini öğrenmek için demomuza göz atın.
Güvenilir bir tarafta oturum açma
FedCM'nin iki kullanıcı arayüzü modu vardır:
Pasif mod. FedCM isteminin görünmesi için pasif modda kullanıcı etkileşimi gerekmez. Kullanıcı güvenen taraf (RP) web sitesine ulaştığında, navigator.credentials.get()
çağrılırsa ve kullanıcı IdP'de oturum açarsa FedCM oturum açma iletişim kutusu görünebilir.
Etkin mod. Etkin modda, FedCM istemi tetiklemek için kullanıcı etkileşimi (ör. düğme tıklaması) gerekir.
Kullanıcının, kimlik sağlayıcısı olan RP'de hesabı yoksa RP'nin hizmet şartları ve gizlilik politikası (varsa) gibi ek açıklama metinlerinin yer aldığı bir kayıt iletişim kutusu gösterilir.
Kullanıcı, Böyle devam et'e dokunarak oturum açma işlemini tamamlayabilir. İşlem başarılı olursa tarayıcı, kullanıcının IdP ile RP'de birleşik bir hesap oluşturduğunu depolar.
RP'lerin, FedCM'yi desteklemeyen tarayıcılarda çalışması beklenir. Kullanıcılar bu tür tarayıcılarda FedCM olmayan mevcut bir oturum açma sürecini kullanabilir. FedCM'de oturum açma özelliğinin işleyiş şekli hakkında daha fazla bilgi edinin.
FedCM'yi etkinleştirmek veya devre dışı bırakmak için ayarlar
Kullanıcılar FedCM'yi pasif modda etkinleştirebilir veya devre dışı bırakabilir. Giriş isteği bir kullanıcı hareketiyle başlatıldığı ve tarayıcı kullanıcıların giriş akışını tamamlamasına yardımcı olacağı için bu durum etkin modu etkilemez.
Masaüstü
Kullanıcılar, Chrome için FedCM'yi masaüstünde chrome://settings/content/federatedIdentityApi
adresinden etkinleştirebilir veya devre dışı bırakabilir.
Yapay Zeka
Android'de Chrome'da FedCM'yi etkinleştirmek veya devre dışı bırakmak için kullanıcılar Chrome'un Ayarlar > Site ayarları > Üçüncü taraf oturum açma bölümüne gidip açma/kapatma düğmesini değiştirebilir.
İstem bekleme süresi
Kullanıcı kullanıcı arayüzünü manuel olarak kapatırsa ayarlar kullanıcı arayüzüne geçici olarak bir giriş eklenir ve kullanıcı arayüzü bir süre boyunca aynı web sitesinde gösterilmez. Kullanıcı arayüzü, süre dolduktan sonra yeniden etkinleştirilir ancak art arda kapatma işlemi yapıldığında süre katlanarak artırılır. Örneğin, Chrome'da:
Arka arkaya kapalı kalma sayısı | FedCM isteğinin atlandığı dönem |
---|---|
1 | İki saat |
2 | Bir gün |
3 | Bir hafta |
4+ | Dört hafta |
Diğer tarayıcılar kendi farklı bekleme sürelerini tanımlayabilir.
Kullanıcılar, ayarlar sayfasına giderek veya PageInfo kullanıcı arayüzünü (URL çubuğunun yanındaki kilit simgesi) tıklayıp izni sıfırlayarak FedCM'yi RP'de manuel olarak yeniden etkinleştirebilir.
Yol Haritası
FedCM'de bir dizi değişiklik yapmak için çalışıyoruz. Daha fazla bilgi için Güncellemeler bölümüne bakın.
- Değişiklik Günlüğü: Federated Credential Management API güncellemeleri.
Kimlik sağlayıcılardan, RP'lerden ve tarayıcı tedarikçilerinden duyduğumuz sorunlar da dahil olmak üzere hâlâ yapılması gereken birkaç şey olduğunu biliyoruz. Bu sorunları nasıl çözeceğimizi biliyoruz:
- Kaynaklar arası iframe desteği: IdP'ler, kaynakta farklı bir iframe içinden FedCM'yi çağırabilir (güncelleme).
- Kişiselleştirilmiş düğme: IdP'ler, geri gelen kullanıcının kimliğini IdP'ye ait bir kaynak dışı iFrame'den (güncelleme) oturum açma düğmesinde gösterebilir.
- Metrikler uç noktası: Kimlik sağlayıcılara performans metrikleri sağlar.
Ayrıca, değerlendirdiğimiz veya prototipini oluşturduğumuz belirli öneriler de dahil olmak üzere aktif olarak araştırdığımız çözülmemiş sorunlar da var:
- CORS: FedCM getirmelerinin spesifikasyonunu iyileştirmek için Apple ve Mozilla ile görüşüyoruz.
- Çoklu IdP API'si: FedCM hesap seçicide birden fazla IdP'nin birlikte çalışabilmesini desteklemenin yollarını araştırıyoruz.
- IdP Oturum Açma Durumu API'si: Mozilla, zamanlama saldırısı sorunu tespit etti. Sorunu hafifletmek için IdP'nin proaktif olarak tarayıcıyı kullanıcının oturum açma durumu hakkında bilgilendirme yollarını araştırıyoruz. (update)
- IdP API'sinde oturum açma: Kullanıcının IdP'de oturumu açık değilse tarayıcı, çeşitli senaryoları desteklemek için kullanıcının RP'den ayrılmadan oturum açabileceği bir kullanıcı arayüzü sağlar.
Son olarak, Mozilla, Apple ve TAG incelemecilerinden aldığımız geri bildirimler doğrultusunda yapılması gerektiğini düşündüğümüz bazı noktalar var. Aşağıdaki açık sorular için en iyi çözümleri değerlendirmeye çalışıyoruz:
- Kullanıcıların anlayışını ve eşleştirme amacını iyileştirme: Mozilla'nın belirttiği gibi, farklı kullanıcı deneyimi formüllerini ve yüzey alanlarını, ayrıca tetikleyici ölçütleri keşfetmeye devam etmek istiyoruz.
- Kimlik Özellikleri ve Seçmeli Açıklama: TAG İnceleme Ekibimizin belirttiği gibi, kimlik özelliklerini (ör. e-postalar, yaş grupları, telefon numaraları vb.) daha fazla veya daha az seçerek paylaşabileceğiniz bir mekanizma sunmak istiyoruz.
- Gizlilikle İlgili Özellikleri Geliştirme: Mozilla'nın standartlar konusundaki görüşünde belirtildiği gibi, kimlik sağlayıcı körlüğü ve yönlendirilmiş tanımlayıcı gibi daha iyi gizlilik garantileri sunan mekanizmaları keşfetmeye devam etmek istiyoruz.
- WebAuthn ile ilişki: Apple tarafından önerildiği gibi, geçiş anahtarlarıyla ilgili ilerlemeyi görmek ve FedCM, Şifreler, WebAuthn ve WebOTP arasında tutarlı ve uyumlu bir deneyim sunmak için çalışma yapmaktan heyecan duyuyoruz.
- Giriş Durumu: Apple'ın Privacy CG'nin Giriş Durumu API'sinde önerdiği gibi, kullanıcının giriş durumunun tarayıcıların bilinçli kararlar almasına yardımcı olabilecek yararlı bir bilgi olduğu konusunda hemfikiriz ve bu durumun ne gibi fırsatlar sunacağını görmekten heyecan duyuyoruz. (update)
- İşletmeler ve Eğitim: FedID CG'de de belirtildiği gibi, FedCM tarafından yeterince desteklenmeyen ve üzerinde çalışmak istediğimiz birçok kullanım alanı vardır. Örneğin, ön kanalda çıkış yapma (bir kimlik sağlayıcının çıkış yapmak için RP'lere sinyal gönderme özelliği) ve SAML desteği.
- mDL'ler/VC'ler vb. ile ilişki: Bu özelliklerin FedCM'ye nasıl uyduğunu anlamak için çalışmaya devam edin (ör. Mobil Belge İsteği API'si).
FedCM API'sini kullanma
FedCM'yi kullanmak için Chrome'da hem kimlik sağlayıcıda hem de RP'de güvenli bir bağlama (HTTPS veya localhost) ihtiyacınız vardır.
FedCM ile entegrasyon için hesap listesi, beyan yayınlama ve (isteğe bağlı olarak) müşteri meta verileri için iyi bilinen bir dosya, yapılandırma dosyası ve uç noktalar oluşturmanız gerekir. FedCM, buradan RP'lerin IdP ile oturum açmak için kullanabileceği JavaScript API'lerini gösterir.
FedCM API'yi nasıl kullanacağınızı öğrenmek için FedCM geliştirici kılavuzunu inceleyin.
Etkileşim kurma ve geri bildirim paylaşma
- GitHub: Açıklamayı okuyun, sorun bildirin ve tartışmayı takip edin.
- Geliştirici desteği: Privacy Sandbox Developer Support repo'sunda soru sorabilir ve tartışmalara katılabilirsiniz.
E-Gizlilik yasalarına uygunluk
FedCM'yi bir kimlik sağlayıcı veya RP olarak kullanmak, kullanıcının terminal ekipmanında bilgi depolanmasını veya halihazırda depolanmış bilgilere erişilmesini gerektirir. Bu nedenle, Avrupa Ekonomik Alanı (AEA) ve Birleşik Krallık'taki e-Gizlilik yasalarına tabi olan ve genellikle kullanıcı izni gerektiren bir etkinliktir. FedCM'yi kullanımınızın, kullanıcı tarafından açıkça istenen bir online hizmeti sağlamak için kesinlikle gerekli olup olmadığını ve bu nedenle rıza şartından muaf olup olmadığını belirlemek sizin sorumluluğunuzdadır. Daha fazla bilgi için Özel Korumalı Alan Gizlilik ile İlgili Sık Sorulan Sorular bölümünü okumanızı öneririz.