Authentifizierungsmethode auswählen

Cloud Endpoints unterstützt mehrere Authentifizierungsmethoden, die sich für unterschiedliche Anwendungen und Anwendungsfälle eignen. Endpoints Frameworks verwendet die Authentifizierungsmethode, die Sie in der Annotation angegeben haben, um eingehende Anfragen zu prüfen, bevor sie an das API-Back-End weitergeleitet werden. Dieses Dokument enthält einen Überblick sowie Beispiele für Anwendungsfälle zu jeder unterstützten Authentifizierungsmethode.

API-Schlüssel

Ein API-Schlüssel ist ein einfacher verschlüsselter String, der ein Google Cloud-Projekt zu Kontingent-, Abrechnungs- und Monitoringzwecken identifiziert. Ein Entwickler generiert in einem Projekt in der Google Cloud Console einen API-Schlüssel und bettet ihn in jeden Aufruf Ihrer API als Abfrageparameter ein.

Wenn Sie in der Annotation das Anfordern von API-Schlüsseln festlegen, verwendet Endpoints Frameworks den API-Schlüssel, um das Google Cloud-Projekt zu suchen, dem dieser API-Schlüssel zugeordnet ist. Endpoints Frameworks lehnt Anfragen ab, es sei denn, der API-Schlüssel wurde in Ihrem Google Cloud-Projekt oder in anderen Google Cloud-Projekten generiert, in denen die API aktiviert wurde. Weitere Informationen finden Sie unter API-Zugriff mit API-Schlüsseln einschränken.

Im Gegensatz zu Anmeldedaten, die kurzlebige Tokens oder signierte Anfragen verwenden und im Anfrageheader gesendet werden, senden Clients einen API-Schlüssel als Abfrageparameter. Obwohl Abfrageparameter mit HTTPS verschlüsselt werden, sind API-Schlüssel nicht sicher. Möglicherweise speichern beispielsweise manche Server die komplette URL von sämtlichen Anfragen in Klartext in einem Serverlog. Daher sollten Sie aus Sicherheitsgründen nicht ausschließlich API-Schlüssel verwenden, wenn API-Aufrufe Nutzerdaten enthalten. Sie können API-Schlüssel zusätzlich zu einer der folgenden Authentifizierungsmethoden verwenden.

Best Practices zum Sichern und Einschränken von API-Schlüsseln finden Sie unter API-Schlüssel verwenden. Jener Artikel ist zwar auf Clients ausgerichtet, die Google APIs verwenden, allerdings gelten die Best Practices auch für APIs, die Sie mit Endpoints Frameworks erstellen.

Anwendungsfall

Wenn Sie Endpoints-Features wie quotas verwenden möchten, muss in jeder Anfrage ein API-Schlüssel übergeben werden, damit Endpoints das Google Cloud-Projekt identifizieren kann, dem die Client-Anwendung zugeordnet ist.

Weitere Informationen zu API-Schlüsseln finden Sie unter API-Schlüssel effizient nutzen.

Authentifizierung mit Firebase

Firebase Authentication stellt Backend-Dienste, SDKs und Bibliotheken für die Nutzerauthentifizierung in mobilen Apps oder Webanwendungen bereit. Für die Authentifizierung der Nutzer werden verschiedene Anmeldedaten wie etwa von Google, Facebook, Twitter oder GitHub verwendet.

Nachdem sich der Nutzer angemeldet hat, signiert die Firebase-Clientbibliothek ein JSON Web Token (JWT) mit einem privaten Schlüssel. Endpoints Frameworks validiert, dass das JWT von Firebase signiert wurde und die Anforderung "iss" (issuer) im JWT, die Ihre Firebase-Anwendung identifiziert, mit dem Wert von issuer in der Annotation übereinstimmt.

Anwendungsfall

Da sich die Funktion "Firebase Authentication" problemlos in andere Firebase-Dienste einbinden lässt, eignet sie sich gut für mobile Apps oder Webanwendungen, die Firebase verwenden. Weitere Informationen finden Sie unter Mit Firebase Auth authentifizieren.

Auth0

Mit Auth0 können Apps und APIs ungeachtet des Identitätsanbieters, der Plattform, des Stacks und des Geräts authentifiziert und autorisiert werden.

Auth0 unterstützt zahlreiche Anbieter sowie die SAML-Spezifikation (Security Assertion Markup Language). Die Anwendung bietet Back-End-Dienste, SDKs und Benutzeroberflächen-Bibliotheken für die Authentifizierung von Nutzern in Webanwendungen und mobilen Apps. Auth0 lässt sich außerdem in verschiedene andere Identitätsanbieter einbinden und bietet eine benutzerdefinierte Nutzerkontenverwaltung.

Die von Auth0 bereitgestellte Clientbibliothek generiert und signiert nach der Anmeldung des Nutzers ein JWT. Endpoints Frameworks validiert, dass das JWT von Auth0 signiert wurde und die Anforderung "iss" im JWT, die Ihre Auth0-Anwendung identifiziert, mit dem Wert von issuer in der Annotation übereinstimmt.

Anwendungsfall

Auth0 eignet sich gut für Webanwendungen und mobile Apps für Nutzer und Unternehmen. Weitere Informationen finden Sie unter Mit Auth0 authentifizieren.

Mit Google-ID-Token authentifizieren

Bei der Authentifizierung mit einem Google-ID-Token können sich Nutzer durch Anmeldung bei einem Google-Konto authentifizieren. Nach der Authentifizierung haben die Nutzer Zugriff auf alle Google-Dienste. Sie können mit Google-ID-Tokens Google APIs und APIs aufrufen, die Sie mithilfe von Endpoints Frameworks implementiert haben. Endpoints Frameworks validiert das Google-ID-Token mit dem öffentlichen Schlüssel und stellt fest, ob die Anforderung "iss" im JWT https://accounts.google.com oder accounts.google.com ist.

Anwendungsfall

Die Authentifizierung mit einem Google-ID-Token ist dann zu empfehlen, wenn alle Nutzer Google-Konten haben. Sie können die Authentifizierung mit einem Google-ID-Token beispielsweise verwenden, wenn Ihre API für Google Workspace-Anwendungen wie eine Google Drive-Begleitanwendung genutzt wird. Bei der Authentifizierung mit einem Google-ID-Token können sich Nutzer durch Anmeldung bei einem Google-Konto authentifizieren. Nach der Authentifizierung haben die Nutzer Zugriff auf alle Google-Dienste.

Weitere Informationen finden Sie unter Mit Google-ID-Tokens authentifizieren.

JWTs und Dienstkonten

Ein JSON Web Token (JWT) wird häufig zum Freigeben von Anforderungen oder Assertions für verbundene Anwendungen verwendet. Ein JWT, das ein Dienstkonto repräsentiert, kann signiert werden von:

  • dem Dienstkonto.

  • dem Google-Autorisierungsdienst. Ein vom Google-Autorisierungsdienst signiertes JWT wird als Google-ID-Token bezeichnet.

Die Authentifizierung einer Anfrage mit einem von einem Dienstkonto signierten JWT ist möglicherweise einfacher. Wenn Sie jedoch viele Dienstkonten haben oder Anmeldedaten von Dienstkonten akzeptieren möchten, die Ihnen nicht gehören, wird die Verwendung eines Google-ID-Tokens empfohlen, da Sie https://accounts.google.com oder accounts.google.com nur als Aussteller für alle Dienstkonten zulassen müssen.

Anwendungsfall

JWTs und Dienstkonten eignen sich gut für Mikrodienste. Weitere Informationen finden Sie unter Mit Dienstkonto authentifizieren.