Auf dieser Seite wird beschrieben, wie Sie in Ihrer API mithilfe von Cloud Endpoints Frameworks die Unterstützung der Nutzerauthentifizierung von Clientanwendungen hinzufügen. Derzeit werden Android- und JavaScript-Clients unterstützt.
Endpoints Frameworks unterstützt die Nutzerauthentifizierung von Clientanwendungen, die eine der folgenden Methoden verwenden:
Unabhängig davon, welche Authentifizierungsmethode Sie verwenden, müssen Sie in jeder API-Methode, in der Sie die ordnungsgemäße Authentifizierung prüfen möchten, wie in den folgenden Abschnitten beschrieben, nach einem gültigen User suchen:
Voraussetzungen
Folgende Voraussetzungen sollten erfüllt sein:
- Sie haben ein Google Cloud -Projekt erstellt. 
-  Wenn Sie in Ihrem Client JWT verwenden, um authentifizierte Anfragen an die API zu senden, muss das JWT im Autorisierungsheader der HTTP-Anfrage enthalten sein. Das JWT sollte folgende erforderlichen Anforderungen erfüllen:
-  iss
-  sub
-  aud
-  iat
-  exp
 
-  
Mit Firebase Auth authentifizieren
So unterstützen Sie Aufrufe von Clients, die Firebase Auth verwenden:
- Importieren Sie die App Engine Cloud Endpoints API in Ihre API-Klasse: - import endpoints
- Fügen Sie dem API-Decorator ein Firebase-Ausstellerobjekt für jeden Client hinzu. Beispiel: - @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'firebase': endpoints.Issuer( 'https://securetoken.google.com/YOUR_PROJECT_ID, 'https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com')})- Ersetzen Sie YOUR_API_NAMEdurch den Namen der API.
- Ersetzen Sie VERSION_NUMBERdurch Ihre API-Version, z. B.v1.
- Ersetzen Sie YOUR_PROJECT_ID durch die Google CloudProjekt-ID des Kunden.
 
- Ersetzen Sie 
- Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger - Uservorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler- error 401aus:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Stellen Sie die Endpoints API bereit. Die API muss bei jedem neu hinzugefügten Client neu bereitgestellt werden. 
Firebase-Authentifizierung zu einem Client hinzufügen
Sie können Ihren Code um die Firebase-Authentifizierung erweitern, wie in der Firebase-Dokumentation beschrieben. Dem Client muss ein Google Cloud -Projekt zugewiesen sein und die Projekt-ID muss in der Konfiguration des Firebase-Ausstellers der API aufgeführt sein.
Mit Auth0 authentifizieren
So unterstützen Sie Aufrufe von Clients, die Auth0 verwenden:
- Importieren Sie die App Engine Endpoints API in Ihre API-Klasse: - import endpoints
- Fügen Sie dem API-Decorator ein Auth0-Ausstellerobjekt für jeden Client hinzu. Beispiel: - @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'auth0': endpoints.Issuer( 'https://YOUR_ACCOUNT_NAME.auth0.com', 'https://YOUR_ACCOUNT_NAME.auth0.com/.well-known/jwks.json')})- Ersetzen Sie YOUR_API_NAMEdurch den Namen der API.
- Ersetzen Sie VERSION_NUMBERdurch Ihre API-Version, z. B.v1.
- Ersetzen Sie YOUR_ACCOUNT_NAMEdurch den für den Client verwendeten Auth0-Kontonamen.
 
- Ersetzen Sie 
- Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger - Uservorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler- error 401aus:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Stellen Sie die API bereit. Die API muss bei jedem neu hinzugefügten Client neu bereitgestellt werden. 
Auth0-Authentifizierung zu einem Client hinzufügen
Sie können Ihren Code um die Auth0-Authentifizierung erweitern, wie in der Auth0-Dokumentation beschrieben. Der Client muss in der Auth0-Ausstellerkonfiguration der API aufgeführt sein.
Mit Google-ID-Tokens authentifizieren
So unterstützen Sie Aufrufe von Clients, die für die Authentifizierung Google-ID-Tokens verwenden:
- Fordern Sie für jede Clientanwendung eine OAuth 2-Client-ID an. Der Inhaber der Clientanwendung muss die Client-ID in der Google Cloud Console generieren. Eine Anleitung hierzu finden Sie unter Client-IDs erstellen. 
- Importieren Sie die App Engine Endpoints-API in Ihre API-Klasse: - import endpoints
- Geben Sie in den - allowed_client_idsalle Client-IDs an, denen Sie Zugriff auf Ihre API gewähren möchten. Geben Sie außerdem die Client-IDs von Android-Clients im Feld- audiencesdes API-Decorators an. Beispiel:- @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', allowed_client_ids=ALLOWED_CLIENT_IDS, audiences=[ANDROID_AUDIENCE]) class AuthedGreetingApi(remote.Service): # ...- Ersetzen Sie - ALLOWED_CLIENT_IDSdurch die Liste der OAuth 2-Client-IDs, die von jedem Clientprojekt generiert wurden, und ersetzen Sie- ANDROID_AUDIENCEdurch die Liste der Android-Webclient-IDs. Die Webclient-ID ist die Client-ID mit dem Zusatz- .apps.googleusercontent.com. Beispiel:- YOUR_CLIENT_ID.apps.googleusercontent.com.
- Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger - Uservorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler- error 401aus:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Stellen Sie die Endpoints API bereit. Die API muss bei jedem neu hinzugefügten Client neu bereitgestellt werden. 
Einem Client die Google-ID-Tokenauthentifizierung hinzufügen
Informationen zum Hinzufügen von Authentifizierungscode zu Clients finden Sie unter:
Weitere Informationen
Hintergrundinformationen zur Nutzerauthentifizierung und zum Unterschied zur API-Schlüsselautorisierung finden Sie unter API-Schlüssel effizient nutzen.