Token an Autorisiererfunktionen zum Hinzufügen von Authentifizierung und Autorisierung zu API-Deployments übergeben

Erfahren Sie, wie Sie mit Single-Argument-Autorizer-Funktionen und Zugriffstoken Authentifizierungs- und Autorisierungsfunktionen zu API-Gateways mit dem API-Gateway-Service hinzufügen.

Sie können einem API-Gateway Authentifizierungs- und Autorisierungsfunktionen hinzufügen, indem das API-Gateway ein Multi-Argument- oder Single-Argument-Zugriffstoken übergeben, das in einer Anforderung an eine Autorisiererfunktion enthalten ist, die zur Validierung in OCI Functions bereitgestellt ist (wie in diesem Thema beschrieben). Alternativ können Sie festlegen, dass das API-Gateway selbst die in einer Anforderung enthaltenen Token validiert (wie unter Token zum Hinzufügen von Authentifizierung und Autorisierung zu API-Deployments validieren beschrieben).

Sie können eine Authentifizierungs- und Autorisierungsfunktionalität zu API-Gateways hinzufügen, indem Sie eine "Autorisiererfunktion" schreiben, die folgende Voraussetzungen erfüllt:

  • Verarbeitet Anforderungsattribute, um die Identität eines API-Clients über einen Identitätsprovider zu verifizieren.
  • Legt die Vorgänge fest, die der API-Client ausführen darf.
  • Gibt die Vorgänge, die der API-Client ausführen darf, als eine Liste mit "Zugriffsgeltungsbereich" zurück (ein "Zugriffsgeltungsbereich" ist eine beliebige Zeichenfolge zur Bestimmung des Zugriffs).
  • Gibt optional ein Schlüssel/Wert-Paar zur Verwendung durch das API-Deployment zurück. Beispiel: Als Kontextvariable für die Verwendung in einer HTTP-Backend-Definition (siehe Kontextabhängige Variablen zu Policys und HTTP-Backend-Definitionen hinzufügen).

Je nach benötigter Funktionalität können Sie Folgendes schreiben:

  • (Empfohlen) Eine Autorisiererfunktion mit mehreren Argumenten, die ein benutzerdefiniertes Zugriffstoken mit mehreren Argumenten akzeptiert, das ein oder mehrere Elemente einer Anforderung enthält (siehe Autorisiererfunktion mit mehreren Argumenten erstellen (empfohlen)). Beachten Sie, dass Autorisiererfunktionen mit mehreren Argumenten einzelne Zugriffstoken akzeptieren können, die in einem Anforderungsheader oder Abfrageparameter enthalten sind.
  • Eine Autorisierungsfunktion mit einem Argument, die ein Zugriffstoken mit einem Argument akzeptiert, das einen einzelnen Wert enthält, der in einem Anforderungsheader oder Abfrageparameter in einer Anforderung enthalten ist (siehe Autorisierungsfunktion mit einem Argument erstellen).

Mit einer Autorisiererfunktion mit mehreren Argumenten (und nicht mit einem Argument) kann ein API-Gateway eine feiner granulierte, anforderungsbasierte Authentifizierung ausführen. Eine Autorisiererfunktion mit mehreren Argumenten kann Entscheidungsservices und Policy Agents mit Attributen aus dem Zugriffstoken und mit anderen Anforderungselementen wie Abfrageparametern, Hostname und Subdomain abfragen.

Hinweis

Oracle empfiehlt aufgrund ihrer zusätzlichen Vielseitigkeit die Verwendung von Autorisiererfunktionen mit mehreren Argumenten anstelle von Autorisiererfunktionen mit nur einem Argument. Autorisiererfunktionen mit nur einem Argument wurden in früheren Releases bereitgestellt und werden weiterhin unterstützt. Da Autorisiererfunktionen mit mehreren Argumenten jedoch auch Zugriffstoken mit einem Argument akzeptieren können, die in Anforderungsheadern und Abfrageparametern enthalten sind, gibt es keinen Grund, neue Autorisiererfunktionen mit einem Argument zu erstellen. Darüber hinaus sind Autorisiererfunktionen mit nur einem Argument für eine Einstellung in einem zukünftigen Release geplant.

Nachdem Sie die Autorisiererfunktion geschrieben haben, können Sie sie dann in OCI Functions bereitstellen (siehe Autorisiererfunktion bereitstellen).

Ein zugehöriges Entwicklertutorial mit einem Beispiel für eine Autorisiererfunktion mit einem einzelnen Argument finden Sie unter Funktionen: API-Schlüssel mit API-Gateway validieren.

Nachdem Sie die Autorisiererfunktion bereitgestellt haben, aktivieren Sie die Authentifizierung und Autorisierung für ein API-Deployment, indem Sie zwei unterschiedliche Arten von Anforderungs-Policys in die API-Deployment-Spezifikation aufnehmen:

  • Eine Authentifizierungsanforderungs-Policy für das gesamte API-Deployment, die Folgendes angibt:
    • Die OCID der Autorisiererfunktion, die Sie in OCI Functions bereitgestellt haben, die Authentifizierung und Autorisierung ausführt.
    • Die Anforderungsattribute, die an die Autorisiererfunktion übergeben werden sollen.
    • Ob nicht authentifizierte API-Clients auf Routen im API-Deployment zugreifen dürfen.
  • Eine Autorisierungsanforderungs-Policy für jede Route, die die Vorgänge angibt, die ein API-Client ausführen darf, basierend auf den Zugriffsgeltungsbereichen des API-Clients, wie von der Autorisiererfunktion zurückgegeben.

Sie können Authentifizierungsanforderungs-Policys und Autorisierungsanforderungs-Policys zu einer API-Deployment-Spezifikation hinzufügen, indem Sie:

  • Konsole verwenden.
  • Eine JSON-Datei bearbeiten.
Tipp

Um Probleme mit der Autorisiererfunktion zu beheben, sollten Sie ein Ausführungslog zum API-Deployment hinzufügen, dessen Logebene auf "Info" gesetzt ist (siehe Logging zu API-Deployments hinzufügen).

Um in den Logdateien Details zur Authentifizierung und Autorisierung anzuzeigen, suchen Sie nach customAuth.