Benutzerdefinierte Token-Verifizierung mit Lambda-Autorisierern - AWS HealthImaging

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.

Benutzerdefinierte Token-Verifizierung mit Lambda-Autorisierern

HealthImaging implementiert OIDC-Unterstützung über eine Architektur, die Lambda-Autorisierer verwendet, sodass Kunden ihre eigene Token-Verifizierungslogik implementieren können. Dieses Design bietet Ihnen eine flexible Kontrolle darüber, wie Token validiert und wie Zugriffsentscheidungen durchgesetzt werden, und trägt so einer vielfältigen Landschaft von OIDC-kompatiblen Identitätsanbietern () und unterschiedlichen Methoden zur Token-Verifizierung Rechnung. IdPs

Authentifizierungsfluss

So funktioniert die Authentifizierung auf hoher Ebene:

  1. Der Client ruft die DICOMweb API auf: Ihre Anwendung authentifiziert sich bei Ihrem ausgewählten OIDC-Identitätsanbieter und erhält ein signiertes ID-Token (JWT). Für jede DICOMweb HTTP-Anfrage muss der Client das OIDC-Zugriffstoken in den Authorization-Header aufnehmen (normalerweise ein Bearer-Token). Bevor die Anfrage Ihre Daten erreicht, HealthImaging extrahiert Sie dieses Token aus der eingehenden Anfrage und ruft einen Lambda-Autorisierer auf, den Sie konfigurieren.

    1. Der Header folgt normalerweise dem Format:. Authorization: Bearer <token>

  2. Erste Überprüfung: HealthImaging Überprüft Ansprüche auf Zugriffstoken, um offensichtlich ungültige oder abgelaufene Token schnell zurückzuweisen, ohne die Lambda-Funktion unnötig aufzurufen. HealthImaging führt eine erste Überprüfung bestimmter Standardansprüche im Zugriffstoken durch, bevor der Lambda-Autorisierer aufgerufen wird:

    1. iat(Ausgestellt am): HealthImaging prüft, ob die Ausstellungszeit des Tokens innerhalb akzeptabler Grenzen liegt.

    2. exp(Ablaufzeit): HealthImaging Überprüft, ob das Token nicht abgelaufen ist.

    3. nbf(Nicht vor der Uhrzeit): Falls vorhanden, wird HealthImaging sichergestellt, dass das Token nicht vor seiner gültigen Startzeit verwendet wird.

  3. HealthImaging ruft einen Lambda-Autorisierer auf: Wenn die anfängliche Überprüfung des Antrags erfolgreich ist, HealthImaging wird die weitere Token-Überprüfung an die vom Kunden konfigurierte Lambda-Autorisierungsfunktion delegiert. HealthImaging übergibt das extrahierte Token und andere relevante Anforderungsinformationen an die Lambda-Funktion. Die Lambda-Funktion überprüft die Signatur und die Ansprüche des Tokens.

  4. Verifizierung mit einem Identitätsanbieter: Das Lambda enthält benutzerdefinierten Code, der die ID-Token-Signatur überprüft, eine umfassendere Tokenverifizierung durchführt (z. B. Aussteller, Zielgruppe, benutzerdefinierte Ansprüche) und diese Ansprüche bei Bedarf gegenüber dem IdP validiert.

  5. Der Authorizer gibt eine Zugriffsrichtlinie zurück: Nach erfolgreicher Überprüfung bestimmt die Lambda-Funktion die entsprechenden Berechtigungen für die authentifizierte Verwendung. Der Lambda-Autorisierer gibt dann den Amazon-Ressourcennamen (ARN) einer IAM-Rolle zurück, der den Satz der zu erteilenden Berechtigungen darstellt.

  6. Ausführung der Anfrage: Wenn die angenommene IAM-Rolle über die erforderlichen Berechtigungen verfügt, wird mit der Rückgabe der HealthImaging angeforderten Ressource fortgefahren. DICOMWeb Wenn die Berechtigungen nicht ausreichen, HealthImaging lehnt die Anfrage ab und gibt eine entsprechende Fehlermeldung zurück (d. h. 403 Forbidden).

Anmerkung

Die Autorisierungs-Lambda-Funktion wird nicht vom HealthImaging AWS-Service verwaltet. Sie wird in Ihrem Konto ausgeführt. AWS Den Kunden werden der Funktionsaufruf und die Ausführungszeit separat von ihren HealthImaging Gebühren in Rechnung gestellt.

Übersicht über die Architektur

Diagramm, das den Arbeitsablauf zeigt: Client sendet Token, Lambda-Autorisierer validiert, verarbeitet Anfrage HealthImaging

OIDC-Authentifizierungsworkflow mit Lambda Authorizer

Voraussetzungen

Anforderungen an Zugriffstoken

HealthImaging erfordert, dass das Zugriffstoken im Format JSON Web Token (JWT) vorliegt. Viele Identity Provider (IDPs) bieten dieses Token-Format nativ an, während Sie bei anderen das Zugriffstoken-Formular auswählen oder konfigurieren können. Stellen Sie sicher, dass der von Ihnen gewählte IDP JWT-Token ausstellen kann, bevor Sie mit der Integration fortfahren.

Token-Format

Das Zugriffstoken muss im JWT-Format (JSON Web Token) vorliegen

Erforderliche Ansprüche
exp(Ablaufzeit)

Erforderlicher Anspruch, der angibt, wann das Token ungültig wird.

  • Muss nach der aktuellen Uhrzeit in UTC liegen

  • Stellt dar, wann das Token ungültig wird

iat(Ausgestellt am)

Erforderlicher Anspruch, der angibt, wann das Token ausgestellt wurde.

  • Muss vor der aktuellen Uhrzeit in UTC liegen

  • Darf NICHT früher als 12 Stunden vor der aktuellen Uhrzeit in UTC liegen

  • Dadurch wird effektiv eine maximale Token-Lebensdauer von 12 Stunden durchgesetzt

nbf(Nicht vor der Zeit)

Optionaler Anspruch, der angibt, wann das Token frühestens verwendet werden kann.

  • Falls vorhanden, wird es bewertet von HealthImaging

  • Gibt den Zeitpunkt an, vor dem das Token nicht akzeptiert werden darf

Anforderungen an die Reaktionszeit des Lambda-Autorisierers

HealthImaging setzt strenge Zeitanforderungen für die Antworten des Lambda-Autorisierers durch, um eine optimale API-Leistung sicherzustellen. Ihre Lambda-Funktion muss innerhalb von 1 Sekunde zurückkehren.

Bewährte Methoden

Optimieren Sie die Token-Verifizierung

  • Zwischenspeichern Sie JWKS (JSON Web Key Sets), wenn möglich

  • Wenn möglich, gültige Zugriffstoken zwischenspeichern

  • Minimiere die Anzahl der Netzwerkanrufe an deinen Identity Provider

  • Implementieren Sie eine effiziente Token-Validierungslogik

Lambda-Konfiguration

  • Auf Python und Node.js basierende Funktionen werden normalerweise schneller initialisiert

  • Reduzieren Sie die Anzahl der zu ladenden externen Bibliotheken

  • Konfigurieren Sie die entsprechende Speicherzuweisung, um eine konsistente Leistung zu gewährleisten

  • Überwachen Sie die Ausführungszeiten mithilfe von CloudWatch Metriken

Aktivierung der OIDC-Authentifizierung

  • Die OIDC-Authentifizierung kann nur aktiviert werden, wenn ein neuer Datenspeicher erstellt wird

  • Die Aktivierung von OIDC für bestehende Datenspeicher wird über die API nicht unterstützt

  • Um OIDC auf einem vorhandenen Datenspeicher zu aktivieren, müssen sich Kunden an den Support wenden AWS