SAML 2.0-Authentifizierungs-Handler saml-authentication-handler
AEM umfasst einen SAML-Authentifizierungs-Handler. Dieser Handler unterstützt das SAML 2.0-Authentifizierungsanforderungsprotokoll (Web-SSO-Profil), das die HTTP POST
-Bindung verwendet.
Folgendes wird unterstützt:
- Signierung und Verschlüsselung von Nachrichten
- Automatische Erstellung von Benutzern
- Synchronisieren von Gruppen mit vorhandenen Gruppen in AEM
- Durch Dienstleister und Identitätsanbieter eingeleitete Authentifizierung
Dieser Handler speichert die verschlüsselte SAML-Antwortnachricht im Benutzerknoten (usernode/samlResponse
), um die Kommunikation mit Dienstleistern von Drittanbietern zu erleichtern.
Konfigurieren des SAML 2.0-Authentifizierungs-Handlers configuring-the-saml-authentication-handler
Die Web-Konsole bietet Zugriff auf die SAML 2.0-Authentifizierungs-Handler-Konfiguration namens Adobe Granite SAML 2.0 Authentication Handler. Die folgenden Eigenschaften können festgelegt werden.
- Die POST-URL des Identitätsanbieters bzw. die IDP-URL.
- Entitäts-ID des Dienstleisters
Pfad Repository-Pfad, für den dieser Authentifizierungs-Handler von Sling verwendet werden soll. Wenn dieser leer ist, wird der Authentifizierungs-Handler deaktiviert.
Service-Rangfolge Position in der Rangfolge der OSGi-Framework-Services. Gibt an, mit welcher Priorität dieser Service aufgerufen wird. Dies ist ein ganzzahliger Wert, wobei höhere Werte Vorrang haben.
IDP-Zertifikatalias Das Alias des IDP-Zertifikats im globalen TrustStore. Wenn diese Eigenschaft nicht angegeben wird, ist der Authentifizierungs-Handler deaktiviert. Im Kapitel „Hinzufügen des Identitätsanbieterzertifikats zum AEM-TrustStore“ weiter unten finden Sie Informationen dazu, wie Sie dies einrichten.
IDP-URL Die URL des IDP, an den die SAML-Authentifizierungsanfrage gesendet werden soll. Wenn diese Eigenschaft nicht angegeben wird, ist der Authentifizierungs-Handler deaktiviert.
Entitäts-ID des Dienstleisters ID, die diesen Dienstleister eindeutig beim Identitätsanbieter identifiziert. Wenn diese Eigenschaft nicht angegeben wird, ist der Authentifizierungs-Handler deaktiviert.
Standardweiterleitung Der Standardort, an den nach einer erfolgreichen Authentifizierung weitergeleitet wird.
request-path
nicht festgelegt ist. Wenn Sie eine Seite unterhalb des konfigurierten Pfads ohne gültiges Anmelde-Token anfordern, wird der angeforderte Pfad in einem Cookie gespeichertund der Browser wird nach erfolgreicher Authentifizierung erneut an diesen Ort weitergeleitet.
Benutzer-ID-Attribut Der Name des Attributs, das die Benutzer-ID enthält, die zur Authentifizierung und Erstellung des Benutzers im CRX-Repository verwendet wird.
saml:Subject
der SAML-Assertion abgerufen, sondern aus diesem saml:Attribute
.Verschlüsselung verwenden Gibt an, ob dieser Authentifizierungs-Handler verschlüsselte SAML-Assertionen erwartet.
CRX-Benutzer automatisch erstellen Gibt an, ob nicht vorhandene Benutzer nach erfolgreicher Authentifizierung automatisch im Repository erstellt werden sollen.
Zu Gruppen hinzufügen Gibt an, ob Benutzer nach erfolgreicher Authentifizierung automatisch zu CRX-Gruppen hinzugefügt werden sollen.
Gruppenmitgliedschaft Der Name des „saml:Attribute“, das eine Liste von CRX-Gruppen enthält, denen dieser Benutzer hinzugefügt werden muss.
Hinzufügen des Identitätsanbieterzertifikats zum AEM-TrustStore add-the-idp-certificate-to-the-aem-truststore
SAML-Assertionen werden signiert und können optional verschlüsselt sein. Damit dies funktionieren kann, müssen Sie mindestens das öffentliche Identitätsanbieterzertifikat im Repository bereitstellen. Dazu müssen Sie folgende Schritte durchführen:
-
Wechseln Sie zu http:/Server-Adresse:Serverport/libs/granite/security/content/truststore.html.
-
Klicken Sie auf TrustStore-Link erstellen.
-
Geben Sie das Kennwort für den TrustStore ein und klicken Sie auf Speichern.
-
Klicken Sie auf TrustStore verwalten.
-
Laden Sie das Identitätsanbieterzertifikat hoch.
-
Notieren Sie sich den Zertifikatsalias. Im Folgenden Beispiel lautet das Alias admin#1436172864930.
Hinzufügen des Schlüssels und der Zertifikatkette des Dienstleisters zum AEM-Schlüsselspeicher add-the-service-provider-key-and-certificate-chain-to-the-aem-keystore
com.adobe.granite.keystore.KeyStoreNotInitialisedException: Uninitialised system trust store
- Wechseln Sie zu http://localhost:4502/libs/granite/security/content/useradmin.html.
- Bearbeiten Sie den Benutzer
authentication-service
. - Erstellen Sie einen KeyStore, indem Sie unter Kontoeinstellungen auf KeyStore erstellen klicken.
-
Erstellen Sie das Zertifikat/Schlüsselpaar für AEM. Der Befehl zur Erzeugung über OpenSSL sollte dem folgenden Beispiel ähneln:
openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -out certificate.crt -keyout key.pem
-
Konvertieren Sie den Schlüssel mit DER-Codierung in das PKCS#8-Format. Dies ist das Format, das für den AEM-Keystore erforderlich ist.
openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out key.der -nocrypt
-
Laden Sie die Datei mit dem privaten Schlüssel hoch, indem Sie auf Datei mit privatem Schlüssel auswählen klicken.
-
Laden Sie die Zertifikatdatei hoch, indem Sie auf Zertifikatkettendateien auswählen klicken.
-
Weisen Sie einen Alias zu, wie im Folgenden gezeigt:
Konfigurieren eines Loggers für SAML configure-a-logger-for-saml
Sie können einen Logger einrichten, um alle Probleme zu debuggen, die aufgrund der falschen Konfiguration von SAML entstehen können. Gehen Sie dazu wie folgt vor:
-
Wechseln Sie zur Web-Konsole unter http://localhost:4502/system/console/configMgr.
-
Suchen Sie nach dem Eintrag Apache Sling Logging-Logger-Konfiguration und klicken Sie darauf.
-
Erstellen Sie einen Logger mit folgender Konfiguration:
- Protokollebene: Debugging
- Protokolldatei: logs/saml.log
- Logger: com.adobe.granite.auth.saml