Wprowadzenie do interfejsu Admin Auth API

Firebase Admin SDK pozwala zintegrować własne serwery z Firebase Authentication. Możesz użyć Firebase Admin SDK, aby zarządzać użytkownikami lub tokenami uwierzytelniania. Możesz to zrobić z kilku powodów:

Zarządzanie użytkownikami

Nie zawsze wygodnie jest otwierać konsolę Firebase, aby zarządzać użytkownikami Firebase. Interfejs API do zarządzania użytkownikami o roli administratora zapewnia dostęp programowy do tych samych użytkowników. Umożliwia ona nawet wykonywanie zadań, których nie można wykonać w konsoli Firebase, np. pobieranie pełnych danych użytkownika i 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 mieć już bazę danych użytkowników lub możesz chcieć zintegrować się z zewnętrznym dostawcą tożsamości, którego Firebase Authenticationnie obsługuje natywnych funkcji.

Aby to zrobić, możesz utworzyć niestandardowe tokeny z dowolnymi oświadczeniami identyfikującymi użytkownika. Te tokeny niestandardowe można następnie wykorzystać do zalogowania się w usłudze Firebase Authentication w aplikacji klienta i przyjęcia tożsamości opisanej w roszczeniach tokenu. Ta tożsamość będzie używana podczas uzyskiwania dostępu do innych usług Firebase, takich jak Cloud Storage.

Weryfikacja tożsamości

Firebase Authentication służy przede wszystkim do identyfikowania użytkowników aplikacji w celu ograniczenia dostępu do innych usług, takich jak Cloud Storage. Możesz też używać 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 identyfikacyjny z aplikacji klienta zalogowanej za pomocą Firebase Authentication i uwzględnić go w żądaniu wysyłanym do serwera. Następnie serwer weryfikuje token ID i wyodrębnia oświadczenia, które identyfikują użytkownika (w tym uid, dostawcę tożsamości, za pomocą którego użytkownik się zalogował itp.). Serwer może następnie używać tych informacji tożsamości do wykonywania działań w imieniu użytkownika.

Firebase Admin SDK zawiera metody umożliwiające wykonywanie opisanych wyżej zadań związanych z uwierzytelnianiem, pozwalając na zarządzanie użytkownikami, generowanie tokenów niestandardowych i weryfikowanie tokenów identyfikacyjnych.

Niestandardowe roszczenia użytkowników

W niektórych przypadkach możesz chcieć wdrożyć szczegółową kontrolę dostępu dla użytkowników, którzy są już zalogowani za pomocą jednego z obsługiwanych dostawców usług uwierzytelniania Firebase, np. poczty e-mail, hasła, Google, Facebooka czy telefonu. Umożliwia to kombinacja niestandardowych identyfikatorów użytkowników i reguł bezpieczeństwa aplikacji. Na przykład użytkownik zalogowany za pomocą dostawcy usługi Firebase Authentication Email and Password może mieć kontrolę dostępu zdefiniowaną za pomocą niestandardowych roszczeń.

Zarządzanie użytkownikami

Usługa Firebase Admin SDK udostępnia interfejs API do zarządzania użytkownikami Firebase z podwyższonymi uprawnieniami. Interfejs API do zarządzania użytkownikami o roli administratora umożliwia tworzenie, aktualizowanie i usuwanie użytkowników, a także pobieranie ich danych w ramach programowania. Nie wymaga to podawania przez użytkownika danych logowania ani martwienia się o ograniczenie szybkości po stronie klienta.

Zarządzanie użytkownikami

Tworzenie tokenów niestandardowych

Głównym celem tworzenia tokenów niestandardowych jest umożliwienie użytkownikom uwierzytelniania się za pomocą zewnętrznego lub starszego mechanizmu uwierzytelniania. Może to być serwer LDAP, który jest pod Twoją kontrolą, 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ż tworzyć niestandardowe tokeny w dowolnym języku za pomocą bibliotek JWT innych firm.

Serwer powinien utworzyć token niestandardowy z unikalnym identyfikatorem (uid) i przekazać go aplikacji klienta, która użyje go do zalogowania się na stronie 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 za pomocą tokena tożsamości

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 wykonać logikę po stronie serwera w jego imieniu. Możesz to zrobić bezpiecznie, 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 umożliwiające identyfikację 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 serwerach. Dzięki temu możesz bezpiecznie zidentyfikować aktualnie zalogowanego użytkownika i autoryzować go w swoich zasobach backendu.

Firebase Admin SDK ma wbudowaną metodę weryfikacji tokenów tożsamości. Możesz też automatycznie weryfikować tokeny identyfikacyjne w dowolnym języku, korzystając z zewnętrznych bibliotek JWT. Więcej informacji i przykłady kodu dotyczących procesu weryfikacji tokena tożsamości znajdziesz w artykule Weryfikowanie tokenów tożsamości.

Weryfikowanie tokenów tożsamości

Niestandardowe roszczenia użytkowników

Firebase Admin SDK umożliwia konfigurowanie atrybutów niestandardowych na kontach użytkowników. Dzięki niestandardowym oświadczeniu tożsamości użytkownika możesz przyznać użytkownikom różne poziomy dostępu (role), które są następnie egzekwowane w ramach zasad bezpieczeństwa aplikacji.

Po zmodyfikowaniu niestandardowych danych użytkownika za pomocą funkcji Firebase Admin SDK są one propagowane do uwierzytelnionych użytkowników po stronie klienta za pomocą ich tokenów identyfikacyjnych. Token identyfikatora to zaufany mechanizm dostarczania tych niestandardowych roszczeń. Przed przetworzeniem powiązanego żądania należy zweryfikować token identyfikatora.

Zarządzanie dostępem za pomocą oświadczeń niestandardowych