SAML 2.0-Authentifizierungs-Handler saml-authentication-handler
AEM umfasst einen SAML-Authentifizierungs-Handler. Dieser Handler unterstützt SAML 2.0 Authentication Request Protocol (Web-SSO profile) using HTTP POST
Bindung.
Es unterstützt:
- Signieren 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.
- Die Entitäts-ID des Dienstanbieters.
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. Weitere Informationen zum Einrichten finden Sie im Kapitel "Hinzufügen des IdP-Zertifikats zum AEM TrustStore".
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 IdP-Zertifikats zum AEM TrustStore add-the-idp-certificate-to-the-aem-truststore
SAML-Zusicherungen werden signiert und können optional verschlüsselt werden. Damit dies funktioniert, müssen Sie mindestens das öffentliche Zertifikat des IdP im Repository angeben. Gehen Sie dazu folgendermaßen vor:
-
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 drücken Sie die Speichern.
-
Klicken Sie auf Verwalten von TrustStore.
-
Laden Sie das IdP-Zertifikat hoch.
-
Notieren Sie sich das Zertifikat Alias. Der Alias lautet admin#1436172864930 im Beispiel unten.
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.
-
Hochladen der Zertifikatdatei durch Klicken auf Zertifikatkettendateien auswählen.
-
Weisen Sie wie unten gezeigt einen Alias zu:
Konfigurieren eines Loggers für SAML configure-a-logger-for-saml
Sie können einen Logger einrichten, um Probleme zu beheben, die sich aus der falschen Konfiguration von SAML ergeben könnten. Gehen Sie dazu wie folgt vor:
-
Wechseln Sie zur Web-Konsole unter http://localhost:4502/system/console/configMgr.
-
Suchen Sie nach und klicken Sie auf den Eintrag namens Apache Sling Logging Logger-Konfiguration
-
Erstellen Sie einen Logger mit folgender Konfiguration:
- Protokollebene: Debuggen
- Protokolldatei: logs/saml.log
- Logger: com.adobe.granite.auth.saml