Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
de:shibidp3x509 [2018/06/25 11:46]
Wolfgang Pempe
de:shibidp3x509 [2018/06/25 11:47] (aktuell)
Wolfgang Pempe [X509-Authentifizierung in Shibboleth]
Zeile 5: Zeile 5:
 Neben dem authn/​Password-Flow stellt der Shibboleth-IdP auch den sogenannten authn/​X509-Flow zur Verfügung, welcher die Verwendung von X509-Client-Zertifikaten als Authentifizierungsmethode erlaubt. Die Logik auf Seiten des IdP ist dabei vergleichsweise simpel, da schlichtweg die Umgebungsvariable „javax.servlet.request.X509Certificate“ im Servlet-Container verwendet wird, um zu prüfen, ob die Authentifizierung erfolgreich ist oder nicht. Wie diese Variable befüllt wird, spielt für den IdP dabei keine Rolle (siehe [[https://​wiki.shibboleth.net/​confluence/​display/​IDP30/​X509AuthnConfiguration|Dokumentation im Shibboleth Wiki]]). Neben dem authn/​Password-Flow stellt der Shibboleth-IdP auch den sogenannten authn/​X509-Flow zur Verfügung, welcher die Verwendung von X509-Client-Zertifikaten als Authentifizierungsmethode erlaubt. Die Logik auf Seiten des IdP ist dabei vergleichsweise simpel, da schlichtweg die Umgebungsvariable „javax.servlet.request.X509Certificate“ im Servlet-Container verwendet wird, um zu prüfen, ob die Authentifizierung erfolgreich ist oder nicht. Wie diese Variable befüllt wird, spielt für den IdP dabei keine Rolle (siehe [[https://​wiki.shibboleth.net/​confluence/​display/​IDP30/​X509AuthnConfiguration|Dokumentation im Shibboleth Wiki]]).
  
-Jeder Login-Flow wird über einen dedizierten Endpunkt am IdP zur Verfügung gestellt. Bei authn/X509 handelt es sich dabei um den Pfad /​Authn/​X509. Ein naheliegender Weg besteht nun darin, diesen Endpunkt über den Apache-Webserver zu schützen. Sobald der IdP dann in seinem Ablauf in den authn/​X509-Flow springt (wodurch der User auf den geschützten Pfad auf dem Webserver weitergeleitet wird), greift die Zugriffskontrolle von Apache. Da in diesem Fall als Authentifizierungsmethode X509-Zertifikate eingesetzt werden sollen, kann hierfür das Apache-Modul „mod_ssl“ entsprechend konfiguriert ​[Apache-mod-ssl] und das Client-Zertifikat validiert werden. Ist diese Validierung erfolgreich,​ kann der Nutzer den Endpunkt des IdP aufrufen. Dort ist „javax.servlet.request.X509Certificate“ nun korrekt befüllt und stellt Informationen über das verwendete Zertifikat bereit. Wenn die Zugriffskontrolle von Apache den Nutzer nicht durchlässt (also die Validierung des Zertifikats nicht erfolgreich war), kommt der Nutzer gar nicht erst zum X509-Endpunkt.+Jeder Login-Flow wird über einen dedizierten Endpunkt am IdP zur Verfügung gestellt. Bei authn/X509 handelt es sich dabei um den Pfad /​Authn/​X509. Ein naheliegender Weg besteht nun darin, diesen Endpunkt über den Apache-Webserver zu schützen. Sobald der IdP dann in seinem Ablauf in den authn/​X509-Flow springt (wodurch der User auf den geschützten Pfad auf dem Webserver weitergeleitet wird), greift die Zugriffskontrolle von Apache. Da in diesem Fall als Authentifizierungsmethode X509-Zertifikate eingesetzt werden sollen, kann hierfür das [[https://​httpd.apache.org/​docs/​2.4/​mod/​mod_ssl.html|Apache-Modul „mod_ssl“ entsprechend konfiguriert]] und das Client-Zertifikat validiert werden. Ist diese Validierung erfolgreich,​ kann der Nutzer den Endpunkt des IdP aufrufen. Dort ist „javax.servlet.request.X509Certificate“ nun korrekt befüllt und stellt Informationen über das verwendete Zertifikat bereit. Wenn die Zugriffskontrolle von Apache den Nutzer nicht durchlässt (also die Validierung des Zertifikats nicht erfolgreich war), kommt der Nutzer gar nicht erst zum X509-Endpunkt.
  
 Im Gegensatz zum authn/​Password-Flow,​ wo die //​Subject-Canonicalization//​ im Allgemeinen sehr simpel ist, muss beim authn/​X509-Flow unter Umständen mehr konfiguriert werden. Normalerweise lässt sich der zu verwendende Name aber aus dem //​Subject-DN//​ des Client-Zertifikats extrahieren. Im Gegensatz zum authn/​Password-Flow,​ wo die //​Subject-Canonicalization//​ im Allgemeinen sehr simpel ist, muss beim authn/​X509-Flow unter Umständen mehr konfiguriert werden. Normalerweise lässt sich der zu verwendende Name aber aus dem //​Subject-DN//​ des Client-Zertifikats extrahieren.
  • Zuletzt geändert: vor 12 Monaten