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.
JWT-Authentifizierung und Autorisierung für Amazon Service OpenSearch
Amazon OpenSearch Service ermöglicht es Ihnen jetzt, JSON Web Tokens (JWTs) für die Authentifizierung und Autorisierung zu verwenden. JWTs sind JSON-basierte Zugriffstoken, die verwendet werden, um Single Sign-On (SSO) -Zugriff zu gewähren. Sie können JWTs in OpenSearch Service verwenden, um Single Sign-On-Token zu erstellen, um Anfragen an Ihre Service-Domain zu validieren. OpenSearch Für die Verwendung JWTs müssen Sie die detaillierte Zugriffskontrolle aktiviert haben und einen gültigen öffentlichen Schlüssel im RSA- oder ECDSA-PEM-Format angeben. Weitere Informationen zur feinkörnigen Zugriffskontrolle finden Sie unter Feinkörnige Zugriffskontrolle in Amazon Service. OpenSearch
Sie können JSON-Web-Tokens mithilfe der OpenSearch Service-Konsole, der AWS Command Line Interface (AWS CLI) oder der konfigurieren. AWS SDKs
Überlegungen
Bevor Sie Amazon OpenSearch Service verwenden JWTs , müssen Sie Folgendes beachten:
-
Aufgrund der Größe der öffentlichen RSA-Schlüssel in der PEM-Formatierung empfehlen wir, die JWT-Authentifizierung und -Autorisierung über die AWS Konsole zu konfigurieren.
-
Sie müssen gültige Benutzer und Rollen angeben, wenn Sie die Felder für Themen und Rollen angeben. JWTs Andernfalls werden Anfragen abgelehnt.
-
OpenSearch 2.11 ist die früheste kompatible Version, die für die JWT-Authentifizierung verwendet werden kann.
Ändern der Domainzugriffsrichtlinie
Bevor Sie Ihre Domain für die Verwendung der JWT-Authentifizierung und -Autorisierung konfigurieren können, müssen Sie Ihre Domain-Zugriffsrichtlinie aktualisieren, damit JWT-Benutzer auf die Domain zugreifen können. Andernfalls werden alle eingehenden autorisierten JWT-Anfragen abgelehnt. Die empfohlene Domänenzugriffsrichtlinie für den vollständigen Zugriff auf die Unterressourcen (/*) lautet:
Konfiguration der JWT-Authentifizierung und -Autorisierung
Sie können die JWT-Authentifizierung und -Autorisierung während der Domainerstellung oder durch Aktualisierung einer vorhandenen Domain aktivieren. Die Einrichtungsschritte variieren geringfügig, je nachdem, welche Option Sie wählen.
In den folgenden Schritten wird erklärt, wie Sie eine vorhandene Domäne für die JWT-Authentifizierung und -Autorisierung in der OpenSearch Servicekonsole konfigurieren:
-
Navigieren Sie unter Domänenkonfiguration zu JWT-Authentifizierung und Autorisierung für OpenSearch und wählen Sie JWT-Authentifizierung und Autorisierung aktivieren aus.
-
Konfigurieren Sie den öffentlichen Schlüssel, der für Ihre Domain verwendet werden soll. Dazu können Sie entweder eine PEM-Datei hochladen, die einen öffentlichen Schlüssel enthält, oder ihn manuell eingeben.
Anmerkung
Wenn der hochgeladene oder eingegebene Schlüssel nicht gültig ist, erscheint über dem Textfeld eine Warnung, die das Problem angibt.
-
(Optional) Unter Zusätzliche Einstellungen können Sie die folgenden optionalen Felder konfigurieren
-
Betreffschlüssel — Sie können dieses Feld leer lassen, um den
subStandardschlüssel für Ihren zu verwenden JWTs. -
Rollenschlüssel — Sie können dieses Feld leer lassen, um den
rolesStandardschlüssel für Ihre zu verwenden JWTs.
Nachdem Sie Ihre Änderungen vorgenommen haben, speichern Sie Ihre Domain.
-
Verwenden eines JWKS-Endpunkts zur Validierung eines JWT
Anstatt einen statischen öffentlichen Schlüssel zu konfigurieren, können Sie eine JWKS-Endpunkt-URL (JSON Web Key Set) konfigurieren, um öffentliche Schlüssel dynamisch von Ihrem Identitätsanbieter abzurufen. Wenn ein JWKS-Endpunkt konfiguriert ist, ruft der OpenSearch Service automatisch die öffentlichen Schlüssel ab, die zur Validierung von JWT-Signaturen verwendet werden, und speichert sie im Cache, sodass die Schlüssel nicht manuell aktualisiert werden müssen, wenn Ihr Identitätsanbieter die Signaturschlüssel rotiert.
Für die JWKS-Endpunktkonfiguration ist Version 3.3 oder höher erforderlich. OpenSearch
Anmerkung
Wenn sowohl eine JWKS-URL als auch ein statischer öffentlicher Schlüssel konfiguriert sind, hat die JWKS-URL Vorrang und der statische öffentliche Schlüssel wird ignoriert.
Abwärtskompatibilität
Diese Funktion gewährleistet die vollständige Abwärtskompatibilität:
-
Wenn nicht angegeben oder auf Null gesetzt
JwksUrlist, verwendet das System den vorhandenen statischen Public-Key-Mechanismus. -
Bestehende JWT-Konfigurationen funktionieren weiterhin ohne Änderungen.
-
Sie können zwischen statischen Schlüsseln und JWKS wechseln, indem Sie die Domänenkonfiguration aktualisieren.
Konfiguration eines JWKS-Endpunkts
Sie können einen JWKS-Endpunkt mithilfe der OpenSearch Servicekonsole, der oder der AWS CLI Konfigurations-API konfigurieren.
Um einen JWKS-Endpunkt zu konfigurieren
-
Navigieren Sie unter Domänenkonfiguration zu JWT-Authentifizierung und Autorisierung für. OpenSearch
-
Wählen Sie JWT-Authentifizierung und Autorisierung aktivieren aus.
-
Wählen Sie als Schlüsselquelle die Option JWKS-URL aus.
-
Geben Sie die von Ihrem Identitätsanbieter bereitgestellte JWKS-Endpunkt-URL ein (z. B.).
https://example.com/.well-known/jwks.json -
(Optional) Konfigurieren Sie die Felder Betreffschlüssel und Rollenschlüssel unter Zusätzliche Einstellungen.
-
Wählen Sie Änderungen speichern aus.
Mit dem folgenden AWS CLI Befehl wird ein JWKS-Endpunkt für die JWT-Authentifizierung in einer vorhandenen Domäne konfiguriert:
aws opensearch update-domain-config \ --domain-namemy-domain\ --advanced-security-options '{"JWTOptions":{"Enabled":true, "JwksUrl":"https://example.com/.well-known/jwks.json", "SubjectKey":"sub", "RolesKey":"roles"}}'
Die folgende Anfrage an die Konfigurations-API konfiguriert einen JWKS-Endpunkt für die JWT-Authentifizierung in einer vorhandenen Domain:
POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "AdvancedSecurityOptions": { "JWTOptions": { "Enabled": true, "JwksUrl": "https://example.com/.well-known/jwks.json", "RolesKey": "optional-roles-key", "SubjectKey": "optional-subject-key" } } }
Anforderungen an den JWT-Header
Wenn Sie einen JWKS-Endpunkt verwenden, muss Ihr JWT-Header eine Schlüssel-ID (kid) enthalten, die den spezifischen Schlüssel identifiziert, der für die Überprüfung verwendet werden soll:
{ "alg": "RS256", "typ": "JWT", "kid": "V-diposfUJIk5jDBFi_QRouiVinG5PowskcSWy5EuCo" }
Der kid Wert muss mit einer Schlüssel-ID in der JWKS-Endpunktantwort übereinstimmen.
Weitere Informationen zu den JWKS-Konfigurationsoptionen und Sicherheitseinstellungen finden Sie in der Dokumentation unter Verwenden eines JWKS-Endpunkts zur Validierung eines JWT
Verwenden eines JWT zum Senden einer Testanfrage
Nachdem Sie ein neues JWT mit einem bestimmten Betreff- und Rollenpaar erstellt haben, können Sie eine Testanfrage senden. Verwenden Sie dazu den privaten Schlüssel, um Ihre Anfrage über das Tool zu signieren, mit dem das JWT erstellt wurde. OpenSearch Der Service ist in der Lage, die eingehende Anfrage zu validieren, indem er diese Signatur überprüft.
Anmerkung
Wenn Sie einen benutzerdefinierten Betreff- oder Rollenschlüssel für Ihr JWT angegeben haben, müssen Sie die richtigen Anspruchsnamen für Ihr JWT verwenden.
Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein JWT-Token verwenden, um über den Suchendpunkt Ihrer Domain auf den OpenSearch Service zuzugreifen:
curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"
Der folgende AWS CLI Befehl aktiviert die JWT-Authentifizierung und -Autorisierung, OpenSearch sofern die Domäne vorhanden ist:
aws opensearch update-domain-config --domain-name <your_domain_name> --advanced-security-options '{"JWTOptions":{"Enabled":true, "PublicKey": "<your_public_key>", "SubjectKey": "<your_subject_key>", "RolesKey": "<your_roles_key>"}}'
Konfiguration der JWT-Authentifizierung und -Autorisierung (Konfiguration über API)
Die folgende Anfrage an die Konfigurations-API aktiviert die JWT-Authentifizierung und -Autorisierung für OpenSearch eine bestehende Domain:
POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config
{
"AdvancedSecurityOptions": {
"JWTOptions": {
"Enabled": true,
"PublicKey": "public-key",
"RolesKey": "optional-roles-key",
"SubjectKey": "optional-subject-key"
}
}
}
Generieren eines key pair
Um die Konfiguration JWTs für Ihre OpenSearch Domain vorzunehmen, müssen Sie einen öffentlichen Schlüssel im PEM-Format (Privacy-Enhanced Mail) angeben. Amazon OpenSearch Service unterstützt derzeit zwei asymetrische Verschlüsselungsalgorithmen bei der Verwendung JWTs: RSA und ECDSA.
Gehen Sie wie folgt vor, um ein RSA-Schlüsselpaar mit der gemeinsamen OpenSSL-Bibliothek zu erstellen:
-
openssl genrsa -out privatekey.pem 2048 -
openssl rsa -in privatekey.pem -pubout -out publickey.pem
In diesem Beispiel enthält die publickey.pem Datei den öffentlichen Schlüssel für die Verwendung mit Amazon OpenSearch Service und privatekey.pem den privaten Schlüssel zum Signieren der JWTs an den Service gesendeten Daten. Darüber hinaus haben Sie die Möglichkeit, den privaten Schlüssel in das häufig verwendete pkcs8 Format zu konvertieren, falls Sie ihn zur Generierung Ihres benötigen JWTs.
Wenn Sie die Upload-Schaltfläche verwenden, um eine PEM-Datei direkt zur Konsole hinzuzufügen, muss die Datei eine .pem Erweiterung haben. Andere Dateierweiterungen wie .crt.cert,, oder .key werden derzeit nicht unterstützt.