Firebase Admin SDK umożliwia integrację własnych serwerów z Firebase Authentication. Za pomocą ikony Firebase Admin SDK możesz zarządzać użytkownikami lub tokenami uwierzytelniania. Może to być przydatne z kilku powodów:
Zarządzanie użytkownikami
Nie zawsze wygodne jest otwieranie FirebasekonsoliFirebase w celu zarządzania Firebaseużytkownikami. Interfejs API do zarządzania użytkownikami w konsoli administracyjnej zapewnia programowy dostęp do tych samych użytkowników. Umożliwia nawet wykonywanie czynności, których nie można wykonać w Firebasekonsoli, np. pobieranie pełnych danych użytkownika czy zmienianie jego hasła, adresu e-mail lub numeru telefonu.
Uwierzytelnianie niestandardowe
Możesz zintegrować zewnętrzny system użytkowników z Firebase. Możesz na przykład mieć już bazę danych użytkowników lub chcieć zintegrować ją z zewnętrznym dostawcą tożsamości, który Firebase Authenticationnie obsługuje jej natywnieFirebase Authentication.
Aby to zrobić, możesz utworzyć niestandardowe tokeny z dowolnymi roszczeniami identyfikującymi użytkownika. Te niestandardowe tokeny można następnie wykorzystać do logowania się w usłudze Firebase Authentication w aplikacji klienckiej i przyjmowania tożsamości opisanej w deklaracjach tokena. Ta tożsamość będzie następnie używana podczas uzyskiwania dostępu do innych usług, takich jak Cloud Storage.Firebase
Weryfikacja tożsamości
Firebase Authentication służy głównie do identyfikowania użytkowników aplikacji w celu ograniczenia dostępu do innych usług, takich jak Cloud Storage. Możesz też użyć tej usługi, aby zidentyfikować tych użytkowników na własnym serwerze. Dzięki temu możesz bezpiecznie wykonywać logikę po stronie serwera w imieniu użytkowników, którzy zalogowali się za pomocą Firebase Authentication.
Aby to zrobić, możesz pobrać token identyfikatora z aplikacji klienta zalogowanej za pomocą Firebase Authentication i uwzględnić go w żądaniu wysyłanym do serwera. Serwer weryfikuje token identyfikatora i wyodrębnia deklaracje, które identyfikują użytkownika (w tym jego uid
, dostawcę tożsamości, za pomocą którego się zalogował, itp.). Te informacje o tożsamości mogą być następnie używane przez serwer do wykonywania działań w imieniu użytkownika.
Firebase Admin SDK udostępnia metody wykonywania powyższych zadań związanych z uwierzytelnianiem, umożliwiając zarządzanie użytkownikami, generowanie niestandardowych tokenów i weryfikowanie tokenów identyfikacyjnych.
Niestandardowe roszczenia użytkowników
W niektórych przypadkach możesz chcieć wdrożyć precyzyjną kontrolę dostępu dla użytkowników, którzy są już zalogowani za pomocą jednego z obsługiwanych dostawców uwierzytelniania, np. e-maila/hasła, Google, Facebooka, telefonu itp. Taką możliwość zapewnia połączenie niestandardowych roszczeń użytkownika i reguł bezpieczeństwa aplikacji.Firebase Na przykład użytkownik zalogowany za pomocą dostawcy Firebase Authentication Email and Password może mieć zdefiniowaną kontrolę dostępu za pomocą niestandardowych roszczeń.
Zarządzanie użytkownikami
Firebase Admin SDK udostępnia interfejs API do zarządzaniaFirebase użytkownikami z podwyższonymi uprawnieniami. Interfejs Admin User Management API umożliwia programowe pobieranie, tworzenie, aktualizowanie i usuwanie użytkowników bez konieczności podawania ich dotychczasowych danych logowania i bez obaw o ograniczenia liczby żądań po stronie klienta.
Zarządzanie użytkownikamiTworzenie tokenów niestandardowych
Głównym zastosowaniem tworzenia niestandardowych tokenów jest umożliwienie użytkownikom uwierzytelniania za pomocą zewnętrznego lub starszego mechanizmu uwierzytelniania. Może to być serwer, nad którym masz kontrolę, np. serwer LDAP, lub zewnętrzny dostawca OAuth, który Firebase nie obsługuje natywnie, np. Instagram lub LinkedIn.
Firebase Admin SDK ma wbudowaną metodę tworzenia niestandardowych tokenów. Możesz też programowo tworzyć niestandardowe tokeny w dowolnym języku, korzystając z bibliotek JWT innych firm.
Serwer powinien utworzyć token niestandardowy z unikalnym identyfikatorem (uid
) i przekazać go do aplikacji klienta, która użyje go do zalogowania się w Firebase. Więcej informacji o procesie tworzenia tokenów niestandardowych oraz przykłady kodu znajdziesz w artykule Tworzenie tokenów niestandardowych.
Tworzenie tokenów niestandardowych
Weryfikacja tokena tożsamości
Jeśli Twoja Firebase aplikacja kliencka komunikuje się z serwerem backendu, może być konieczne zidentyfikowanie aktualnie zalogowanego użytkownika na serwerze, aby można było wykonywać w jego imieniu logikę po stronie serwera. Możesz to zrobić w bezpieczny sposób, używając tokenów tożsamości, które są tworzone przez Firebase, gdy użytkownik loguje się w aplikacji Firebase. Tokeny tożsamości są zgodne ze specyfikacją OpenID Connect i zawierają dane identyfikujące użytkownika, a także inne informacje związane z profilem i uwierzytelnianiem. Możesz wysyłać, weryfikować i sprawdzać te tokeny na własnych backendach. Dzięki temu możesz bezpiecznie identyfikować aktualnie zalogowanego użytkownika i autoryzować go w swoich zasobach backendu.
Firebase Admin SDK ma wbudowaną metodę weryfikacji tokenów identyfikacyjnych. Możesz też weryfikować tokeny tożsamości automatycznie w dowolnym języku za pomocą bibliotek JWT innych firm. Więcej informacji i przykłady kodu dotyczące procesu weryfikacji tokena tożsamości znajdziesz w artykule Weryfikowanie tokenów tożsamości.
Weryfikowanie tokenów tożsamości
Niestandardowe roszczenia użytkownika
Firebase Admin SDK umożliwia ustawianie atrybutów niestandardowych na kontach użytkowników. Za pomocą niestandardowych roszczeń użytkownika możesz przyznawać użytkownikom różne poziomy dostępu (role), które są następnie egzekwowane w regułach bezpieczeństwa aplikacji.
Po zmodyfikowaniu roszczeń niestandardowych użytkownika za pomocą Firebase Admin SDK są one przekazywane do uwierzytelnionych użytkowników po stronie klienta za pomocą tokenów identyfikatora. Token identyfikatora to zaufany mechanizm dostarczania tych niestandardowych roszczeń, a wszystkie uwierzytelnione dostępy muszą przed przetworzeniem powiązanego żądania zweryfikować token identyfikatora.
Kontrolowanie dostępu za pomocą niestandardowych roszczeń