SAML-Signatur und Verschlüsselung - Amazon Cognito

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.

SAML-Signatur und Verschlüsselung

Amazon Cognito unterstützt signierte SAML-Anfragen und verschlüsselte SAML-Antworten für die An- und Abmeldung. Alle kryptografischen Operationen während SAML-Vorgängen im Benutzerpool müssen Signaturen und Chiffretext mit user-pool-provided Schlüsseln generieren, die Amazon Cognito generiert. Derzeit können Sie einen Benutzerpool nicht so konfigurieren, dass er Anfragen signiert oder verschlüsselte Assertionen mit einem externen Schlüssel akzeptiert.

Anmerkung

Ihre Benutzerpoolzertifikate sind 10 Jahre gültig. Einmal pro Jahr generiert Amazon Cognito neue Signatur- und Verschlüsselungszertifikate für Ihren Benutzerpool. Amazon Cognito gibt das neueste Zertifikat zurück, wenn Sie das Signaturzertifikat anfordern, und signiert Anfragen mit dem neuesten Signaturzertifikat. Ihr IdP kann SAML-Assertionen mit jedem Benutzerpool-Verschlüsselungszertifikat verschlüsseln, das nicht abgelaufen ist. Ihre vorherigen Zertifikate sind weiterhin für ihre gesamte Dauer gültig und der öffentliche Schlüssel ändert sich nicht zwischen den Zertifikaten. Es hat sich bewährt, das Zertifikat in Ihrer Anbieterkonfiguration jährlich zu aktualisieren.

Verschlüsselte SAML-Antworten von Ihrem IdP akzeptieren

Amazon Cognito und Ihr IdP können SAML-Antworten vertraulich behandeln, wenn sich Benutzer an- und abmelden. Amazon Cognito weist jedem externen SAML-Anbieter, den Sie in Ihrem Benutzerpool konfigurieren, ein öffentlich-privates RSA-Schlüsselpaar und ein Zertifikat zu. Wenn Sie die Antwortverschlüsselung für Ihren SAML-Anbieter für Ihren Benutzerpool aktivieren, müssen Sie Ihr Zertifikat auf einen IdP hochladen, der verschlüsselte SAML-Antworten unterstützt. Ihre Benutzerpool-Verbindung zu Ihrem SAML-IdP funktioniert nicht, bevor Ihr IdP beginnt, alle SAML-Assertionen mit dem bereitgestellten Schlüssel zu verschlüsseln.

Im Folgenden finden Sie einen Überblick über den Ablauf einer verschlüsselten SAML-Anmeldung.

  1. Ihr Benutzer beginnt mit der Anmeldung und wählt seinen SAML-IdP aus.

  2. Ihr Benutzerpool Autorisieren des Endpunkts leitet Ihren Benutzer mit einer SAML-Anmeldeanfrage zu seinem SAML-IdP weiter. Ihr Benutzerpool kann dieser Anfrage optional eine Signatur beifügen, die eine Integritätsprüfung durch den IdP ermöglicht. Wenn Sie SAML-Anfragen signieren möchten, müssen Sie Ihren IdP so konfigurieren, dass er Anfragen akzeptiert, die Ihr Benutzerpool mit dem öffentlichen Schlüssel im Signaturzertifikat signiert hat.

  3. Der SAML-IdP meldet Ihren Benutzer an und generiert eine SAML-Antwort. Der IdP verschlüsselt die Antwort mit dem öffentlichen Schlüssel und leitet Ihren Benutzer zu Ihrem /saml2/idpresponse Benutzerpool-Endpunkt weiter. Der IdP muss die Antwort gemäß der SAML 2.0-Spezifikation verschlüsseln. Weitere Informationen finden Sie unter Element <EncryptedAssertion> Assertionen und Protokolle für die OASIS Security Assertion Markup Language (SAML) V2.0.

  4. Ihr Benutzerpool entschlüsselt den Chiffretext in der SAML-Antwort mit dem privaten Schlüssel und meldet Ihren Benutzer an.

Wichtig

Wenn Sie die Antwortverschlüsselung für einen SAML-IdP in Ihrem Benutzerpool aktivieren, muss Ihr IdP alle Antworten mit einem öffentlichen Schlüssel verschlüsseln, der für den Anbieter spezifisch ist. Amazon Cognito akzeptiert keine unverschlüsselten SAML-Antworten von einem externen SAML-IdP, den Sie für die Unterstützung von Verschlüsselung konfigurieren.

Jeder externe SAML-IdP in Ihrem Benutzerpool kann die Antwortverschlüsselung unterstützen, und jeder IdP erhält sein eigenes key pair.

AWS Management Console
Um die SAML-Antwortverschlüsselung zu konfigurieren
  1. Erstellen Sie einen Benutzerpool, einen App-Client und einen SAML-IdP.

  2. Wenn Sie Ihren SAML-Identitätsanbieter erstellen oder bearbeiten, aktivieren Sie unter Anfragen signieren und Antworten verschlüsseln das Kästchen mit dem Titel Verschlüsselte SAML-Assertionen von diesem Anbieter anfordern.

  3. Wählen Sie auf der Registerkarte Anmeldeerfahrung Ihres Benutzerpools unter Federated Identity Provider-Anmeldung Ihren SAML-IdP aus und wählen Sie Verschlüsselungszertifikat anzeigen aus.

  4. Wählen Sie Als .crt herunterladen und stellen Sie die heruntergeladene Datei Ihrem SAML-IdP zur Verfügung. Konfigurieren Sie Ihren SAML-IdP so, dass SAML-Antworten mit dem Schlüssel im Zertifikat verschlüsselt werden.

API/CLI

Um die SAML-Antwortverschlüsselung zu konfigurieren

Konfigurieren Sie die Antwortverschlüsselung mit dem EncryptedResponses Parameter einer CreateIdentityProvideroder UpdateIdentityProviderAPI-Anfrage. Im Folgenden finden Sie ein Beispiel für einen IdP, ProviderDetails der das Signieren von Anfragen unterstützt.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }

SAML-Anfragen signieren

Die Möglichkeit, die Integrität von SAML 2.0-Anfragen an Ihren IdP nachzuweisen, ist ein Sicherheitsvorteil der von Amazon Cognito SP initiierten SAML-Anmeldung. Jeder Benutzerpool mit einer Domain erhält ein X.509-Signaturzertifikat für den Benutzerpool. Mit dem öffentlichen Schlüssel in diesem Zertifikat wenden Benutzerpools eine kryptografische Signatur auf die Abmeldeanfragen an, die Ihr Benutzerpool generiert, wenn Ihre Benutzer einen SAML-IdP auswählen. Sie können Ihren App-Client optional so konfigurieren, dass er SAML-Anmeldeanfragen signiert. Wenn Sie Ihre SAML-Anfragen signieren, kann Ihr IdP überprüfen, ob die Signatur in den XML-Metadaten Ihrer Anfragen mit dem öffentlichen Schlüssel in dem von Ihnen bereitgestellten Benutzerpoolzertifikat übereinstimmt.

AWS Management Console
Um das Signieren von SAML-Anfragen zu konfigurieren
  1. Erstellen Sie einen Benutzerpool, einen App-Client und einen SAML-IdP.

  2. Wenn Sie Ihren SAML-Identitätsanbieter erstellen oder bearbeiten, aktivieren Sie unter Anfragen signieren und Antworten verschlüsseln das Kästchen mit dem Titel SAML-Anfragen an diesen Anbieter signieren.

  3. Wählen Sie auf der Registerkarte Anmeldeerfahrung in Ihrem Benutzerpool unter Anmeldung mit dem Federated Identity Provider die Option Signaturzertifikat anzeigen aus.

  4. Wählen Sie Als .crt herunterladen und stellen Sie die heruntergeladene Datei Ihrem SAML-IdP zur Verfügung. Konfigurieren Sie Ihren SAML-IdP, um die Signatur eingehender SAML-Anfragen zu überprüfen.

API/CLI

So konfigurieren Sie das Signieren von SAML-Anfragen

Konfigurieren Sie die Anforderungssignatur mit dem RequestSigningAlgorithm Parameter einer CreateIdentityProvideroder UpdateIdentityProviderAPI-Anfrage. Im Folgenden finden Sie ein Beispiel für einen IdP, ProviderDetails der das Signieren von Anfragen unterstützt.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }