Webanwendungen mit OCI-API-Gateway und OpenID Connect sichern

Die Integration von Legacy-Webanwendungen mit modernen Identitätsprovidern erfordert in der Regel die Änderung des Legacy-Anwendungscodes und die Änderung der Benutzeroberfläche. Anstatt Zeit und Ressourcen für die neue benutzerdefinierte Entwicklung auszugeben, investieren Sie in eine Architektur, mit der Sie sich auf die Geschäftslogik anstatt auf den Authentifizierungsablauf konzentrieren können.

Einige Legacy-Anwendungen unterstützen OpenID Connect nicht direkt. Beim Wechsel in die Cloud können Sie das Oracle Cloud Infrastructure-(OCI-)API-Gateway als Netzwerkzugriffspunkt verwenden, um die Authentifizierung mit Benutzern, dem Identitätsprovider und der Anwendung zu vermitteln. Anstatt dass alle Anwendungen die OpenID Connect-Abläufe direkt hinzufügen müssen, kann OCI API Gateway den Zugriff standardisiert im Netzwerk erzwingen. Entwickler können OCI API Gateway verwenden, um Legacy-Anwendungen zu modernisieren und gleichzeitig moderne Anwendungen zu verbessern.

Architektur

OCI API Gateway ist ein serverloser, vollständig verwalteter Service in OCI, mit dem API-Endpunkte und Webanwendungen geschützt werden können. OCI API Gateway bietet Sicherheitsfunktionen wie Ratenbegrenzung, Autorisierungsdurchsetzung, dynamisches Routing, SSL-Durchsetzung und vieles mehr. Das OCI-API-Gateway kann verwendet werden, um Legacy-Webanwendungen zu sichern, die OpenID-Authentifizierungsunterstützung erfordern. OCI API Gateway kann als zentrales Sicherheitsmodul für Webanwendungen fungieren, die in privaten OCI-Subnetzen gehostet werden. OCI API Gateway ist unabhängig vom Identitätsprovider und kann in jeden unterstützten OAuth 2.0-Provider wie Okta, Google, Amazon und Auth0 integriert werden, um nur einige zu nennen.

Das OpenID Connect-Protokoll ist ein einfacher Identitätslayer über dem OAuth 2.0-Protokoll. Mit OpenID Connect können verschiedene Anwendungstypen wie Browser, mobile Anwendungen und Desktopclients Authentifizierungs- und Identitätsmanagement auf sichere, zentralisierte und standardisierte Weise unterstützen. Apps, die das OpenID Connect-Protokoll nutzen, verlassen sich auf Identitätsprovider, um Authentifizierungsprozesse sicher zu verarbeiten und Benutzeridentitäten zu überprüfen. OpenID Connect ermöglicht Single Sign-On für verschiedene Anwendungen, indem die Benutzerverwaltung mit einem Identitätsprovider wie Oracle Cloud Infrastructure Identity and Access Management zentralisiert wird.

OCI-API-Gateway fungiert als Netzwerkzugriffspunkt zur Vermittlung der Authentifizierung mit Benutzern, dem Identitätsprovider und der Anwendung. Wenn Sie OCI-API-Gateway zwischen Anwendungen und Clients platzieren, kann OCI-API-Gateway die Anforderungen abfangen und den OpenID Connect-Autorisierungsablauf verarbeiten.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.



secure-web-applications-oci-api-gateway-open-id-architecture.zip

Das folgende Diagramm zeigt den Authentifizierungsablauf für die anfängliche Autorisierung.



secure-web-applications-oci-api-gateway-open-id-data-flow.zip

  1. Die Clientanwendung fordert den Zugriff auf die Backend-Services über OCI API Gateway an.
  2. OCI-API-Gateway leitet den Client an den Identitätsprovider weiter.
  3. Der Client authentifiziert sich beim Identitätsprovider. Bei erfolgreicher Authentifizierung erhält der Client ein Token, das die Autorisierung bereitstellt.
  4. Der Identitätsprovider leitet den Client mit dem Zugriffstoken an OCI-API-Gateway um.
  5. OCI-API-Gateway validiert das Zugriffstoken mit dem Identitätsprovider.
  6. Wenn die Tokenvalidierung erfolgreich ist, leitet das OCI-API-Gateway an den entsprechenden Backend-Service weiter und gibt die erfüllte Antwort an den Client zurück.

Wenn ein Client bereits autorisiert ist, ähnelt der Ablauf dem folgenden Diagramm.



secure-web-applications-oci-api-gateway-open-id-data-flow-authorized.zip

  1. Nachdem ein Token abgerufen wurde, cachen Browser Token für nachfolgende Anforderungen an dieselbe Anwendung.
  2. OCI-API-Gateway validiert das Token mit dem Identitätsprovider, um sicherzustellen, dass der Client Zugriff auf Backend-Services hat.
  3. Wenn der Client autorisiert ist, leitet OCI-API-Gateway an den entsprechenden Backend-Service weiter und gibt die erfüllte Antwort an den Client zurück.

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-Domains bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie voneinander trennen (innerhalb von Ländern oder sogar Kontinenten).

  • 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. Aus diesem Grund ist es wahrscheinlich, dass ein Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.

  • 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.

  • Virtual Cloud Network (VCN) und Subnetze

    Ein VCN ist ein anpassbares, Software-definiertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige 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.

  • 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 im öffentlichen Internet verfügbar machen können. Die Endpunkte unterstützen API-Validierung, Anforderungs- und Reaktionstransformation, CORS, Authentifizierung und Autorisierung und Anforderungsbegrenzung.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) ist die Access Control Plane 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.

  • FastConnect

    Mit Oracle Cloud Infrastructure FastConnect können Sie ganz einfach eine dedizierte, private Verbindung zwischen Ihrem Data Center und Oracle Cloud Infrastructure erstellen. FastConnect bietet Optionen mit höherer Bandbreite und eine zuverlässigere Netzwerkerfahrung im Vergleich zu internetbasierten Verbindungen.

  • OCI und Azure Interconnect

    Oracle Cloud und Microsoft Azure Interconnect ist das erste Multicloud-Angebot von Oracle. Er stellt eine direkte Netzwerkverbindung zwischen bestimmten Azure- und Oracle Cloud Infrastructure-(OCI-)Data Centern auf der ganzen Welt bereit. Damit können Azure-Administratoren und -Entwickler ihre Anwendungen mit Anwendungen und Services verbinden, die in OCI ausgeführt werden, ohne dedizierte Links zu erstellen oder ihren Anwendungsdatenverkehr im öffentlichen Internet zu senden.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.
  • OCI API Gateway

    Sie können das OCI-API-Gateway nutzen, um REST-APIs verfügbar zu machen und Single Sign-On-Unterstützung für Ihre Webanwendungen zu aktivieren. OCI API Gateway kann auch als zentrales Sicherheitsmodul für Anwendungen angegeben werden, um die Sicherheitsimplementierung an OCI API Gateway auszulagern. Dadurch werden die mit Implementierung, Wartung und Komplexität verbundenen Kosten minimiert.

Hinweise

Beachten Sie Folgendes, wenn Sie diese Referenzarchitektur bereitstellen.

  • Cross-Site-Request-Forgery-(CSRF-)Schutz

    Ein Angreifer kann einen CSRF-Angriff mounten, indem er das Vorhandensein eines Browsercookies ausnutzt, damit Benutzer unbeabsichtigte Befehle an eine Webanwendung wie ein OCI-API-Gateway weiterleiten können. Wenn die Anwendung ermittelt, dass der Benutzer aufgrund des vorhandenen Browsercookies bereits erfolgreich authentifiziert wurde, führt die Anwendung den Befehl mit potenziell schädlichen Konsequenzen aus.

    Wenn Sie eine Validierungs-Policy vom Typ OAuth 2.0 introspection endpoint und eine Validierungsfehler-Policy vom Typ OAuth 2.0 definieren, geben Sie an, wie OCI-API-Gateway ein neues JWT-Token speichern kann, das mit dem OpenID Connect-Autorisierungsablauf abgerufen wird.

    Wählen Sie Use cookies for session, wenn Sie neue JWT-Token in einem Sessioncookie speichern möchten. Um potenzielle CSRF-Angriffe zu verhindern, gibt OCI API Gateway ein CSRF-Token auch in einem X-CSRF-TOKEN-Antwortheader zurück, wenn es das Token in einem Sessioncookie speichert. Nachfolgende Anforderungen an das OCI-API-Gateway (außer GET-Anforderungen) müssen das CSRF-Token zusätzlich zum JWT-Token im Sessioncookie in einen Anforderungsheader X-CSRF-TOKEN aufnehmen.

  • CORS (Cross-Origin Resource Sharing)

    Webanwendungen und andere in der Anwendung verwendete REST-APIs müssen möglicherweise CORS unterstützen, da die Anforderungen über das OCI-API-Gateway von Webbrowsern umgeleitet werden.

Mehr erfahren

Erfahren Sie mehr über die Sicherung von Webanwendungen mit OCI API Gateway und OpenID Connect.

Prüfen Sie die folgenden zusätzlichen Ressourcen:

Bestätigungen

Autoren:

  • Subburam Mathuraiveeran
  • Robert Wunderlich
  • Shyam Suchak