Firebase Admin SDK umożliwia integrację własnych serwerów z Firebase Authentication. Za pomocą Firebase Admin SDK możesz zarządzać użytkownikami lub zarządzać tokenami uwierzytelniania. Możesz to zrobić z kilku powodów:
Zarządzanie użytkownikami
Zarządzanie użytkownikami w konsoli Firebase nie zawsze jest wygodne.Firebase Interfejs API do zarządzania użytkownikami z uprawnieniami administratora zapewnia programowy dostęp do tych samych użytkowników. Umożliwia on nawet wykonywanie czynności, których nie można wykonać w konsoli Firebase, takich jak pobieranie pełnych danych użytkownika oraz 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ż istniejącą bazę danych użytkowników lub chcieć zintegrować się z zewnętrznym dostawcą tożsamości, którego Firebase Authentication nie obsługuje natywnie.
Aby to zrobić, możesz utworzyć tokeny niestandardowe z dowolnymi deklaracjami identyfikującymi użytkownika. Te tokeny niestandardowe mogą być następnie używane 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 Firebase usług, takich jak Cloud Storage.
Weryfikacja tożsamości
Firebase Authentication jest używana 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 do identyfikowania 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 klienckiej
zalogowanej za pomocą Firebase Authentication i dołączyć go do żądania wysyłanego do serwera. Serwer weryfikuje token identyfikatora i wyodrębnia deklaracje identyfikujące 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.
Pakiet Firebase Admin SDK udostępnia metody wykonywania opisanych powyżej zadań uwierzytelniania, umożliwiając zarządzanie użytkownikami, generowanie tokenów niestandardowych i weryfikowanie tokenów identyfikatorów.
Niestandardowe deklaracje użytkownika
W niektórych przypadkach możesz chcieć wdrożyć szczegółową kontrolę dostępu dla użytkowników, którzy zalogowali się już za pomocą jednego z obsługiwanych Firebase dostawców uwierzytelniania, takich jak e-mail/hasło, Google, Facebook, telefon itp. Umożliwia to połączenie niestandardowych deklaracji użytkownika i reguł bezpieczeństwa aplikacji. Na przykład użytkownik zalogowany za pomocą dostawcy Firebase Authentication e-maila i hasła może mieć zdefiniowaną kontrolę dostępu za pomocą deklaracji niestandardowych.
Zarządzanie użytkownikami
Pakiet Firebase Admin SDK udostępnia interfejs API do zarządzania użytkownikami Firebase z podwyższonymi uprawnieniami. Interfejs API do zarządzania użytkownikami z uprawnieniami administratora 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 tokenów niestandardowych jest umożliwienie użytkownikom uwierzytelniania się za pomocą zewnętrznego lub starszego mechanizmu uwierzytelniania. Może to być mechanizm, nad którym masz kontrolę, np. serwer LDAP, lub zewnętrzny dostawca OAuth, którego Firebase nie obsługuje natywnie, np. Instagram lub LinkedIn.
Firebase Admin SDK ma wbudowaną metodę tworzenia tokenów niestandardowych. Możesz też programowo tworzyć tokeny niestandardowe w dowolnym języku za pomocą bibliotek JWT innych firm.
Serwer powinien utworzyć token niestandardowy z unikalnym identyfikatorem (uid) i
przekazać go do aplikacji klienckiej, która użyje go do zalogowania się w
Firebase. Przykłady kodu i więcej informacji o procesie tworzenia tokenów niestandardowych znajdziesz w artykule
Tworzenie tokenów niestandardowych.
Tworzenie tokenów niestandardowych
Weryfikacja tokena identyfikatora
Jeśli aplikacja kliencka Firebase komunikuje się z serwerem backendu, może być konieczne zidentyfikowanie aktualnie zalogowanego użytkownika na serwerze, aby można było wykonywać logikę po stronie serwera w jego imieniu. Możesz to zrobić bezpiecznie za pomocą tokenów identyfikatorów, które są tworzone przez Firebase gdy użytkownik loguje się w aplikacji Firebase. Tokeny identyfikatorów 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 z własnych backendów. Dzięki temu możesz bezpiecznie identyfikować aktualnie zalogowanego użytkownika i autoryzować go do korzystania z własnych zasobów backendu.
Firebase Admin SDK ma wbudowaną metodę weryfikowania tokenów identyfikatorów. Możesz też programowo weryfikować tokeny identyfikatorów w dowolnym języku za pomocą bibliotek JWT innych firm. Więcej informacji i przykłady kodu dotyczące procesu weryfikacji tokena identyfikatora znajdziesz w artykule Weryfikowanie tokenów identyfikatorów.
Weryfikowanie tokenów identyfikatorów
Niestandardowe deklaracje użytkownika
Firebase Admin SDK umożliwia ustawianie niestandardowych atrybutów na kontach użytkowników. Dzięki niestandardowym deklaracjom 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.
Gdy deklaracje niestandardowe zostaną zmodyfikowane na koncie użytkownika za pomocą Firebase Admin SDK, są one propagowane do uwierzytelnionych użytkowników po stronie klienta za pomocą ich tokenów identyfikatorów. Token identyfikatora jest zaufanym mechanizmem dostarczania tych deklaracji niestandardowych, a cały uwierzytelniony dostęp musi zweryfikować token identyfikatora przed przetworzeniem powiązanego żądania.
Kontrolowanie dostępu za pomocą deklaracji niestandardowych