Mit Dienstkonto authentifizieren

Vorbereitung

Folgende Voraussetzungen sollten erfüllt sein:

Authentifizierung konfigurieren

So authentifizieren Sie sich mit einem Dienstkonto:

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

    import endpoints
    
  2. Fügen Sie dem API-Decorator ein Ausstellerobjekt für das Dienstkonto hinzu. Beispiel:

    @endpoints.api(
        name='echo',
        version='v1',
        issuers={'serviceAccount': endpoints.Issuer(
            'YOUR_SERVICE_ACCOUNT_EMAIL',
            'https://www.googleapis.com/robot/v1/metadata/x509/YOUR_SERVICE_ACCOUNT_EMAIL')},
        audiences={'serviceAccount': ['YOUR_AUDIENCE']})
    
    • Ersetzen Sie echo durch den Namen der API.
    • Ersetzen Sie v1 durch die API-Version.
    • Ersetzen Sie YOUR_SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse Ihres Dienstkontos.
    • Ersetzen Sie YOUR_AUDIENCE durch den vom aufrufenden Dienst gesendeten Wert im Feld aud.
  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 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. Die API muss bei jedem neu hinzugefügten Client neu bereitgestellt werden.