Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision |
de:shibidp3x509 [2020/05/14 09:54] – [Anleitung für Apache, Tomcat und Shibboleth] Silke Meyer | de:shibidp3x509 [2021/04/26 15:03] – Silke Meyer |
---|
====== X509-Authentifizierung in Shibboleth ====== | ====== X509-Authentifizierung in Shibboleth ====== |
| <callout color="#ff9900" title="Veraltete IdP-Version!"> |
| </callout> |
Ein Login-Vorgang am Shibboleth-IdP besteht im Allgemeinen aus verschiedenen //Flows//. Nachdem eine Anfrage von einem Service Provider (SP) empfangen wurde, geht der IdP in einen der verfügbaren Flows zur Authentifizierung über. Dabei handelt es sich beispielsweise um den Password-Flow authn/Password, wobei sich der Nutzer durch die Eingabe von Nutzername und Passwort authentifizieren kann. Diese Daten werden dann gegen eine angeschlossene Datenquelle (häufig LDAP-Server) geprüft. Am Ende dieses Flows steht die //Subject-Canonicalization//, die das Erzeugen eines Benutzernamens (auch //Principal// genannt) für den Nutzer, der sich gerade erfolgreich authentifiziert hat, beschreibt. Unter diesem Benutzernamen ist der Nutzer im weiteren Verlauf im IdP bekannt. Normalerweise entspricht dieser Name schlichtweg dem Nutzernamen. | Ein Login-Vorgang am Shibboleth-IdP besteht im Allgemeinen aus verschiedenen //Flows//. Nachdem eine Anfrage von einem Service Provider (SP) empfangen wurde, geht der IdP in einen der verfügbaren Flows zur Authentifizierung über. Dabei handelt es sich beispielsweise um den Password-Flow authn/Password, wobei sich der Nutzer durch die Eingabe von Nutzername und Passwort authentifizieren kann. Diese Daten werden dann gegen eine angeschlossene Datenquelle (häufig LDAP-Server) geprüft. Am Ende dieses Flows steht die //Subject-Canonicalization//, die das Erzeugen eines Benutzernamens (auch //Principal// genannt) für den Nutzer, der sich gerade erfolgreich authentifiziert hat, beschreibt. Unter diesem Benutzernamen ist der Nutzer im weiteren Verlauf im IdP bekannt. Normalerweise entspricht dieser Name schlichtweg dem Nutzernamen. |
| |
Weiterhin werden laut [[https://wiki.shibboleth.net/confluence/display/IDP30/X509AuthnConfiguration|Shibboleth Wiki]] noch drei optionale Konfigurationsmöglichkeiten des Flows in ''{idp.home}/conf/authn/x509-authn-config.xml'' angeboten. In der Praxis dürfte in den meisten Fällen jedoch nur einer davon relevant sein: | Weiterhin werden laut [[https://wiki.shibboleth.net/confluence/display/IDP30/X509AuthnConfiguration|Shibboleth Wiki]] noch drei optionale Konfigurationsmöglichkeiten des Flows in ''{idp.home}/conf/authn/x509-authn-config.xml'' angeboten. In der Praxis dürfte in den meisten Fällen jedoch nur einer davon relevant sein: |
| |
''shibboleth.authn.X509.externalAuthnPath'' erlaubt das Festlegen des Pfads, auf den weitergeleitet werden soll, sobald der Login-Flow aufgerufen wird. Standardmäßig wird der Nutzer dabei auf eine vorgeschaltete Seite weitergeleitet (siehe Abbildung ) und muss explizit bestätigen, dass er nun einen Login per X509-Zertifikat wünscht (was dann zur Weiterleitung auf den Endpunkt /Authn/X509 führt). Wenn dieses Verhalten nicht gewünscht ist, kann dieser Parameter direkt auf den Endpunkt gesetzt werden. | ''shibboleth.authn.X509.externalAuthnPath'' erlaubt das Festlegen des Pfads, auf den weitergeleitet werden soll, sobald der Login-Flow aufgerufen wird. Standardmäßig werden die Nutzer*innen dabei auf eine vorgeschaltete Seite weitergeleitet (siehe Abbildung). Dort müssen sie explizit bestätigen, dass sie einen Login per X509-Zertifikat wünschen. Dann werden sie auf den Endpunkt /Authn/X509 weitergeleitet. Wenn dieses Verhalten nicht gewünscht ist, kann dieser Parameter direkt auf den Endpunkt gesetzt werden. |
| |
{{:de:screenshot_x509-login.png| \\ | {{:de:screenshot_x509-login.png|Standardmäßig konfigurierte Hinweis-Seite vor der Weiterleitung auf den geschützten Endpunkt}} |
Abbildung 1: Standardmäßig konfigurierte Hinweis-Seite vor der Weiterleitung auf den geschützten Endpunkt}} | |
| |
**Abbildung 1:** Standardmäßig konfigurierte Hinweis-Seite vor der Weiterleitung auf den geschützten Endpunkt | |
===== Validierung der Zertifikate in Apache ===== | ===== Validierung der Zertifikate in Apache ===== |
| |
</code> | </code> |
| |
Zu beachten ist, dass dies nicht innerhalb einer Location-Angabe in Apache erfolgen darf, da insbesondere Apache in der Version 2.4 und mit aktueller OpenSSL-Version damit nicht zurechtkommt. Stattdessen muss diese Angabe direkt im Virtual-Host gesetzt werden. | Die Direktive muss direkt im VirtualHost stehen, nicht innerhalb einer Location-Angabe. |
| |
==== Schutz des X509-Endpunkts des IdP ==== | ==== Schutz des X509-Endpunkts des IdP ==== |
Hier wird der wie oben beschrieben erzeugte Principal als Eingangswert für das Attribut ''uid'' verwendet. | Hier wird der wie oben beschrieben erzeugte Principal als Eingangswert für das Attribut ''uid'' verwendet. |
| |
{{tag>idp3}} | {{tag>idp3 fixme moveme}} |