Firebase Authentication with Identity Platform sürümüne geçtiyseniz Firebase ile kullanıcılarınızın kimliğini doğrulayabilirsiniz istediğiniz SAML kimlik sağlayıcıyı kullanabilirsiniz. Bu, müşteri yolculuğunun SAML tabanlı TOA çözümünüz kullanarak Firebase uygulamanızda oturum açın.
Firebase Authentication yalnızca servis sağlayıcı tarafından başlatılan SAML akışını destekler.
Başlamadan önce
Kullanıcıların SAML kimlik sağlayıcısı kullanarak oturum açmasını sağlamak için öncelikle sağlayıcıdan gelen bilgiler:
- Sağlayıcının Varlık Kimliği: Kimlik sağlayıcıyı tanımlayan bir URI.
- Sağlayıcının SAML TOA URL'si: Kimlik sağlayıcının oturum açma URL'si sayfasını ziyaret edin.
- Sağlayıcının ortak anahtar sertifikası: Doğrulama için kullanılan sertifika kimlik sağlayıcı tarafından imzalanan jetonlar.
- Uygulamanızın Varlık Kimliği: Uygulamanızı, yani "hizmet"i tanımlayan bir URI sağlayıcı".
Yukarıdaki bilgileri edindikten sonra SAML'yi hesabınızın oturum açma sağlayıcısı olarak etkinleştirin Firebase projesi:
Henüz Firebase Authentication with Identity Platform yükseltmediyseniz yükseltme yapın. SAML kimlik doğrulaması yalnızca kullanılabilir.
Oturum açma sağlayıcıları sayfasında Firebase konsolunuzu, Yeni sağlayıcı ekle düğmesini ve ardından SAML'yi seçin.
Bu sağlayıcıya bir ad verin. Oluşturulan sağlayıcı kimliğini not edin:
saml.example-provider
gibi bir değerdir. Ekleme işlemi için bu kimliğe ihtiyacınız olacaktır oturum açma kodunu ekleyin.Kimlik sağlayıcınızın varlık kimliğini, TOA URL'sini ve ortak anahtarını belirtin sertifikası. Uygulamanızın (servis sağlayıcı) varlık kimliğini de belirtin. Bu değerler, sağlayıcınızın size atadığı değerlerle tam olarak eşleşmelidir.
Yaptığınız değişiklikleri kaydedin.
Uygulamanızın alanını henüz yetkilendirmediyseniz izin verilenler listesine ekleyin Kimlik Doğrulama > Ayarlar sayfasını kontrol edin.Firebase
Oturum açma akışını Firebase SDK'sı ile yönetme
Oturum açma akışını Firebase JavaScript SDK ile yönetmek için şu adımları uygulayın: için şu adımları izleyin:
Aldığınız sağlayıcı kimliğini kullanarak
SAMLAuthProvider
örneği oluşturun Firebase konsolu.Web
import { SAMLAuthProvider } from "firebase/auth"; const provider = new SAMLAuthProvider('saml.example-provider');
Web
var provider = new firebase.auth.SAMLAuthProvider('saml.example-provider'); ``
SAML sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulayın.
Kullanıcıyı sağlayıcının oturum açma sayfasına yönlendirebilir veya oturum açma sayfasına gidin.
Yönlendirme akışı
signInWithRedirect()
numaralı telefonu arayarak sağlayıcının oturum açma sayfasına yönlendirin:Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
Kullanıcı, oturum açma işlemini tamamlayıp uygulamanıza geri döndükten sonra, oturum açma sonucu
getRedirectResult()
çağırılır.Web
import { getAuth, getRedirectResult, SAMLAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // User is signed in. // Provider data available using getAdditionalUserInfo() }) .catch((error) => { // Handle error. });
Web
firebase.auth().getRedirectResult() .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
Pop-up akış
Web
import { getAuth, signInWithPopup, OAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
Web
firebase.auth().signInWithPopup(provider) .then((result) => { // User is signed in. // Provider data available in result.additionalUserInfo.profile, // or from the user's ID token obtained from result.user.getIdToken() // as an object in the firebase.sign_in_attributes custom claim. }) .catch((error) => { // Handle error. });
Kimlik jetonu ve UserInfo nesne, kullanıcının e-posta adresini yalnızca Kimlik sağlayıcıdan alınan SAML onayının
NameID
özelliği:<Subject> <NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">test@email.com</NameID> </Subject>
Yukarıdaki örneklerde oturum açma akışlarına odaklanılsa da oturum açma akışlarını bir SAML sağlayıcıyı mevcut bir kullanıcıya bağlamak için kullanılan kalıp
linkWithRedirect()
velinkWithPopup()
ile birlikte kullanıcının kimliğini yeniden doğrulayınreauthenticateWithRedirect()
vereauthenticateWithPopup()
, olabilir. gereken hassas işlemler için yeni kimlik bilgileri almak üzere kullanılır. son giriş.