Auf dieser Seite erhalten Sie grundlegende Informationen zu API-Schlüsseln sowie zur Authentifizierung. Sie erfahren, wie die einzelnen Schemas verwendet werden, worin sie sich unterscheiden und in welchen Szenarien API-Schlüssel von Vorteil sind.
API-Schlüssel für Projekte – Authentifizierung für Nutzer
Cloud Endpoints unterstützt sowohl API-Schlüssel als auch Authentifizierungsschemas wie Firebase oder Auth0. Sie unterscheiden sich im Wesentlichen so:
API-Schlüssel identifizieren das aufrufende Projekt, d. h. die Anwendung oder Website, von der ein API-Aufruf ausgeht.
Authentifizierungstokens identifizieren einen Nutzer, d. h. die Person, von der die Anwendung oder Website verwendet wird.
API-Schlüssel ermöglichen die Projektautorisierung
Damit Sie entscheiden können, welches Schema am geeignetsten ist, müssen Sie wissen, was durch API-Schlüssel und Authentifizierung ermöglicht wird.
API-Schlüssel bieten Folgendes:
Projekterkennung: Identifiziert die Anwendung oder das Projekt, die bzw. das diese API aufruft.
Projektautorisierung: Prüft, ob der aufrufenden Anwendung Zugriff gewährt wurde, um die API aufzurufen, und ob sie die API in dem Projekt aktiviert hat.
API-Schlüssel sind nicht so sicher wie Authentifizierungstokens (siehe Wie sicher sind API-Schlüssel?), sie identifizieren jedoch die Anwendung oder das Projekt, die bzw. das eine API aufruft. Sie werden im aufrufenden Projekt generiert und Sie können ihre Verwendung auf eine Umgebung wie einen IP-Adressbereich oder eine Android- oder iOS-App einschränken.
Durch die Identifizierung des aufrufenden Projekts können Sie API-Schlüssel verwenden, um Nutzungsinformationen mit diesem Projekt zu verknüpfen. API-Schlüssel ermöglichen, dass der Extensible Service Proxy (ESP) Aufrufe von Projekten ablehnen kann, denen kein Zugriff gewährt wurde oder die in der API nicht aktiviert wurden.Nutzerauthentifizierung
Authentifizierungsschemas erfüllen im Gegensatz dazu zwei Zwecke:
Nutzerauthentifizierung: Bestätigt zuverlässig, dass der aufrufende Nutzer tatsächlich der ist, der er angibt zu sein.
Nutzerautorisierung: Prüft, ob der Nutzer Zugriff erhalten soll, um die Anfrage zu stellen.
Authentifizierungsschemas bieten einen sicheren Weg zum Identifizieren des aufrufenden Nutzers. Endpoints prüft außerdem, ob das Authentifizierungstoken zum Aufrufen einer API berechtigt ist. Anhand dieser Authentifizierung entscheidet der API-Server über die Autorisierung einer Anfrage.
Informationen zum Identifizieren des aufrufenden Nutzers finden Sie unter Nutzer authentifizieren.
API-Schlüssel identifizieren zwar das aufrufende Projekt, aber nicht den aufrufenden Nutzer. Wenn Sie beispielsweise eine Anwendung erstellt haben, die eine API aufruft, kann ein API-Schlüssel die aufrufende Anwendung identifizieren, jedoch nicht die Identität der Person, die die Anwendung verwendet.
Weitere Informationen zu einer sichereren Möglichkeit, die Aufrufberechtigungen für Ihre API auf bestimmte Projekte oder Dienste zu beschränken, finden Sie unter Authentifizierung zwischen Diensten.
Wie sicher sind API-Schlüssel?
API-Schlüssel gelten generell nicht als sicher. Sie sind normalerweise für Clients zugänglich, sodass es einfach ist, sie zu stehlen. Da der gestohlene Schlüssel seine Gültigkeit beibehält, kann er unbefristet verwendet werden, wenn er nicht vom Projektinhaber aufgehoben oder regeneriert wird. Sie können das Problem zwar minimieren, indem Sie Beschränkungen für API-Schlüssel festlegen, jedoch gibt es bessere Möglichkeiten zur Autorisierung.
Beispiele finden Sie unter Nutzer authentifizieren.
Einsatzbereiche für API-Schlüssel
Eine API kann einen Teil oder alle ihre Methoden zum Anfordern von API-Schlüsseln einschränken. Dies ist in folgenden Fällen sinnvoll:
Sie möchten anonymen Traffic blockieren. API-Schlüssel identifizieren den Traffic einer Anwendung für den Ersteller der API, wenn der Entwickler der Anwendung gemeinsam mit dem API-Ersteller ein Problem beheben oder die Nutzung der Anwendung demonstrieren möchte.
Sie möchten die Anzahl der Aufrufe Ihrer API steuern.
Sie möchten Nutzungsmuster im API-Traffic identifizieren. Informationen zur Anwendungsnutzung finden Sie unter APIs und Dienste.
Sie möchten Protokolle nach API-Schlüsseln filtern.
API-Schlüssel eignen sich nicht für folgende Zwecke:
Zum Identifizieren einzelner Nutzer: API-Schlüssel identifizieren keine Nutzer, sondern Projekte
Für eine sichere Autorisierung
Zum Identifizieren der Ersteller eines Projekts
Service Infrastructure bietet keine Methode, um Projekte direkt über API-Schlüssel zu suchen.