Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:shibidp:config-testzugang [2022/11/28 13:58] – Wolfgang Pempe | de:shibidp:config-testzugang [2025/03/10 14:16] (aktuell) – Doreen Liebenau | ||
|---|---|---|---|
| Zeile 4: | Zeile 4: | ||
| * Ein neuer Service-Provider soll an den Identity-Provider einer Hochschule angebunden werden. Der SP wird von einem externen Partner administriert, | * Ein neuer Service-Provider soll an den Identity-Provider einer Hochschule angebunden werden. Der SP wird von einem externen Partner administriert, | ||
| * Für den Zugang zu einem lokalen SP wird ein Funktionsaccount eingerichtet. | * Für den Zugang zu einem lokalen SP wird ein Funktionsaccount eingerichtet. | ||
| - | * | + | |
| **Das Problem:** Der Login über einen solchen Gast- oder Funktionsaccount darf keinen Zugriff auf andere Service-Provider ermöglichen. | **Das Problem:** Der Login über einen solchen Gast- oder Funktionsaccount darf keinen Zugriff auf andere Service-Provider ermöglichen. | ||
| Zeile 58: | Zeile 58: | ||
| </ | </ | ||
| </ | </ | ||
| - | |||
| <!-- ... --> | <!-- ... --> | ||
| + | </ | ||
| </ | </ | ||
| - | Dabei ist '' | + | Dabei ist '' |
| - | * eine Person sich //nicht// mit "shibgast" | + | * eine Person sich //nicht// mit '' |
| * eine Person auf den fraglichen SP zugreift. | * eine Person auf den fraglichen SP zugreift. | ||
| - | Anders ausgedrückt: | + | Anders ausgedrückt: |
| + | Der Context Ceck muss dann noch zu den Post-Authentication-Flows in '' | ||
| - | FIXME: Den Kram unten noch überarbeiten | + | <file xml / |
| - | + | ||
| - | Diese Datei muss in '' | + | |
| - | <file xml / | + | |
| <!-- ... --> | <!-- ... --> | ||
| - | <util:list id ="shibboleth.AttributeResolverResources"> | + | <bean parent="SAML2.SSO" |
| - | < | + | |
| - | < | + | |
| - | </ | + | |
| <!-- ... --> | <!-- ... --> | ||
| </ | </ | ||
| - | Schließlich ergänzt man die Definition der Daten-Konnektoren um das Attribut '' | + | Anschließend den IdP neu starten. |
| - | <file xml / | + | |
| - | <!-- ... --> | + | |
| - | < | + | |
| - | activationConditionRef=" | + | |
| - | ldapURL=" | + | |
| - | <!-- ... --> | + | |
| - | </ | + | |
| - | Dieses Attribut muss bei allen Daten-Konnektoren eingefügt werden, auch bei dem für die statischen Attribute. | + | |
| - | + | ||
| - | ==== Alternative Activation Condition ==== | + | |
| - | + | ||
| - | Alternativ sollte auch diese Activation-Condition auf Java-Script-Basis funktionieren: | + | |
| - | + | ||
| - | <file xml> | + | |
| - | <?xml version=" | + | |
| - | <!-- | + | |
| - | author: Ramon Pfeiffer | + | |
| - | organisation: | + | |
| - | email: ramon.pfeiffer@uni-tuebingen.de | + | |
| - | date: 2017-08-24 | + | |
| - | + | ||
| - | This file is free to use for any purposes, without any warranty, as long as you keep this comment intact. | + | |
| - | --> | + | |
| - | <beans | + | |
| - | xmlns=" | + | |
| - | xmlns: | + | |
| - | xmlns: | + | |
| - | xmlns: | + | |
| - | xmlns: | + | |
| - | xsi: | + | |
| - | http:// | + | |
| - | http:// | + | |
| - | + | ||
| - | <bean | + | |
| - | id=" | + | |
| - | parent=" | + | |
| - | factory-method=" | + | |
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | var adminsAndServices = { | + | |
| - | // | + | |
| - | //" | + | |
| - | //" | + | |
| - | }; | + | |
| - | + | ||
| - | value = true; | + | |
| - | for(admin in adminsAndServices){ | + | |
| - | value = value && canAccess(admin, | + | |
| - | } | + | |
| - | + | ||
| - | value; | + | |
| - | + | ||
| - | function canAccess(user, | + | |
| - | return isAdministratedService(service) || !isServiceAdministrator(user); | + | |
| - | } | + | |
| - | + | ||
| - | function isAdministratedService(service){ | + | |
| - | rpCtx = profileContext.getSubcontext(" | + | |
| - | return rpCtx != null && rpCtx.getRelyingPartyId().equals(service); | + | |
| - | } | + | |
| - | + | ||
| - | function isServiceAdministrator(user){ | + | |
| - | arCtx = profileContext.getSubcontext(" | + | |
| - | return arCtx != null && arCtx.principal.equals(user); | + | |
| - | } | + | |
| - | ]]> | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | </ | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | Herzlichen Dank an Ramon Pfeiffer aus Tübingen für diese Variante! | + | |
| - | {{tag>archiv}} | + | {{tag>idp5}} |