Abrufen externer Daten für ein PDP in OPA - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Abrufen externer Daten für ein PDP in OPA

Für OPA ist keine zusätzliche Konfiguration erforderlich, wenn alle für eine Autorisierungsentscheidung erforderlichen Daten als Eingabe oder als Teil eines JSON Web Tokens (JWT) bereitgestellt werden können, das als Komponente der Abfrage übergeben wird. (Es ist relativ einfach, SaaS-Kontextdaten als Teil der Abfrageeingabe an OPA zu übergeben JWTs .) OPA kann beliebige JSON-Eingaben im sogenannten Overload-Input-Ansatz akzeptieren. Wenn ein PDP Daten benötigt, die über das hinausgehen, was als Eingabe oder als JWT aufgenommen werden kann, bietet OPA mehrere Optionen zum Abrufen dieser Daten. Dazu gehören Bündelung, Übertragung von Daten (Replikation) und dynamischer Datenabruf.

OPA-Bündelung

Die OPA-Bündelungsfunktion unterstützt den folgenden Prozess für den externen Datenabruf:

  1. Der Policy Enforcement Point (PEP) fordert eine Autorisierungsentscheidung an.

  2. OPA lädt neue Richtlinienpakete herunter, einschließlich externer Daten.

  3. Der Bündelungsdienst repliziert Daten aus Datenquellen.

Wenn Sie die Bündelungsfunktion verwenden, lädt OPA regelmäßig Richtlinien- und Datenpakete von einem zentralen Paketdienst herunter. (OPA bietet nicht die Implementierung und Einrichtung eines Paketdienstes.) Alle Richtlinien und externen Daten, die aus dem Bundle-Dienst abgerufen werden, werden im Arbeitsspeicher gespeichert. Diese Option funktioniert nicht, wenn die externe Datengröße zu groß ist, um im Speicher gespeichert zu werden, oder wenn sich die Daten zu häufig ändern.

Weitere Informationen zur Bündelungsfunktion finden Sie in der OPA-Dokumentation.

OPA-Replikation (Übertragung von Daten)

Der OPA-Replikationsansatz unterstützt den folgenden Prozess für den externen Datenabruf:

  1. Das PEP fordert eine Autorisierungsentscheidung an.

  2. Der Datenreplikator überträgt Daten an OPA.

  3. Der Datenreplikator repliziert Daten aus Datenquellen.

Bei dieser Alternative zum Bündelungsansatz werden Daten an OPA weitergeleitet, anstatt sie regelmäßig von dort abzurufen. (OPA bietet nicht die Implementierung und Einrichtung eines Replikators.) Der Push-Ansatz hat dieselben Datengrößenbeschränkungen wie der Bündelungsansatz, da OPA alle Daten im Arbeitsspeicher speichert. Der Hauptvorteil der Push-Option besteht darin, dass Sie Daten in OPA mit Deltas aktualisieren können, anstatt jedes Mal alle externen Daten zu ersetzen. Dadurch eignet sich die Push-Option besser für Datensätze, die sich häufig ändern. 

Weitere Informationen zur Replikationsoption finden Sie in der OPA-Dokumentation.

Dynamischer OPA-Datenabruf

Wenn die abzurufenden externen Daten zu groß sind, um im OPA-Speicher zwischengespeichert zu werden, können die Daten während der Auswertung einer Autorisierungsentscheidung dynamisch aus einer externen Quelle abgerufen werden. Wenn Sie diesen Ansatz verwenden, sind die Daten immer auf dem neuesten Stand. Dieser Ansatz hat zwei Nachteile: Netzwerklatenz und Zugänglichkeit. Derzeit kann OPA Daten zur Laufzeit nur über eine HTTP-Anfrage abrufen. Wenn die Aufrufe, die an eine externe Datenquelle gehen, keine Daten als HTTP-Antwort zurückgeben können, benötigen sie eine benutzerdefinierte API oder einen anderen Mechanismus, um diese Daten für OPA bereitzustellen. Da OPA Daten nur über HTTP-Anfragen abrufen kann und die Geschwindigkeit beim Abrufen der Daten entscheidend ist, empfehlen wir, dass Sie nach Möglichkeit ein System AWS-Service wie Amazon DynamoDB verwenden, um externe Daten zu speichern.

Weitere Informationen zum Pull-Ansatz finden Sie in der OPA-Dokumentation.

Verwendung eines Autorisierungsdienstes für die Implementierung mit OPA

Wenn Sie externe Daten mithilfe von Bündelung, Replikation oder einem dynamischen Pull-Ansatz abrufen, empfehlen wir, dass der Autorisierungsdienst diese Interaktion ermöglicht. Das liegt daran, dass der Autorisierungsdienst externe Daten abrufen und in JSON umwandeln kann, damit OPA Autorisierungsentscheidungen treffen kann. Das folgende Diagramm zeigt, wie ein Autorisierungsdienst mit diesen drei Ansätzen für den externen Datenabruf funktionieren kann.

Abrufen externer Daten mit OPA

Abrufen externer Daten für den OPA-Flow — Bündel- oder dynamischer Datenabruf zur Entscheidungszeit (im Diagramm mit roten nummerierten Callouts dargestellt):

  1. OPA ruft den lokalen API-Endpunkt für den Autorisierungsdienst auf, der als Bundle-Endpunkt oder als Endpunkt für den dynamischen Datenabruf bei Autorisierungsentscheidungen konfiguriert ist.

  2. Der Autorisierungsdienst fragt die externe Datenquelle ab oder ruft sie auf, um externe Daten abzurufen. (Für einen Bundle-Endpunkt sollten diese Daten auch OPA-Richtlinien und -Regeln enthalten. Bundle-Updates ersetzen alles — sowohl Daten als auch Richtlinien — im OPA-Cache.)

  3. Der Autorisierungsdienst führt alle erforderlichen Transformationen an den zurückgegebenen Daten durch, um sie in die erwartete JSON-Eingabe umzuwandeln.

  4. Die Daten werden an OPA zurückgegeben. Sie werden für die Bundle-Konfiguration im Arbeitsspeicher zwischengespeichert und sofort für dynamische Autorisierungsentscheidungen verwendet.

Abrufen externer Daten für den OPA-Flow-Replikator (im Diagramm mit blauen nummerierten Callouts dargestellt):

  1. Der Replikator (Teil des Autorisierungsdienstes) ruft die externe Datenquelle auf und ruft alle Daten ab, die in OPA aktualisiert werden sollen. Dies kann Richtlinien, Regeln und externe Daten beinhalten. Dieser Aufruf kann in einem festgelegten Rhythmus erfolgen oder als Reaktion auf Datenaktualisierungen in der externen Quelle erfolgen.

  2. Der Autorisierungsdienst führt alle erforderlichen Transformationen an den zurückgegebenen Daten durch, um sie in die erwartete JSON-Eingabe umzuwandeln.

  3. Der Autorisierungsdienst ruft OPA auf und speichert die Daten im Speicher zwischen. Der Autorisierungsdienst kann Daten, Richtlinien und Regeln selektiv aktualisieren.