Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp:config-testzugang [2022/11/28 13:58] Wolfgang Pempede:shibidp:config-testzugang [2022/11/28 15:43] (aktuell) Wolfgang Pempe
Zeile 58: Zeile 58:
         </constructor-arg>         </constructor-arg>
     </bean>     </bean>
- 
  
 <!-- ... --> <!-- ... -->
  
 +</beans>
 </file> </file>
  
-Dabei ist ''shibgast'' die uid des Gastaccounts, und ''%%https://sp.example.org/shibboleth%%'' die Entity Id des Service Providers, auf den diese Person Zugriff erhalten soll. Passen Sie diese Werte sowie den Namen des Quell-Attributs (hier ''uid'') bitte entsprechend an. Die Bedingung ist erfüllt, wenn  +Dabei ist ''shibgast'' die User Id des Gast-/Funktionsaccounts, und ''%%https://sp.example.org/shibboleth%%'' die Entity Id des Service Providers, auf den diese Person(en) Zugriff erhalten soll(en). Passen Sie diese Werte sowie den Namen des Quell-Attributs (hier ''uid'') bitte entsprechend an. Die Bedingung ist erfüllt, wenn  
-  * eine Person sich //nicht// mit "shibgast" angemeldet hat oder +  * eine Person sich //nicht// mit ''shibgas'' angemeldet hat oder 
   * eine Person auf den fraglichen SP zugreift.    * eine Person auf den fraglichen SP zugreift. 
-Anders ausgedrückt: Wenn "shibgastsich mit einem anderen SP verbindet, ist die Bedingung nicht erfüllt und der Context Check - und somit auch die Anmeldung - schlagen fehl.+Anders ausgedrückt: Wenn ''shibgast'' sich mit einem anderen SP verbindet, ist die Bedingung nicht erfüllt und der Context Check - und somit auch die Anmeldung - schlagen fehl.
  
 +Der Context Ceck muss dann noch zu den Post-Authentication-Flows in ''relying-party.xml'' hinzugefügt werden:
  
-FIXME: Den Kram unten noch überarbeiten +<file xml /opt/shibboleth-idp/conf/relying-party.xml>
- +
-Diese Datei muss in ''services.xml'' referenziert werden: +
-<file xml /opt/shibboleth-idp/conf/services.xml>+
 <!-- ... --> <!-- ... -->
-    <util:list id ="shibboleth.AttributeResolverResources"+    <bean parent="SAML2.SSOp:postAuthenticationFlows="#{'terms-of-use', 'context-check', 'attribute-release'}/>
-        <value>%{idp.home}/conf/attribute-resolver.xml</value> +
-        <value>%{idp.home}/conf/shibgast_resolver_condition.xml</value> +
-    </util:list>+
 <!-- ... --> <!-- ... -->
 </file> </file>
  
-Schließlich ergänzt man die Definition der Daten-Konnektoren um das Attribut ''activationConditionRef'': +Anschließend den IdP neu starten
-<file xml /opt/shibboleth-idp/conf/attribute-resolver.xml> +
-<!-- ... --> +
-    <DataConnector id="myLDAP" xsi:type="LDAPDirectory" +
-        activationConditionRef="shibgast_resolver_condition" +
-        ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}" +
-<!-- ... --> +
-</file> +
-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="1.0" encoding="UTF-8"?> +
-<!-- +
- author: Ramon Pfeiffer +
- organisation: Universität Tübingen - ZDV +
- 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="http://www.springframework.org/schema/beans" +
-    xmlns:util="http://www.springframework.org/schema/util" +
-    xmlns:p="http://www.springframework.org/schema/p" +
-    xmlns:c="http://www.springframework.org/schema/c" +
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +
-    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd +
-                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd +
-                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> +
- +
-    <bean +
-        id="activation-condition-ExternalAdmin" +
-        parent="shibboleth.Conditions.Scripted" +
-        factory-method="inlineScript"> +
-        <constructor-arg> +
-            <value> +
-<![CDATA[ +
-    var adminsAndServices = { +
- //Wertepaare können hier kommasepariert eingetragen werden +
- //"admin1" : "service1", +
- //"admin2" : "service2" +
-    }; +
- +
-    value = true; +
-    for(admin in adminsAndServices){ +
-        value = value && canAccess(admin, adminsAndServices[admin]); +
-    } +
- +
-    value; +
- +
-    function canAccess(user, service){ +
-        return isAdministratedService(service) || !isServiceAdministrator(user); +
-   } +
- +
-    function isAdministratedService(service){ +
-        rpCtx = profileContext.getSubcontext("net.shibboleth.idp.profile.context.RelyingPartyContext"); +
-        return rpCtx != null && rpCtx.getRelyingPartyId().equals(service); +
-    } +
- +
-    function isServiceAdministrator(user){ +
-        arCtx = profileContext.getSubcontext("net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext"); +
-        return arCtx != null && arCtx.principal.equals(user); +
-    } +
-]]> +
-            </value> +
-        </constructor-arg> +
- +
-    </bean> +
-</beans> +
-</file> +
- +
-Herzlichen Dank an Ramon Pfeiffer aus Tübingen für diese Variante!+
  
-{{tag>archiv}}+{{tag>idp4}}
  • Zuletzt geändert: vor 17 Monaten