5. Komponenten
TYPO3 Shibboleth IdP
(FE or BE) (Discovery Service) Shibboleth IdP
(Identity Provider)
Shibboleth IdP
(Identity Provider)
(Identity Provider)
EXT:shibboleth
TYPO3 auth services
mod_shibb
Apache httpd
OS with shibd
Authentifizierungs-
Webserver (Service Server
Provider)
• Es wird der „native Service Provider“
verwendet
Wir leben TYPO3 in2code.de
11. Allg. Konfigurationsparameter
• Wie wird der native SP aufgerufen:
entityID, handlerURL, Session Initiator,
„force SSL“
• Pfad zur Konfigurationsdatei für das
Mapping
Wir leben TYPO3 in2code.de
14. Backend-Login-Formular
Keine Core-Änderung!
(Javascript über Hook)
Wir leben TYPO3 in2code.de
15. Struktur der Mapping-Konfig.
• TypoScript-Syntax:
tx_shibboleth {
FE { Zuordnung der User-ID
IDMapping {
…
}
Autorisierung
userControls {
allowUser … Metadaten-Übernahme
createUserFieldsMapping …
updateUserFieldsMapping …
} Metadaten-Updates
}
BE
…
Wir leben TYPO3 in2code.de
16. Zuordnung der User-ID
Beispiel Umgebungsvariablen
BE {
IDMapping {
Bezug auf Umgebungsvariable (von shibd)
shibID = TEXT
shibID.field = uid
typo3Field = username
}
Feldname in TYPO3 (meist: username)
…
}
Wir leben TYPO3 in2code.de
17. Selektion erlaubter Benutzer
BE {
… Jeder erkannte Benutzer wird
userControls { zugelassen (Autorisierung)
allowUser = TEXT
allowUser.value = 1
…
}
• Flexibilität durch Nutzung des TypoScript-
Parsers: Fast beliebige Bedingungen für
die Autorisierung können definiert werden
Wir leben TYPO3 in2code.de
18. Benutzer-Metadaten
BE {
…
userControls {
Metadaten kommen vom
…
IdP
createUserFieldsMapping {
realName = COA
realName.1 = TEXT
realName.1.field = sn
realName.3 = TEXT
realName.3.field = givenName
realName.3.noTrimWrap = |, ||
}
…
}
}
Wir leben TYPO3 in2code.de
20. Die Situation
• Es werden >200 TYPO3-Instanzen betreut
• Die „Instanz-Eigentümer“ haben keine
Admin-Rechte
• Die Instanz-Eigentümer pflegen auch die
Redakteure
• Die Backend-Anmeldung erfolgt über
Shibboleth
Wir leben TYPO3 in2code.de
21. Extension groupdelegation
• Spezielle BE-Benutzer erhalten das Recht,
die Gruppenzuordung anderer Benutzer
zu editieren
• Beschränkt auf die eigenen Gruppen
• Auch die Freischaltung/Sperrung der
Benutzer wird erlaubt
Wir leben TYPO3 in2code.de
22. Live-Demo-Szenario
• Neuer Benutzer soll Backend-Zugriff
bekommen
1. Anmeldeversuch über Shibboleth
Benutzer wird angelegt, aber gesperrt
2. Admin oder „Sub-Admin“ schaltet frei
3. Erfolgreiche Anmeldung über Shibboleth
NICHT klicken! Live-Demo!
Wir leben TYPO3 in2code.de
24. Weitere Entwicklung
• Dokumentation und Veröffentlichung
• Embedded Discovery Service?
• Single-Logout
– Caveats: Benutzer-Erwartung und -Führung
• Logout in Load-Balancing-Umgebungen
– „Sticky Sessions“?
– Shared Process?
– Store Session on ODBC-Database?
Wir leben TYPO3 in2code.de
25. Vielen Dank
Links und Kontakt:
http://forge.typo3.org/projects/show/extension-shibboleth
http://de.slideshare.net/tschikarski/shibboleth-singlesignon-mit-typo3
mailto:thomas.schikarski@in2code.de
Wir leben TYPO3 in2code.de