Einführung in die Admin Auth API

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 Authentifizierungstokens zu verwalten. Es gibt eine Reihe von Gründen, warum Sie dies tun möchten:

Benutzerverwaltung

Es ist nicht immer praktisch, zur Verwaltung Ihrer Firebase-Benutzer die Firebase-Konsole aufrufen zu müssen. Die Admin-Benutzerverwaltungs-API bietet denselben Benutzern programmgesteuerten Zugriff. Sie können damit sogar Dinge tun, die mit der Firebase-Konsole nicht möglich sind, z. B. das Abrufen der vollständigen Daten eines Benutzers und das Ändern des Passworts, der E-Mail-Adresse oder der Telefonnummer eines Benutzers.

Benutzerdefinierte Authentifizierung

Sie können ein externes Benutzersystem mit Firebase integrieren. Beispielsweise verfügen Sie möglicherweise bereits über eine bereits vorhandene Benutzerdatenbank oder möchten möglicherweise eine Integration mit einem Identitätsanbieter eines Drittanbieters vornehmen, der von Firebase Authentication nicht nativ unterstützt wird.

Zu diesem Zweck können Sie benutzerdefinierte Token mit beliebigen Ansprüchen erstellen, die den Benutzer identifizieren. Diese benutzerdefinierten Token können dann verwendet werden, um sich beim Firebase-Authentifizierungsdienst in einer Clientanwendung anzumelden und die in den Token-Ansprüchen 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 in erster Linie dazu verwendet, Benutzer Ihrer App zu identifizieren, um den Zugriff auf andere Dienste wie Cloud Storage einzuschränken. Sie können den Dienst auch nutzen, um diese Benutzer auf Ihrem eigenen Server zu identifizieren. Dadurch können Sie serverseitige Logik sicher im Namen von Benutzern ausführen, die sich mit Firebase-Authentifizierung angemeldet haben.

Dazu können Sie ein ID-Token von einer Clientanwendung abrufen, die mit Firebase Authentication angemeldet ist, und das Token in eine Anfrage an Ihren Server einbinden. 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-Tokens 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 Regeln bieten diese Möglichkeit. Beispielsweise kann ein Benutzer, der sich beim Firebase-Authentifizierungs-E-Mail- und Passwort-Anbieter angemeldet hat, die Zugriffskontrolle mithilfe benutzerdefinierter Ansprüche definieren.

Benutzerverwaltung

Das Firebase Admin SDK bietet eine API zum Verwalten Ihrer Firebase-Benutzer mit erhöhten Berechtigungen. Die Admin-Benutzerverwaltungs-API bietet Ihnen die Möglichkeit, Benutzer programmgesteuert abzurufen, zu erstellen, zu aktualisieren und zu löschen, ohne dass die vorhandenen Anmeldeinformationen eines Benutzers erforderlich sind und ohne sich Gedanken über eine clientseitige Ratenbegrenzung machen zu müssen.

Benutzer verwalten

Benutzerdefinierte Token-Erstellung

Der Hauptzweck der Erstellung benutzerdefinierter Token besteht darin, Benutzern die Authentifizierung anhand eines externen oder älteren Authentifizierungsmechanismus zu ermöglichen. Dabei kann es sich um einen Server handeln, den Sie steuern, beispielsweise Ihren LDAP-Server, oder um einen OAuth-Drittanbieter, den Firebase nicht nativ unterstützt, beispielsweise 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 es zur Anmeldung bei Firebase verwendet. Codebeispiele und weitere Details zum Erstellungsprozess benutzerdefinierter 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 in seinem Namen serverseitige Logik ausführen können. Sie können dies sicher tun, indem Sie ID-Tokens 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 Authentifizierungsinformationen. Sie können diese Token von Ihren eigenen Backends aus senden, verifizieren und prüfen. Dadurch können Sie den aktuell angemeldeten Benutzer sicher identifizieren und ihn für Ihre eigenen Backend-Ressourcen autorisieren.

Das Firebase Admin SDK verfügt über eine integrierte Methode zur Überprüfung von ID-Tokens. Sie können ID-Tokens in jeder Sprache auch programmgesteuert mithilfe von JWT-Bibliotheken von Drittanbietern überprüfen. Weitere Details und Codebeispiele zum ID-Token-Verifizierungsprozess finden Sie unter Verifizieren von ID-Tokens.

ID-Tokens ü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 unterschiedliche Zugriffsebenen (Rollen) zuweisen, die dann in den Sicherheitsregeln einer Anwendung durchgesetzt werden.

Nachdem benutzerdefinierte Ansprüche für einen Benutzer über das Firebase Admin SDK geändert wurden, werden sie über ihre ID-Tokens an die authentifizierten Benutzer auf der Clientseite weitergegeben. Das ID-Token ist ein vertrauenswürdiger Mechanismus zur Übermittlung dieser benutzerdefinierten Ansprüche, und jeder authentifizierte Zugriff muss das ID-Token validieren, bevor die zugehörige Anfrage verarbeitet wird.

Kontrollieren Sie den Zugriff mit benutzerdefinierten Ansprüchen