Nutzer authentifizieren

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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:

Vorbereitung

Folgende Voraussetzungen sollten erfüllt sein:

  • Ein Google Cloud-Projekt wurde erstellt.

  • API-Verwaltung hinzugefügt,

  • Wenn Sie JWT in Ihrem Client verwenden, um authentifizierte Anfragen an die API zu senden, muss sich das JWT im Autorisierungsheader einer HTTP-Anfrage befinden. Das JWT sollte folgende erforderliche Anforderungen haben:

    • iss
    • sub
    • aud
    • iat
    • exp

Mit Firebase Auth authentifizieren

So unterstützen Sie Aufrufe von Clients, die Firebase Auth verwenden:

  1. Importieren Sie die App Engine Cloud Endpoints API in Ihre API-Klasse:

    import endpoints
    
  2. 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_NAME durch den Namen der API.
    • Ersetzen Sie VERSION_NUMBER durch Ihre API-Version, z. B. v1.
    • Ersetzen Sie den Code YOUR_PROJECT_ID durch die Google Cloud-Projekt-ID des Clients.
  3. Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger User vorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler error 401 aus:

    user = endpoints.get_current_user()
    # If there's no user defined, the request was unauthenticated, so we
    # raise 401 Unauthorized.
    
  4. Endpunkte API bereitstellen Die Endpunkt-API muss jedes Mal neu bereitgestellt werden, wenn Sie neue Clients hinzufügen.

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:

  1. Importieren Sie die App Engine Endpoints API in Ihre API-Klasse:

    import endpoints
    
  2. 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_NAME durch den Namen der API.
    • Ersetzen Sie VERSION_NUMBER durch Ihre API-Version, z. B. v1.
    • Ersetzen Sie YOUR_ACCOUNT_NAME durch den für den Client verwendeten Auth0-Kontonamen.
  3. Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger User vorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler error 401 aus:

    user = endpoints.get_current_user()
    # If there's no user defined, the request was unauthenticated, so we
    # raise 401 Unauthorized.
    
  4. Stellen Sie die API bereit. Sie müssen die API jedes Mal neu bereitstellen, wenn Sie neue Clients hinzufügen.

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:

  1. Fordern Sie für jede Clientanwendung eine OAuth 2-Client-ID an. Der Inhaber der Clientanwendung muss die Client-ID aus der Google Cloud Console generieren. Eine Anleitung hierzu finden Sie unter Client-IDs erstellen.

  2. Importieren Sie die App Engine Endpoints-API in Ihre API-Klasse:

    import endpoints
    
  3. Geben Sie in den allowed_client_ids alle 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 audiences des 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_IDS durch die Liste der OAuth 2-Client-IDs, die von jedem Clientprojekt generiert wurden, und ersetzen Sie ANDROID_AUDIENCE durch 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.

  4. Prüfen Sie in jeder API-Methode, mit der Sie eine ordnungsgemäße Authentifizierung gewährleisten möchten, ob ein gültiger User vorhanden ist. Wenn dies nicht der Fall ist, geben Sie wie in der folgenden Methodendefinition beispielhaft gezeigt den Fehler error 401 aus:

    user = endpoints.get_current_user()
    # If there's no user defined, the request was unauthenticated, so we
    # raise 401 Unauthorized.
    
  5. Endpunkte API bereitstellen Die Endpunkt-API muss jedes Mal neu bereitgestellt werden, wenn Sie neue Clients hinzufügen.

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.