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-attributes-minimal [2020/04/23 09:05] – [Optional: Attribute-Test mithilfe aacli] Silke Meyerde:shibidp:config-attributes-minimal [2023/11/01 18:20] (aktuell) – [Definition bzw. Generierung von Attributen] Wolfgang Pempe
Zeile 1: Zeile 1:
 +<- de:shibidp:config-idm|Anbindung des IdM ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:config-zertifikate|Konfiguration der Zertifikate ->
 ====== Minimalkonfiguration von Attributen ====== ====== Minimalkonfiguration von Attributen ======
  
-Zum grundlegenden Verständnis der Attribut-Generierung, -Freigabe und -Übertragung empfehlen wir die Seite [[de:attributes-nutshell|Attribute in a Nutshell]].+Zum grundlegenden Verständnis der Attribut-Generierung, -Freigabe und -Übertragung empfehlen wir die Seite [[de:attributes-nutshell|Attributes in a Nutshell]].
  
 Die Erzeugung und Freigabe der SAML-Attribute wird über die Dateien ''.conf/attribute-resolver.xml'', ''./conf/attribute-filter.xml'' und ''./conf/attribute-registry.xml'' gesteuert. Als nächstes laden Sie sich hier ein funktionierendes Minimalbeispiel herunter und testen damit, ob Ihr IdP Attribute an unseren Test-SP übermittelt. Die detaillierte Attributfreigabe für Ihren speziellen IdP machen Sie später. Die Erzeugung und Freigabe der SAML-Attribute wird über die Dateien ''.conf/attribute-resolver.xml'', ''./conf/attribute-filter.xml'' und ''./conf/attribute-registry.xml'' gesteuert. Als nächstes laden Sie sich hier ein funktionierendes Minimalbeispiel herunter und testen damit, ob Ihr IdP Attribute an unseren Test-SP übermittelt. Die detaillierte Attributfreigabe für Ihren speziellen IdP machen Sie später.
Zeile 7: Zeile 8:
 ===== Definition bzw. Generierung von Attributen ===== ===== Definition bzw. Generierung von Attributen =====
  
-<callout type="danger" title="Neuerungen beim IdP 4.x"> +<callout color="#ff9900" title="Neuerungen beim IdP 4.x"> 
-Die attribute-resolver.xml aus einer IdP 3.x-Installation kann nicht einfach in eine Neuinstallation von IdP 4.x hineinkopiert werden! +Die ''attribute-resolver.xml'' aus einer IdP 3.x-Installation kann nicht einfach in eine Neuinstallation von IdP 4.x hineinkopiert werden! Die Elemente "DisplayName", "DisplayDescription" und "AttributeEncoder", die in der Resolver-Syntax des 3er-IdP enthalten waren, sind jetzt in der Attribute Registry unterhalb von ''./conf/attributes'' definiert. Diese Zeilen müssen aus ''attribute-resolver.xml'' entfernt werden, damit die Datei in einem neu installierten 4er-IdP verwendet werden kann.</callout>
-</callout>+
  
 Die zentrale Konfigurationsdatei für die //Generierung// von Attributen ist ''./conf/attribute-resolver.xml''. Hier definieren Sie Die zentrale Konfigurationsdatei für die //Generierung// von Attributen ist ''./conf/attribute-resolver.xml''. Hier definieren Sie
Zeile 16: Zeile 16:
   * wie diese Attribute ggf. im IdP umgebaut werden sollen.    * wie diese Attribute ggf. im IdP umgebaut werden sollen. 
  
-Shibboleth liefert eine umfangreiche Beispieldatei ''./conf/attribute-resolver-full.xml'' mit. Um es zunächst übersichtlicher zu halten, laden Sie sich bitte unten stehende Beispieldatei herunter und legen Sie sie nach ''./conf/attribute-resolver.xml''. Sie ist für Testzwecke nach der Erstinstallation gedacht. Die Werte für ''attributeNames'' müssen ggf. den tatsächlichen Attributnamen in Ihrem Nutzerverzeichnis angepasst werden. Für den späteren Produktivbetrieb müssen i.d.R. noch mindestens die Definitionen der für den Bibliotheksbereich relevanten Attribute ''eduPerson(Scoped)Affiliation'' und ''eduPersonEntitlement'' ergänzt werden, siehe die entsprechende [[de:shibidp:config-attributes-publishers|Dokumentation]]. +Um es zunächst übersichtlicher zu halten, legen Sie sich bitte unten stehende Beispieldatei nach ''./conf/attribute-resolver.xml''. Sie ist für Testzwecke nach der Erstinstallation gedacht. Die Werte für ''attributeNames'' müssen ggf. den tatsächlichen Attributnamen in Ihrem Nutzerverzeichnis angepasst werden. Für den späteren Produktivbetrieb müssen i.d.R. noch mindestens die Definitionen der für den Bibliotheksbereich relevanten Attribute ''eduPerson(Scoped)Affiliation'' und ''eduPersonEntitlement'' ergänzt werden, siehe die entsprechende [[de:shibidp:config-attributes-publishers|Dokumentation]]. 
  
 (Ein Klick auf den Dateinamen startet den Download)  (Ein Klick auf den Dateinamen startet den Download) 
Zeile 33: Zeile 33:
     <!-- Attribute aus Userangaben -->     <!-- Attribute aus Userangaben -->
  
-    <AttributeDefinition id="uid" xsi:type="PrincipalName"+    <AttributeDefinition id="uid" xsi:type="PrincipalName" />
-    </AttributeDefinition>+
          
     <AttributeDefinition id="eduPersonPrincipalName" xsi:type="Scoped" scope="%{idp.scope}">     <AttributeDefinition id="eduPersonPrincipalName" xsi:type="Scoped" scope="%{idp.scope}">
Zeile 42: Zeile 41:
     <!--- Attribute aus dem IdM -->     <!--- Attribute aus dem IdM -->
  
-    <AttributeDefinition id="mail" xsi:type="Simple"> +    <!-- Bitte beachten Sie unten im Data Connector "myLDAP" die Zeile "exportAttributes". 
-        <InputDataConnector ref="myLDAP" attributeNames="mail"/> +    Dort werden all die Attribute automatisch aus dem IdM geholt, die im IdM genau so heißen, 
-    </AttributeDefinition> +    wie der IdP sie in seiner Attribute Registry auch definiert hat. Für diese Attribute 
- +    brauchen Sie dann hier keine eigene Attributdefinition mehr.  
-    <AttributeDefinition id="surname" xsi:type="Simple"> +    Analog verhält es sich mit dem Data Connector "staticAttributes-->
-        <InputDataConnector ref="myLDAP" attributeNames="sn"/> +
-    </AttributeDefinition> +
- +
-    <AttributeDefinition id="givenNamexsi:type="Simple"> +
-        <InputDataConnector ref="myLDAP" attributeNames="givenName"/> +
-    </AttributeDefinition>+
  
     <!-- ========================================== -->     <!-- ========================================== -->
Zeile 66: Zeile 59:
         connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}"         connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}"
         trustFile="%{idp.attribute.resolver.LDAP.trustCertificates}"         trustFile="%{idp.attribute.resolver.LDAP.trustCertificates}"
-        responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}">+        responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}
 +        failFastInitialize="%{idp.pool.LDAP.failFastInitialize:false}" 
 +        exportAttributes="givenName sn mail displayName" >
         <FilterTemplate>         <FilterTemplate>
             <![CDATA[             <![CDATA[
Zeile 78: Zeile 73:
             validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}"             validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}"
             validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}"             validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}"
-            expirationTime="%{idp.pool.LDAP.idleTime:PT10M}" +            expirationTime="%{idp.pool.LDAP.idleTime:PT10M}" /> 
-            failFastInitialize="%{idp.pool.LDAP.failFastInitialize:false}" />+    </DataConnector> 
 + 
 +    <DataConnector id="staticAttributes" xsi:type="Static" 
 +        exportAttributes="o schacHomeOrganization"> 
 +        <!-- Der Name Ihrer Einrichtung wird hier statisch für alle Accounts gesetzt--> 
 +        <Attribute id="o"> 
 +            <Value>Beispiel-Hochschule</Value> 
 +        </Attribute> 
 +        <!-- Die Domain Ihrer Einrichtung wird hier statisch gesetzt, entspricht i.d.R. dem Scope --> 
 +        <Attribute id="schacHomeOrganization"> 
 +            <Value>uni-beispiel.de</Value> 
 +        </Attribute>
     </DataConnector>     </DataConnector>
  
Zeile 93: Zeile 99:
 ===== Freigabe von Attributen an SPs ===== ===== Freigabe von Attributen an SPs =====
  
-Die zentrale Konfigurationsdatei für die //Freigabe// von Attributen an Service Provider ist ''./conf/attribute-filter.xml''. Unsere Beispieldatei regelt, welche Attribute an unsere öffentlichen Test-SPs freigegeben werden. Für den späteren Produktivbetrieb beachten Sie bitte die vertiefende [[de:shibidp3attributes|Dokumentation]]. +Die zentrale Konfigurationsdatei für die //Freigabe// von Attributen an Service Provider ist ''./conf/attribute-filter.xml''. Unsere Beispieldatei regelt, welche Attribute an unsere öffentlichen Test-SPs freigegeben werden. Für den späteren Produktivbetrieb beachten Sie bitte die vertiefende [[de:shibidp:config-attributes|Dokumentation]]. 
  
 (Ein Klick auf den Dateinamen startet den Download)  (Ein Klick auf den Dateinamen startet den Download) 
Zeile 103: Zeile 109:
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">         xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">
 +
 +   <!-- Verlässlichkeitsinformationen sind nicht personenbeziehbar 
 +        und sollten grundsätzlich an jeden SP übertragen werden -->  
 +   <AttributeFilterPolicy id="ReleaseAssuranceToAnyone">
 +        <PolicyRequirementRule xsi:type="ANY" />
 +        <AttributeRule attributeID="eduPersonAssurance" permitAny="true" />
 +   </AttributeFilterPolicy>
  
    <!-- Attribute an die DFN-Test-SPs freigeben -->    <!-- Attribute an die DFN-Test-SPs freigeben -->
Zeile 108: Zeile 121:
         <PolicyRequirementRule xsi:type="OR">         <PolicyRequirementRule xsi:type="OR">
             <!-- Als Requester wird die jeweilige EntityID des Service Providers angegeben. -->             <!-- Als Requester wird die jeweilige EntityID des Service Providers angegeben. -->
-            <Rule xsi:type="Requester" value="https://testsp.aai.dfn.de/shibboleth" /> 
             <Rule xsi:type="Requester" value="https://testsp2.aai.dfn.de/shibboleth" />             <Rule xsi:type="Requester" value="https://testsp2.aai.dfn.de/shibboleth" />
             <Rule xsi:type="Requester" value="https://testsp3.aai.dfn.de/shibboleth" />             <Rule xsi:type="Requester" value="https://testsp3.aai.dfn.de/shibboleth" />
Zeile 116: Zeile 128:
         <AttributeRule attributeID="eduPersonPrincipalName" permitAny="true"/>         <AttributeRule attributeID="eduPersonPrincipalName" permitAny="true"/>
         <AttributeRule attributeID="mail"                   permitAny="true"/>         <AttributeRule attributeID="mail"                   permitAny="true"/>
-        <AttributeRule attributeID="surname               permitAny="true"/>+        <AttributeRule attributeID="sn                    permitAny="true"/>
         <AttributeRule attributeID="givenName"              permitAny="true"/>         <AttributeRule attributeID="givenName"              permitAny="true"/>
   </AttributeFilterPolicy>   </AttributeFilterPolicy>
Zeile 132: Zeile 144:
 Bitte testen Sie jetzt die Attribute-Freigabe gegen unsere Test-SPs, siehe hierzu unter [[de:functionaltest_idp|Funktionstest]]. Bitte testen Sie jetzt die Attribute-Freigabe gegen unsere Test-SPs, siehe hierzu unter [[de:functionaltest_idp|Funktionstest]].
  
-Erst wenn diese Tests erfolgreich sind und Sie die Attribute ''uid'', ''eduPersonPrincipalName'', ''mail'', ''surname'' und ''givenName'' angezeigt bekommen, sollten Sie mit der IdP-Konfiguration weiter machen!+Erst wenn diese Tests erfolgreich sind und Sie die Attribute ''uid'', ''eduPersonPrincipalName'', ''mail'', ''sn'' und ''givenName'' angezeigt bekommen, sollten Sie mit der IdP-Konfiguration weiter machen!
  
-===== OptionalAttribute-Test mithilfe aacli =====+==== Resolvertest im Browser ==== 
 +Sie können den Resolvertest im Browser aufrufen. Ersetzen Sie den Anfang entsprechend Ihres Identity Providers: 
 + 
 +<code bash> 
 +https://<IHR-IDP>/idp/profile/admin/resolvertest?principal=test-clt&requester=https://testsp3.aai.dfn.de/shibboleth 
 +# Rückgabe: 
 +
 +"requester": "https://testsp3.aai.dfn.de/shibboleth", 
 +"principal": "test-clt", 
 +"attributes":
 + 
 + 
 +  { 
 +    "name": "eduPersonEntitlement", 
 +    "values":
 +              "urn:mace:dir:entitlement:common-lib-terms"          ] 
 +  },   
 + 
 +  { 
 +    "name": "eduPersonScopedAffiliation", 
 +    "values":
 +              "member@testscope.aai.dfn.de"          ] 
 +  }   
 + 
 +
 +
 +</code> 
 + 
 +==== Resolvertest mit aacli ====
  
 Alternativ können Sie das Kommandozeilenwerkzeug ''aacli'' verwenden, um die Attributfreigabe zu testen: Geben Sie mit ''-n'' den Principal/die User ID an und mit ''-r'' den Requester/den SP, der die simulierte Anfrage stellt: Alternativ können Sie das Kommandozeilenwerkzeug ''aacli'' verwenden, um die Attributfreigabe zu testen: Geben Sie mit ''-n'' den Principal/die User ID an und mit ''-r'' den Requester/den SP, der die simulierte Anfrage stellt:
Zeile 145: Zeile 185:
 Die [[https://wiki.shibboleth.net/confluence/display/IDP4/AACLI|aacli-Dokumentation]] finden Sie im Shibboleth-Wiki. Die [[https://wiki.shibboleth.net/confluence/display/IDP4/AACLI|aacli-Dokumentation]] finden Sie im Shibboleth-Wiki.
  
-Weiter geht es mit der [[de:shibidp:config-zertifikate|Konfiguration der Zertifikate]]. +{{tag>idp4 tutorial included-in-ansible}}
- +
-{{tag>idp4 tutorial}}+
  • Zuletzt geändert: vor 4 Jahren