Authentication

Authentication definiert die Authentifizierungskonfiguration für eine API.

Beispiel für eine API für die externe Verwendung:

name: calendar.googleapis.com
authentication:
  providers:
  - id: google_calendar_auth
    jwksUri: https://www.googleapis.com/oauth2/v1/certs
    issuer: https://securetoken.google.com
  rules:
  - selector: "*"
    requirements:
      providerId: google_calendar_auth
JSON-Darstellung

{
  "rules": [
    {
      object(AuthenticationRule)
    }
  ],
  "providers": [
    {
      object(AuthProvider)
    }
  ]
}
Felder
rules[]

object(AuthenticationRule)

Eine Liste der Authentifizierungsregeln, die für einzelne API-Methoden gelten.

HINWEIS: Alle Dienstkonfigurationsregeln befolgen die Reihenfolge "last one wins" (der Letzte gewinnt).

providers[]

object(AuthProvider)

Definiert eine Reihe von Authentifizierungsanbietern, die ein Dienst unterstützt.

AuthenticationRule (Authentifizierungsregel)

Authentifizierungsregeln für den Dienst

Wenn eine Methode über Authentifizierungsanforderungen verfügt, muss jede Anforderung standardmäßig eine gültige Berechtigung enthalten, die einer der Anforderungen entspricht. Wird mehr als eine Art von Anmeldedaten in einer einzigen Anfrage aufgenommen, gilt dies als Fehler.

Wenn für eine Methode keine Authentifizierungsanforderungen gelten, werden die Anmeldedaten für die Anforderung ignoriert.

JSON-Darstellung

{
  "selector": string,
  "oauth": {
    object(OAuthRequirements)
  },
  "allowWithoutCredential": boolean,
  "requirements": [
    {
      object(AuthRequirement)
    }
  ]
}
Felder
selector

string

Wählt die Methoden aus, für die diese Regel gelten.

Details zur Syntax finden Sie unter selector.

oauth

object(OAuthRequirements)

Die Anforderungen für OAuth-Anmeldedaten.

allowWithoutCredential

boolean

Wenn "true", akzeptiert der Dienst API-Schlüssel ohne weitere Anmeldedaten.

requirements[]

object(AuthRequirement)

Anforderungen für zusätzliche Authentifizierungsanbieter.

OAuthRequirements (OAuth-Anforderungen)

OAuth-Bereiche sind eine Möglichkeit, Daten und Berechtigungen für Daten zu definieren. Beispielsweise sind Bereiche für "Lesezugriff auf Google Kalender" und "Zugriff auf Cloud-Platform" definiert. Nutzer können dem Geltungsbereich einer Anwendung zustimmen, indem sie ihr die Berechtigung erteilen, in ihrem Namen auf diese Daten zuzugreifen.

OAuth-Bereichsspezifikationen sollten nicht so detailliert sein; ein Nutzer muss die Textbeschreibung des Bereichs sehen und verstehen können.

Verwenden Sie in den meisten Fällen: einen oder höchstens zwei OAuth-Bereiche für eine ganze Produktfamilie. Verfügt Ihr Produkt über mehrere APIs, sollten Sie den OAuth-Bereich für alle diese APIs freigeben.

Wenn Sie detailliertere OAuth-Zustimmungsbildschirme benötigen, kontaktieren Sie das Produktmanagement und fragen Sie, wie Entwickler sie in der Praxis einsetzen.

Bitte beachten Sie, dass, eine Anfrage trotzdem fehlschlagen kann, da das Back-End zusätzliche Bereiche oder Berechtigungen benötigt. Dies kann geschehen, obwohl jeder kanonische Bereich ausreichend ist, um eine Anforderung zu akzeptieren und an das Back-End zu übergeben.

JSON-Darstellung

{
  "canonicalScopes": string
}
Felder
canonicalScopes

string

Die Liste öffentlich dokumentierter OAuth-Bereiche, denen Zugriff gewährt wird. Ein OAuth-Token, das einen dieser Bereiche enthält, wird akzeptiert.

Beispiel:


 canonicalScopes: https://www.googleapis.com/auth/calendar,
                   https://www.googleapis.com/auth/calendar.read