| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
| de:shibidp:config-idm [2020/05/14 09:30] – Silke Meyer | de:shibidp:config-idm [2024/11/27 12:00] (aktuell) – [Troubleshooting] Doreen Liebenau |
|---|
| | <- de:shibidp:config-mdv|Eintrag in Metadatenverwaltung ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:config-attributes-minimal|Minimalkonfiguration der Attribute -> |
| ~~NOTOC~~ | ~~NOTOC~~ |
| ====== Anbindung des IdM (LDAP/AD) ====== | ====== Anbindung des IdM (LDAP/AD) ====== |
| Der Pfad zum Root-Zertifikat der verwendeten PKI muss angegeben werden. So können Sie ihn vorab überprüfen: | Der Pfad zum Root-Zertifikat der verwendeten PKI muss angegeben werden. So können Sie ihn vorab überprüfen: |
| <code bash> | <code bash> |
| root@idp:~# openssl s_client -connect ldap.uni-beispiel.de:ldaps -showcerts -CAfile /etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem | root@idp:~# openssl s_client -connect ldap.uni-beispiel.de:ldaps -showcerts -CAfile /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem |
| </code> | </code> |
| |
| |
| <file properties /opt/shibboleth-idp/conf/ldap.properties> | <file properties /opt/shibboleth-idp/conf/ldap.properties> |
| # Beispielkonfiguration, die für OpenLDAP und AD funktionieren kann: | # Beispielkonfiguration, die für OpenLDAP funktionieren kann: |
| idp.authn.LDAP.authenticator = bindSearchAuthenticator | idp.authn.LDAP.authenticator = bindSearchAuthenticator |
| idp.authn.LDAP.ldapURL = ldaps://ldap.hochschule-XY:636 | idp.authn.LDAP.ldapURL = ldaps://ldap.hochschule-XY:636 |
| idp.authn.LDAP.useStartTLS = false | idp.authn.LDAP.useStartTLS = false |
| idp.authn.LDAP.useSSL = true | |
| idp.authn.LDAP.sslConfig = certificateTrust | idp.authn.LDAP.sslConfig = certificateTrust |
| | |
| | # Wenn Ihr IdM den Aufbau eines LDAP-Connection-Pools nicht unterstützt, können Sie den Pool global abschalten, |
| | # in dem Sie diese Zeile einfügen und das Kommentarzeichen entfernen: |
| | # idp.authn.LDAP.disablePooling = true |
| |
| # DFN-PKI: | # DFN-PKI: |
| idp.authn.LDAP.trustCertificates = /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem | #idp.authn.LDAP.trustCertificates = /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem |
| | # Sectigo-Zertifikat: |
| | idp.authn.LDAP.trustCertificates = /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem |
| # lokales CA-Zertifikat: | # lokales CA-Zertifikat: |
| #idp.authn.LDAP.trustCertificates = /etc/ssl/certs/beispiel-hs_local_ca_cert.pem | #idp.authn.LDAP.trustCertificates = /etc/ssl/certs/beispiel-hs_local_ca_cert.pem |
| |
| idp.authn.LDAP.baseDN = ou=people,dc=hochschule-XY,dc=de | idp.authn.LDAP.baseDN = ou=people,dc=hochschule-XY,dc=de |
| # statt "(uid={user})" nehmen Sie bei AD üblicherweise "(cn={user})" oder "(sAMAccountName={user})" | |
| idp.authn.LDAP.userFilter = (uid={user}) | idp.authn.LDAP.userFilter = (uid={user}) |
| idp.authn.LDAP.bindDN = cn=idp,cn=systemusers,dc=hochschule-XY,dc=de | idp.authn.LDAP.bindDN = cn=idp,cn=systemusers,dc=hochschule-XY,dc=de |
| # sofern die User im LDAP in Sub-Bäumen verteilt sind bitte das hier aktivieren: | # Sofern die Useraccounts im LDAP in Sub-Bäumen verteilt sind, aktivieren Sie bitte dies: |
| #idp.authn.LDAP.subtreeSearch = true | #idp.authn.LDAP.subtreeSearch = true |
| </file> | </file> |
| </code> | </code> |
| |
| Siehe auch im Shibboleth Wiki unter [[https://wiki.shibboleth.net/confluence/display/IDP4/LDAPAuthnConfiguration|LDAPAuthnConfiguration]]. | Siehe auch im Shibboleth Wiki unter [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199505688/LDAPAuthnConfiguration]]. |
| |
| ==== LDAP-Abfrage 2: User-Attribute ==== | ==== LDAP-Abfrage 2: User-Attribute ==== |
| | |
| | <file properties /opt/shibboleth-idp/conf/ldap.properties> |
| | idp.attribute.resolver.LDAP.searchFilter = (uid=$resolutionContext.principal) |
| | </file> |
| | |
| | Triggern Sie das Einlesen der neuen Einstellungen: |
| | <code bash> |
| | root@idp:~# touch /opt/shibboleth-idp/war/idp.war |
| | </code> |
| | |
| | ==== AD-Abfrage 1: User-Authentisierung ==== |
| | |
| | <file properties /opt/shibboleth-idp/conf/ldap.properties> |
| | # Beispielkonfiguration, die für AD funktionieren kann: |
| | idp.authn.LDAP.authenticator = adAuthenticator |
| | idp.authn.LDAP.ldapURL = ldaps://ldap.hochschule-XY:636 |
| | idp.authn.LDAP.useStartTLS = false |
| | idp.authn.LDAP.sslConfig = certificateTrust |
| | |
| | # Wenn Ihr IdM den Aufbau eines LDAP-Connection-Pools nicht unterstützt, können Sie den Pool global abschalten, |
| | # in dem Sie diese Zeile einfügen und das Kommentarzeichen entfernen: |
| | # idp.authn.LDAP.disablePooling = true |
| | |
| | # DFN-PKI: |
| | #idp.authn.LDAP.trustCertificates = /etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem |
| | # Sectigo-Zertifikat: |
| | idp.authn.LDAP.trustCertificates = /etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem |
| | # lokales CA-Zertifikat: |
| | #idp.authn.LDAP.trustCertificates = /etc/ssl/certs/beispiel-hs_local_ca_cert.pem |
| | |
| | # Wenn festgestellt werden soll, ob der Account aktiv ist, müssen die entsprechenden Attribute geholt werden |
| | idp.authn.LDAP.returnAttributes = passwordExpirationTime,loginGraceRemaining |
| | |
| | idp.authn.LDAP.baseDN = ou=people,dc=hochschule-XY,dc=de |
| | # statt "(uid={user})" nehmen Sie bei AD üblicherweise "(cn={user})" oder "(sAMAccountName={user})" |
| | idp.authn.LDAP.userFilter = (uid={user}) |
| | idp.authn.LDAP.bindDN = cn=idp,cn=systemusers,dc=hochschule-XY,dc=de |
| | # Format DN resolution, used by directAuthenticator, adAuthenticator |
| | idp.authn.LDAP.dnFormat. = %s@domain.com |
| | # Sofern die Useraccounts im LDAP in Sub-Bäumen verteilt sind, aktivieren Sie bitte dies: |
| | #idp.authn.LDAP.subtreeSearch = true |
| | </file> |
| | |
| | Passwörter werden ab IdPv4 standardmäßig in der besser geschützen Datei ''./credentials/secrets.properties'' gespeichert. Hier hinterlegen Sie das Bind-Passwort. |
| | <file properties /opt/shibboleth-idp/credentials/secrets.properties> |
| | idp.authn.LDAP.bindDNCredential = geheim007 |
| | </file> |
| | |
| | Laden Sie das Servlet neu: |
| | <code bash> |
| | root@idp:~# touch /opt/shibboleth-idp/war/idp.war |
| | </code> |
| | |
| | Siehe auch im Shibboleth Wiki unter [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199505688/LDAPAuthnConfiguration]]. |
| | |
| | ==== AD-Abfrage 2: User-Attribute ==== |
| |
| <file properties /opt/shibboleth-idp/conf/ldap.properties> | <file properties /opt/shibboleth-idp/conf/ldap.properties> |
| root@idp:~# touch /opt/shibboleth-idp/war/idp.war | root@idp:~# touch /opt/shibboleth-idp/war/idp.war |
| </code> | </code> |
| | |
| |
| ===== Test der LDAP-Verbindung ===== | ===== Test der LDAP-Verbindung ===== |
| * Wenn Sie den Fehler ''opensaml::SecurityPolicyException'' bekommen, sehen Sie bitte auf der [[de:shibidp:troubleshooting#opensamlsecuritypolicyexception|Troubleshooting]]-Seite nach. | * Wenn Sie den Fehler ''opensaml::SecurityPolicyException'' bekommen, sehen Sie bitte auf der [[de:shibidp:troubleshooting#opensamlsecuritypolicyexception|Troubleshooting]]-Seite nach. |
| * Beim LDAP-Fehler ''Invalid Credentials'' stellen Sie bitte sicher, dass Sie in ''./conf/ldap.properties'' bzw. ''./credentials/secrets.properties'' **bei den Zugangsdaten des Bind-Accounts keine Leerzeichen an den Zeilenenden** stehen haben. Das Passwort steht //nicht// in Hochkommata oder Anführungszeichen. | * Beim LDAP-Fehler ''Invalid Credentials'' stellen Sie bitte sicher, dass Sie in ''./conf/ldap.properties'' bzw. ''./credentials/secrets.properties'' **bei den Zugangsdaten des Bind-Accounts keine Leerzeichen an den Zeilenenden** stehen haben. Das Passwort steht //nicht// in Hochkommata oder Anführungszeichen. |
| | * Bei der Fehlermeldung ''Login Failure: javax.net.ssl.SSLException: Could not initialize SSL context'' stellen Sie bitte sicher, dass in ''./conf/ldap.properties'' beim **Pfad zum Zertifikat kein Leerzeichen am Zeilenende** steht. |
| * Sollten Sie nicht erfolgreich zum Test-SP zurückgeleitet werden, achten Sie darauf, von welchem System die Fehlermeldung im Browser generiert wird: Entsteht sie am IdP oder an unserem Test-SP? Schauen Sie bitte in der Logdatei ''./logs/idp-process.log'' oder im [[https://wiki.shibboleth.net/confluence/display/IDP4/Troubleshooting|Shibboleth-Wiki]] nach möglichen Ursachen. | * Sollten Sie nicht erfolgreich zum Test-SP zurückgeleitet werden, achten Sie darauf, von welchem System die Fehlermeldung im Browser generiert wird: Entsteht sie am IdP oder an unserem Test-SP? Schauen Sie bitte in der Logdatei ''./logs/idp-process.log'' oder im [[https://wiki.shibboleth.net/confluence/display/IDP4/Troubleshooting|Shibboleth-Wiki]] nach möglichen Ursachen. |
| * Sollten Sie damit nicht weiterkommen, senden Sie uns bitte einen Screenshot der Fehlermeldung und den genauen Zeitpunkt, zu dem der Fehler aufgetreten ist, damit wir mithilfe unseres SP-Logs die Ursache bestimmen können. | * Sollten Sie damit nicht weiterkommen, senden Sie uns bitte einen Screenshot der Fehlermeldung und den genauen Zeitpunkt, zu dem der Fehler aufgetreten ist, damit wir mithilfe unseres SP-Logs die Ursache bestimmen können. |
| |
| Erst wenn der Login funktioniert, sollten Sie weitermachen mit der [[de:shibidp:config-attributes-minimal|Minimalkonfiguration der Attribute]]. | Erst wenn der Login funktioniert, sollten Sie weitermachen. |
| |
| {{tag>idp4 tutorial}} | {{tag>tutorial ldap idm included-in-ansible}} |