Firebase Admin SDK, kendi sunucularınızı Firebase Authentication ile entegre etmenize olanak tanır. Kullanıcılarınızı veya kimlik doğrulama jetonlarını yönetmek için Firebase Admin SDK'ü kullanabilirsiniz. Bunu yapmanın birkaç nedeni vardır:
Kullanıcı Yönetimi
Firebase kullanıcılarınızı yönetmek için Firebase konsolunu ziyaret etmek her zaman uygun olmayabilir. Yönetici kullanıcı yönetimi API'si, aynı kullanıcılara programatik erişim sağlar. Hatta Firebase konsolunun yapamayacağı işlemleri yapmanıza olanak tanır. Örneğin, kullanıcının tüm verilerini almak ve kullanıcının şifresini, e-posta adresini veya telefon numarasını değiştirmek gibi.
Özel Kimlik Doğrulama
Harici bir kullanıcı sistemini Firebase ile entegre edebilirsiniz. Örneğin, halihazırda mevcut bir kullanıcı veritabanınız olabilir veya Firebase Authentication'ün doğal olarak desteklemediği bir üçüncü taraf kimlik sağlayıcıyla entegrasyon yapmak isteyebilirsiniz.
Bunu yapmak için kullanıcıyı tanımlayan rastgele iddialar içeren özel jetonlar oluşturabilirsiniz. Bu özel jetonlar daha sonra bir istemci uygulamasında Firebase Authentication hizmetinde oturum açmak ve jetonun iddialarında açıklanan kimliği üstlenmek için kullanılabilir. Bu kimlik daha sonra Cloud Storage gibi diğer Firebase hizmetlerine erişirken kullanılır.
Kimlik Doğrulama
Firebase Authentication, öncelikle Cloud Storage gibi diğer hizmetlere erişimi kısıtlamak için uygulamanızın kullanıcılarını tanımlamak amacıyla kullanılır. Bu hizmeti kendi sunucunuzda bu kullanıcıları tanımlamak için de kullanabilirsiniz. Bu, Firebase Authentication ile oturum açmış kullanıcılar adına sunucu tarafı mantığını güvenli bir şekilde gerçekleştirmenize olanak tanır.
Bunu yapmak için Firebase Authentication ile oturum açmış bir istemci uygulamasından kimlik jetonu alabilir ve jetonu sunucunuza gönderilen bir isteğe ekleyebilirsiniz. Ardından sunucunuz kimlik jetonunu doğrular ve kullanıcıyı tanımlayan iddiaları (uid
, giriş yaptıkları kimlik sağlayıcı vb. dahil) ayıklayıp çıkarır. Bu kimlik bilgileri, sunucunuz tarafından kullanıcı adına işlem yapmak için kullanılabilir.
Firebase Admin SDK, kullanıcılarınızı yönetmenize, özel jetonlar oluşturmanıza ve kimlik jetonlarını doğrulamanıza olanak tanıyarak yukarıdaki kimlik doğrulama görevlerini tamamlamanıza yönelik yöntemler sağlar.
Özel Kullanıcı Hak Talepleri
Bazı durumlarda, e-posta/şifre, Google, Facebook, telefon gibi desteklenen Firebasekimlik doğrulama sağlayıcılarından biriyle oturum açmış kullanıcılar için ayrıntılı erişim denetimi uygulamak isteyebilirsiniz. Bu özelliği, özel kullanıcı iddiaları ve uygulama güvenlik kurallarının bir kombinasyonu sağlar. Örneğin, Firebase Authentication e-posta ve şifre sağlayıcısıyla oturum açmış bir kullanıcının erişim denetimi, özel iddialar kullanılarak tanımlanabilir.
Kullanıcı yönetimi
Firebase Admin SDK, Firebase kullanıcılarınızı yüksek ayrıcalıklarla yönetmek için bir API sağlar. Yönetici kullanıcı yönetimi API'si, kullanıcının mevcut kimlik bilgilerini gerektirmeden ve istemci tarafında hız sınırlamasından endişelenmenize gerek kalmadan kullanıcıları programatik olarak alma, oluşturma, güncelleme ve silme olanağı sunar.
Kullanıcıları yönetmeÖzel jeton oluşturma
Özel jeton oluşturmanın birincil amacı, kullanıcıların harici veya eski bir kimlik doğrulama mekanizmasına karşı kimlik doğrulamasına izin vermektir. Bu, kontrol ettiğiniz bir OAuth sağlayıcı (ör. LDAP sunucunuz) veya Firebase tarafından doğal olarak desteklenmeyen bir üçüncü taraf OAuth sağlayıcı (ör. Instagram veya LinkedIn) olabilir.
Firebase Admin SDK, özel jeton oluşturmak için yerleşik bir yönteme sahiptir. Üçüncü taraf JWT kitaplıklarını kullanarak herhangi bir dilde programatik olarak özel jetonlar da oluşturabilirsiniz.
Sunucunuz, benzersiz bir tanımlayıcı (uid
) içeren özel bir jeton oluşturmalı ve bu jetonu Firebase'da oturum açmak için kullanacak bir istemci uygulamasına iletmelidir. Özel jeton oluşturma süreciyle ilgili daha fazla bilgi ve kod örnekleri için Özel jeton oluşturma başlıklı makaleyi inceleyin.
Kimlik jetonu doğrulaması
Firebase istemci uygulamanız arka uç sunucunuzla iletişim kuruyorsa sunucunuzda şu anda oturum açmış olan kullanıcıyı tanımlamanız gerekebilir. Böylece, sunucu tarafı mantığını kullanıcı adına yürütebilirsiniz. Bu işlemi, kullanıcı bir Firebase uygulamasında oturum açtığında Firebase tarafından oluşturulan kimlik jetonlarını kullanarak güvenli bir şekilde yapabilirsiniz. Kimlik jetonları OpenID Connect spesifikasyonuna uygundur ve kullanıcıyı tanımlayan verilerin yanı sıra profil ve kimlik doğrulamayla ilgili diğer bazı bilgileri içerir. Bu jetonları kendi arka uçlarınızdan gönderebilir, doğrulayabilir ve inceleyebilirsiniz. Bu sayede, oturum açmış kullanıcıyı güvenli bir şekilde tanımlayabilir ve kendi arka uç kaynaklarınızda yetkilendirebilirsiniz.
Firebase Admin SDK, kimlik jetonlarını doğrulamak için yerleşik bir yönteme sahiptir. Üçüncü taraf JWT kitaplıklarını kullanarak kimlik jetonlarını programatik olarak herhangi bir dilde de doğrulayabilirsiniz. Kimlik jetonu doğrulama süreci hakkında daha fazla bilgi ve kod örnekleri için Kimlik jetonlarını doğrulama başlıklı makaleyi inceleyin.
Özel kullanıcı iddiaları
Firebase Admin SDK, kullanıcı hesaplarında özel özellikler ayarlamanıza olanak tanır. Özel kullanıcı iddialarıyla kullanıcılara farklı erişim düzeyleri (roller) verebilirsiniz. Bu erişim düzeyleri daha sonra uygulamanın güvenlik kurallarında zorunlu kılınır.
Özel hak talepleri, Firebase Admin SDK aracılığıyla bir kullanıcıda değiştirildikten sonra kimlik jetonları aracılığıyla istemci tarafındaki kimliği doğrulanmış kullanıcılara dağıtılır. Kimlik jetonu, bu özel iddiaları iletmek için güvenilir bir mekanizmadır ve kimliği doğrulanmış tüm erişim, ilişkili isteği işlemeden önce kimlik jetonunu doğrulamalıdır.
Özel Hak Talepleriyle Erişimi Kontrol Etme