Wprowadzenie do interfejsu API uwierzytelniania administratora

Pakiet Firebase Admin SDK umożliwia integrację własnych serwerów z uwierzytelnianiem Firebase. Za pomocą pakietu Firebase Admin SDK możesz zarządzać użytkownikami lub tokenami uwierzytelniania. Istnieje wiele powodów, dla których chciałbyś to zrobić:

Zarządzanie użytkownikami

Odwiedzanie konsoli Firebase w celu zarządzania użytkownikami Firebase nie zawsze jest wygodne. Interfejs API zarządzania użytkownikami administracyjnymi zapewnia programowy dostęp tym samym użytkownikom. Umożliwia nawet wykonywanie czynności, których konsola Firebase nie jest w stanie wykonać, na przykład pobieranie pełnych danych użytkownika i zmianę jego hasła, adresu e-mail lub numeru telefonu.

Niestandardowe uwierzytelnianie

Z Firebase możesz zintegrować zewnętrzny system użytkownika. Na przykład możesz już mieć istniejącą bazę danych użytkowników lub możesz chcieć zintegrować ją z zewnętrznym dostawcą tożsamości, którego natywnie nie obsługuje uwierzytelnianie Firebase.

W tym celu możesz utworzyć niestandardowe tokeny z dowolnymi oświadczeniami identyfikującymi użytkownika. Tych niestandardowych tokenów można następnie użyć do zalogowania się do usługi uwierzytelniania Firebase w aplikacji klienckiej i przyjęcia tożsamości opisanej w oświadczeniach tokenu. Ta tożsamość będzie następnie używana podczas uzyskiwania dostępu do innych usług Firebase, takich jak Cloud Storage.

weryfikacja tożsamości

Uwierzytelnianie Firebase służy przede wszystkim do identyfikacji użytkowników Twojej aplikacji w celu ograniczenia dostępu do innych usług, takich jak Cloud Storage. Możesz także skorzystać z usługi identyfikacji 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ę przy użyciu uwierzytelniania Firebase.

Aby to zrobić, możesz pobrać token identyfikacyjny z aplikacji klienckiej zalogowanej przy użyciu uwierzytelniania Firebase i dołączyć token do żądania kierowanego do swojego serwera. Następnie Twój serwer weryfikuje token identyfikacyjny i wyodrębnia oświadczenia 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 wykorzystane przez Twój serwer do wykonywania działań w imieniu użytkownika.

Pakiet Firebase Admin SDK zapewnia metody realizacji powyższych zadań uwierzytelniania, umożliwiając zarządzanie użytkownikami, generowanie niestandardowych tokenów i weryfikację 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 już zalogowanych u jednego z obsługiwanych dostawców uwierzytelniania Firebase, takich jak e-mail/hasło, Google, Facebook, telefon itp. Połączenie niestandardowych oświadczeń użytkowników i bezpieczeństwa aplikacji Rules zapewnia taką możliwość. Na przykład użytkownik zalogowany przy użyciu dostawcy poczty e-mail i hasła uwierzytelniającego Firebase może mieć zdefiniowaną kontrolę dostępu za pomocą oświadczeń niestandardowych.

Zarządzanie użytkownikami

Pakiet Firebase Admin SDK zapewnia interfejs API umożliwiający zarządzanie użytkownikami Firebase z podwyższonymi uprawnieniami. Interfejs API zarządzania użytkownikami administracyjnymi umożliwia programowe pobieranie, tworzenie, aktualizowanie i usuwanie użytkowników bez konieczności posiadania istniejących poświadczeń użytkownika i bez martwienia się o ograniczenie szybkości po stronie klienta.

Zarządzaj użytkownikami

Tworzenie niestandardowego tokena

Głównym zastosowaniem tworzenia tokenów niestandardowych jest umożliwienie użytkownikom uwierzytelniania przy użyciu zewnętrznego lub starszego mechanizmu uwierzytelniania. Może to być ten, nad którym masz kontrolę, na przykład Twój serwer LDAP, lub zewnętrzny dostawca OAuth, którego Firebase nie obsługuje natywnie, taki jak Instagram lub LinkedIn.

Pakiet Firebase Admin SDK ma wbudowaną metodę tworzenia niestandardowych tokenów. Można także programowo tworzyć niestandardowe tokeny w dowolnym języku, korzystając z bibliotek JWT innych firm.

Twój serwer powinien utworzyć niestandardowy token z unikalnym identyfikatorem ( uid ) i przekazać ten token do aplikacji klienckiej, która użyje go do zalogowania się do Firebase. Zobacz Tworzenie tokenów niestandardowych dla przykładów kodu i więcej szczegółów na temat procesu tworzenia tokenu niestandardowego.

Twórz niestandardowe tokeny

Weryfikacja tokena identyfikacyjnego

Jeśli aplikacja kliencka Firebase komunikuje się z serwerem zaplecza, może być konieczne zidentyfikowanie aktualnie zalogowanego użytkownika na serwerze, aby móc w jego imieniu wykonywać logikę po stronie serwera. Możesz to zrobić bezpiecznie, używając tokenów identyfikacyjnych tworzonych przez Firebase, gdy użytkownik loguje się do aplikacji Firebase. Tokeny identyfikacyjne 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 z własnych backendów. Pozwala to bezpiecznie zidentyfikować aktualnie zalogowanego użytkownika i autoryzować go do własnych zasobów backendu.

Pakiet Firebase Admin SDK ma wbudowaną metodę weryfikacji tokenów identyfikacyjnych. Można także programowo weryfikować tokeny identyfikacyjne w dowolnym języku, korzystając z bibliotek JWT innych firm. Zobacz Weryfikacja tokenów identyfikacyjnych , aby uzyskać więcej informacji i przykładów kodu na temat procesu weryfikacji tokenów identyfikacyjnych.

Zweryfikuj tokeny identyfikacyjne

Niestandardowe roszczenia użytkowników

Pakiet Firebase Admin SDK umożliwia ustawianie niestandardowych atrybutów na kontach użytkowników. Dzięki niestandardowym oświadczeniom użytkowników można przyznać użytkownikom różne poziomy dostępu (role), które są następnie wymuszane w regułach bezpieczeństwa aplikacji.

Po zmodyfikowaniu niestandardowych oświadczeń na użytkowniku za pośrednictwem pakietu Firebase Admin SDK są one propagowane do uwierzytelnionych użytkowników po stronie klienta za pośrednictwem ich tokenów identyfikacyjnych. Token identyfikatora to zaufany mechanizm dostarczania tych niestandardowych oświadczeń, a cały uwierzytelniony dostęp musi zweryfikować token identyfikatora przed przetworzeniem skojarzonego żądania.

Kontroluj dostęp za pomocą niestandardowych oświadczeń