Mit dem Firebase Admin SDK können Sie Ihre eigenen Server mit Firebase Authentication integrieren. Sie können das Firebase Admin SDK verwenden, um Ihre Benutzer oder Authentifizierungstoken zu verwalten. Es gibt eine Reihe von Gründen, warum Sie dies tun möchten:
Benutzerverwaltung
Es ist nicht immer bequem, die Firebase-Konsole besuchen zu müssen, um Ihre Firebase-Benutzer zu verwalten. Die Admin-Benutzerverwaltungs-API bietet denselben Benutzern programmgesteuerten Zugriff. Sie können sogar Dinge tun, die die Firebase-Konsole nicht kann, z. B. das Abrufen der vollständigen Daten eines Benutzers und das Ändern des Kennworts, der E-Mail-Adresse oder der Telefonnummer eines Benutzers.
Benutzerdefinierte Authentifizierung
Sie können ein externes Benutzersystem mit Firebase integrieren. Möglicherweise verfügen Sie beispielsweise bereits über eine bereits vorhandene Benutzerdatenbank oder möchten eine Integration mit einem Drittanbieter-Identitätsanbieter durchführen, den Firebase Authentication nicht nativ unterstützt.
Dazu können Sie benutzerdefinierte Token mit beliebigen Ansprüchen erstellen, die den Benutzer identifizieren. Diese benutzerdefinierten Token können dann verwendet werden, um sich in einer Clientanwendung beim Firebase-Authentifizierungsdienst anzumelden und die durch die Ansprüche des Tokens beschriebene Identität anzunehmen. Diese Identität wird dann beim Zugriff auf andere Firebase-Dienste wie Cloud Storage verwendet.
Identitätsprüfung
Die Firebase-Authentifizierung wird hauptsächlich verwendet, um Benutzer Ihrer App zu identifizieren, um den Zugriff auf andere Dienste wie Cloud Storage einzuschränken. Sie können den Dienst auch verwenden, um diese Benutzer auf Ihrem eigenen Server zu identifizieren. Auf diese Weise können Sie serverseitige Logik sicher für Benutzer ausführen, die sich mit der Firebase-Authentifizierung angemeldet haben.
Dazu können Sie ein ID-Token von einer mit Firebase Authentication angemeldeten Client-Anwendung abrufen und das Token in eine Anfrage an Ihren Server einschließen. Ihr Server überprüft dann das ID-Token und extrahiert die Ansprüche, die den Benutzer identifizieren (einschließlich seiner uid
, des Identitätsanbieters, bei dem er sich angemeldet hat usw.). Diese Identitätsinformationen können dann von Ihrem Server verwendet werden, um Aktionen im Namen des Benutzers auszuführen.
Das Firebase Admin SDK bietet Methoden zum Ausführen der oben genannten Authentifizierungsaufgaben, indem es Ihnen ermöglicht, Ihre Benutzer zu verwalten, benutzerdefinierte Token zu generieren und ID-Token zu überprüfen.
Benutzerdefinierte Benutzeransprüche
In einigen Fällen möchten Sie möglicherweise eine differenzierte Zugriffskontrolle für Benutzer implementieren, die bereits bei einem der unterstützten Firebase-Authentifizierungsanbieter wie E-Mail/Passwort, Google, Facebook, Telefon usw. angemeldet sind. Eine Kombination aus benutzerdefinierten Benutzeransprüchen und Anwendungssicherheit rules bietet diese Funktion. Beispielsweise kann ein Benutzer, der mit dem E-Mail- und Kennwortanbieter für die Firebase-Authentifizierung angemeldet ist, die Zugriffssteuerung mithilfe benutzerdefinierter Ansprüche definieren.
Benutzerverwaltung
Das Firebase Admin SDK bietet eine API zum Verwalten Ihrer Firebase-Benutzer mit erhöhten Rechten. Die Admin-Benutzerverwaltungs-API gibt Ihnen die Möglichkeit, Benutzer programmgesteuert abzurufen, zu erstellen, zu aktualisieren und zu löschen, ohne die vorhandenen Anmeldeinformationen eines Benutzers zu benötigen und ohne sich Gedanken über eine clientseitige Ratenbegrenzung machen zu müssen.
Benutzer verwaltenBenutzerdefinierte Token-Erstellung
Die primäre Verwendung für die Erstellung benutzerdefinierter Token besteht darin, Benutzern die Authentifizierung bei einem externen oder Legacy-Authentifizierungsmechanismus zu ermöglichen. Dabei kann es sich um einen Server handeln, den Sie kontrollieren, z. B. Ihren LDAP-Server, oder um einen OAuth-Drittanbieter, den Firebase nicht nativ unterstützt, z. B. Instagram oder LinkedIn.
Das Firebase Admin SDK verfügt über eine integrierte Methode zum Erstellen benutzerdefinierter Token. Sie können mithilfe von JWT-Bibliotheken von Drittanbietern auch programmgesteuert benutzerdefinierte Token in jeder Sprache erstellen.
Ihr Server sollte ein benutzerdefiniertes Token mit einer eindeutigen Kennung ( uid
) erstellen und dieses Token an eine Client-App übergeben, die sich damit bei Firebase anmeldet. Codebeispiele und weitere Details zum Erstellungsprozess für benutzerdefinierte Token finden Sie unter Erstellen benutzerdefinierter Token.
Erstellen Sie benutzerdefinierte Token
Überprüfung des ID-Tokens
Wenn Ihre Firebase-Client-App mit Ihrem Back-End-Server kommuniziert, müssen Sie möglicherweise den aktuell angemeldeten Benutzer auf Ihrem Server identifizieren, damit Sie serverseitige Logik in seinem Namen ausführen können. Sie können dies sicher tun, indem Sie ID-Token verwenden, die von Firebase erstellt werden, wenn sich ein Benutzer bei einer Firebase-App anmeldet. ID-Token entsprechen der OpenID Connect-Spezifikation und enthalten Daten zur Identifizierung eines Benutzers sowie einige andere profil- und authentifizierungsbezogene Informationen. Sie können diese Token von Ihren eigenen Backends aus senden, verifizieren und prüfen. Auf diese Weise können Sie den aktuell angemeldeten Benutzer sicher identifizieren und ihn für Ihre eigenen Back-End-Ressourcen autorisieren.
Das Firebase Admin SDK verfügt über eine integrierte Methode zur Überprüfung von ID-Tokens. Sie können ID-Token auch programmgesteuert in jeder Sprache mit JWT-Bibliotheken von Drittanbietern verifizieren. Weitere Details und Codebeispiele zum Überprüfungsprozess des ID-Tokens finden Sie unter ID-Token überprüfen.
Benutzerdefinierte Benutzeransprüche
Mit dem Firebase Admin SDK können Sie benutzerdefinierte Attribute für Benutzerkonten festlegen. Mit benutzerdefinierten Benutzeransprüchen können Sie Benutzern verschiedene Zugriffsebenen (Rollen) zuweisen, die dann in den Sicherheitsregeln einer Anwendung erzwungen werden.
Nachdem benutzerdefinierte Ansprüche für einen Benutzer über das Firebase Admin SDK geändert wurden, werden sie über ihre ID-Token an die authentifizierten Benutzer auf der Clientseite weitergegeben. Das ID-Token ist ein vertrauenswürdiger Mechanismus zum Übermitteln dieser benutzerdefinierten Ansprüche, und jeder authentifizierte Zugriff muss das ID-Token validieren, bevor die zugehörige Anforderung verarbeitet wird.
Steuern Sie den Zugriff mit benutzerdefinierten Ansprüchen