Ressourcenbasierten Zugriff für REST-Endpunkte mit OCI API Gateway konfigurieren

Mit der ressourcenbasierten Zugriffskontrolle können Sie den Zugriff auf Ressourcen basierend auf den Attributen und Eigenschaften des Benutzers verwalten. Dies unterscheidet sich von der rollenbasierten Zugriffskontrolle, bei der rollenbasierter Zugriff auf Ressourcen erteilt wird. Mit der ressourcenbasierten Zugriffskontrolle können Berechtigungen für Ihre REST-API-Collections (Deployments) einzelnen Consumern granular zugewiesen werden.

Im Folgenden finden Sie einige Vorteile der Implementierung der ressourcenbasierten Zugriffskontrolle für REST-API-Endpunkte:

  • Implementieren Sie feingranulierte Kontrolle für von Oracle SaaS und Oracle Cloud Infrastructure (OCI) gehostete API-Endpunkte.
  • Vermeiden Sie es, Backend-API-Zugangsdaten für Endbenutzer und Anwendungen verfügbar zu machen.
  • Setzen Sie ressourcenbasierten Zugriff für APIs durch, die über verschiedene OCI-Services wie Oracle Cloud Infrastructure Kubernetes Engine und OCI Functions verfügbar sind.

OCI API Gateway aktiviert zusätzliche API-Managementfeatures bei der Implementierung der ressourcenbasierten Zugriffskontrolle für REST-Endpunkte:

  • Unterstützen Sie die Monetarisierung von Unternehmens-APIs mit Nutzungsplänen.
  • Steuern Sie die API-Nutzung mit Ratenbegrenzung und Quotas.
  • Nutzen Sie Dashboards zur Überwachung der konsolidierten abonnentenbasierten API-Nutzung.

Architektur

Diese Architektur beschreibt die ressourcenbasierte Zugriffskontrolle für REST-Endpunkte, die auf OCI gehostet werden. Benutzer und Anwendungsanforderungen von Human Capital Management (HCM) und Supply Chain and Manufacturing (SCM) können nur auf ihre jeweiligen Ressourcen zugreifen. REST-Endpunkte werden über Oracle SaaS-Anwendungen und Oracle-Services wie OCI Functions, Oracle Integration Cloud Service und OCI Kubernetes Engine gehostet und bereitgestellt.

HCM- und SCM-Deployments werden in OCI API Gateway erstellt. REST-Endpunkte werden unter den jeweiligen Deployments als Backend-Services konfiguriert. Vertrauliche OCI Identity and Access Management-Anwendungen werden für HCM- und SCM-Domains verwendet. Der Geltungsbereich und die Zielgruppendetails der vertraulichen Clientanwendungen müssen mit der jeweiligen JWT-Validierungskonfiguration für OCI API Gateway-Deployments übereinstimmen. HCM- und SCM-Consumer müssen Zugriff auf ihre vertrauliche Zugriffstoken-URL, Client-ID, das Client Secret und den Geltungsbereich für die Tokengenerierung haben. Teilen Sie OCI API Gateway-HCM- und SCM-Deployment-Endpunkte mit Verbrauchern.

Stellen Sie OCI API Gateway in einem öffentlichen Subnetz bereit, um den gesamten Internettraffic abzufangen. OCI Functions und Oracle Integration Cloud Service sind native OCI-Services, die REST-APIs bereitstellen, die als Backend-Deployments von OCI API Gateway konfiguriert sind. OCI API Gateway kommuniziert über das Servicegateway mit diesen REST-APIs. OCI Kubernetes Engine-Containerservices können in privaten Subnetzen gehostet werden, und die REST-Endpunkte, die über OCI Kubernetes Engine-Cluster verfügbar gemacht werden. Die Kommunikation zwischen OCI API Gateway- und OCI Kubernetes Engine-Clustern kann über Sicherheitslisten und Routingregeln aktiviert werden.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.



ressourcenbasiert-zugriff-rest-api-arch.zip

In der folgenden Abbildung ist der Datenfluss dargestellt:



Der Datenfluss für HCM- und SCM-Benutzer sieht etwa folgendermaßen aus:

  1. (a,b) Vertrauliche Clientanwendung und Ressourcenanwendung mit Geltungsbereich und Zielgruppe konfigurieren.
  2. (a,b) Konfigurieren Sie das OCI API Gateway-Deployment mit REST-Endpunkt, -Geltungsbereich und -Zielgruppe.
  3. (a,b) Die Benutzeranwendung generiert ein JWT-Token mit der vertraulichen Clientanwendung. Das Token enthält den codierten Geltungsbereich und die Zielgruppe.
  4. (a,b) Ein Benutzer löst ein OCI API Gateway-Endpunkt-Deployment mit seinem Token aus.
  5. (a,b) OCI API Gateway validiert das Token mit dem konfigurierten Geltungsbereich und der konfigurierten Zielgruppe im Deployment.
  6. (a,b) Wenn die Validierung erfolgreich ist, wird der jeweilige API-Zugriff gemäß der Routing-Konfiguration gewährt.
  7. (a,b) Wenn die Validierung nicht erfolgreich ist, wird ein nicht autorisierter 401-Fehler zurückgegeben.

Die Architektur umfasst die folgenden Komponenten:

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domain bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

  • Availability-Domains

    Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Daher sollte ein Fehler in einer Availability-Domain sich nicht auf die anderen Availability-Domains in der Region auswirken.

  • Faultdomains

    Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverausfälle, Systemwartungen und Stromausfälle innerhalb einer Faultdomain tolerieren.

  • Virtuelles Cloud-Netzwerk (VCN) und Subnetze

    Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs die Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.

  • OCI Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine oder OKE) ist ein vollständig verwalteter, skalierbarer und hoch verfügbarer Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen benötigen, und Kubernetes Engine stellt sie in Oracle Cloud Infrastructure in einem vorhandenen Mandanten bereit. OKE automatisiert mit Kubernetes das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen über Cluster von Hosts hinweg.

  • API Gateway

    Mit Oracle API Gateway können Sie APIs mit privaten Endpunkten veröffentlichen, auf die Sie über Ihr Netzwerk zugreifen können, und die Sie bei Bedarf dem öffentlichen Internet zur Verfügung stellen können. Die Endpunkte unterstützen API-Validierung, Anforderungs- und Antworttransformation, CORS, Authentifizierung und Autorisierung sowie Anforderungsbegrenzung.

  • Functions

    Oracle Cloud Infrastructure Functions ist eine vollständig verwaltete, mehrmandantenfähige, hoch skalierbare, bedarfsgesteuerte Functions-as-a-Service-(FaaS-)Plattform. Es wird von der Open-Source-Engine Fn Project angetrieben. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.

  • Integration

    Oracle Integration ist ein vollständig verwalteter Service, mit dem Sie Ihre Anwendungen integrieren, Prozesse automatisieren, Einblicke in Ihre Geschäftsprozesse erlangen und visuelle Anwendungen erstellen können.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) ist die Zugriffskontrollebene für Oracle Cloud Infrastructure (OCI) und Oracle Cloud Applications. Mit der IAM-API und der Benutzeroberfläche können Sie Identitätsdomains und die Ressourcen innerhalb der Identitätsdomain verwalten. Jede OCI-IAM-Identitätsdomain stellt eine eigenständige Identity and Access Management-Lösung oder eine andere Benutzerpopulation dar.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • Produktions- und Nicht-Produktionsumgebungen

    Erstellen Sie mehrere Identitätsdomains und separate OCI API Gateway-Instanzen für Produktion und Nicht-Produktion, um den Benutzerzugriff und die Isolation besser zu kontrollieren.

  • Sicherheit

    Speichern Sie die Backend-Zugangsdaten für verbesserte Sicherheit in OCI Vault. Generieren Sie das Client Secret neu, wenn das Client Secret gefährdet ist.

Hinweise

Beachten Sie Folgendes, wenn Sie diese Referenzarchitektur implementieren:

  • Performance

    In OCI API Gateway gibt es Funktionen zur Ratenbegrenzung und Quota, mit denen Sie die Performance maximieren und die Latenz reduzieren können. Hier sind einige der Vorteile:

    • Sorgen Sie für High Availability und einen fairen Einsatz von Ressourcen, indem Sie Ihr Backend vor zu vielen Anforderungen schützen.
    • Verhindern Sie Denial-of-Service-Angriffe.
    • die Kosten der Ressourcennutzung einzuschränken.
    • Schränken Sie die Nutzung von APIs durch die Benutzer Ihrer Kunden ein, um APIs zu monetarisieren.
  • Sicherheit

    Richten Sie Governance-Prozesse ein, um Clientzugangsdaten und Consumer zu verwalten.

  • Verfügbarkeit

    Erstellen Sie API-Gateways in regionalen Subnetzwerken (und nicht in Availability-Domain-spezifischen Subnetzwerken), um High Availability sicherzustellen.

  • Kostenfaktor

    OCI API Gateway ist eine kostengünstige Option mit einem fairen Preismodell.

Danksagungen

  • Autor: Subburam Mathuraiveeran
  • Mitwirkende: Wei Han, Robert Wunderlich