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
Nächste ÜberarbeitungBeide Seiten der Revision
de:shibidp3config-attribute [2018/04/04 16:44] – [Attribute-Test mithilfe der Test-SPs in der DFN-AAI-Test] Wolfgang Pempede:shibidp3config-attribute [2020/05/11 16:19] Silke Meyer
Zeile 1: Zeile 1:
 ====== Konfiguration Attribut-Generierung und -Freigabe====== ====== Konfiguration Attribut-Generierung und -Freigabe======
 +
 +Zum grundlegenden Verständnis der Attribut-Generierung, -Freigabe und -Übertragung empfehlen wir die Lektüre dieser [[https://download.aai.dfn.de/ws/2019_hlm/attribute.pdf|Präsentation von einem der DFN-AAI Workshops]].
  
 Erzeugung und Freigabe der SAML-Attribute wird weiterhin über die Dateien attribute-resolver.xml und attribute-filter.xml gesteuert. Diese unterscheiden sich syntaktisch und semantisch leicht von den gewohnten Dateien im IdP 2.x. Erzeugung und Freigabe der SAML-Attribute wird weiterhin über die Dateien attribute-resolver.xml und attribute-filter.xml gesteuert. Diese unterscheiden sich syntaktisch und semantisch leicht von den gewohnten Dateien im IdP 2.x.
Zeile 5: Zeile 7:
 Mit den folgenden beiden Konfigurationsdateien sollte ein erster Test gegen die DFN-Test-SPs schnell gelingen: Mit den folgenden beiden Konfigurationsdateien sollte ein erster Test gegen die DFN-Test-SPs schnell gelingen:
  
-=== Minimal-attribute-resolver.xml ===+===== Minimale attribute-resolver.xml =====
  
-Laden Sie unsere [[de:attribute-resolver-example|Beispieldatei]] herunter und legen Sie diese nach ./conf/attribute-resolver.xml+Laden Sie unsere Beispieldatei herunter und legen Sie diese nach ''./conf/attribute-resolver.xml''. Sie dient in erster Linie zu Testzwecken bei der Erstinstallation eines Shibboleth IdP. Die Werte für ''sourceAttributeID'' müssen ggf. den Attributnamen im lokalen IdM bzw. 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)  
 + 
 +<file xml ./conf/attribute-resolver.xml
 +<?xml version="1.0" encoding="UTF-8"?> 
 +<AttributeResolver 
 +        xmlns="urn:mace:shibboleth:2.0:resolver" 
 +        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 +        xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd"> 
 + 
 +    <!-- ========================================== --> 
 +    <!--      Attribute Definitions                 --> 
 +    <!-- ========================================== --> 
 + 
 +    <!-- Attribute aus Userangaben --> 
 + 
 +    <AttributeDefinition id="uid" xsi:type="PrincipalName"> 
 +        <DisplayName xml:lang="en">User Name</DisplayName> 
 +        <DisplayName xml:lang="de">Nutzerkennung</DisplayName> 
 +        <DisplayDescription xml:lang="en">Local User Id</DisplayDescription> 
 +        <DisplayDescription xml:lang="de">Nutzerkennung der Heimateinrichtung</DisplayDescription> 
 +        <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:uid" encodeType="false" /> 
 +        <AttributeEncoder xsi:type="SAML2String" name="urn:oid:0.9.2342.19200300.100.1.1" friendlyName="uid" encodeType="false" /> 
 +    </AttributeDefinition> 
 + 
 +    <AttributeDefinition id="eduPersonPrincipalName" xsi:type="Scoped" scope="%{idp.scope}"> 
 +        <InputAttributeDefinition ref="uid" /> 
 +        <DisplayName xml:lang="en">Principal name</DisplayName> 
 +        <DisplayName xml:lang="de">Netz-Id</DisplayName> 
 +        <DisplayDescription xml:lang="en">A unique identifier for a person, mainly for inter-institutional user identification</DisplayDescription> 
 +        <DisplayDescription xml:lang="de">Eindeutige, einrichtungsübergreifende Nutzerkennung</DisplayDescription> 
 +        <AttributeEncoder xsi:type="SAML1ScopedString" name="urn:mace:dir:attribute-def:eduPersonPrincipalName" encodeType="false" /> 
 +        <AttributeEncoder xsi:type="SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" friendlyName="eduPersonPrincipalName" encodeType="false" /> 
 +    </AttributeDefinition> 
 + 
 +    <!--- Attribute aus dem IdM --> 
 + 
 +    <AttributeDefinition id="mail" xsi:type="Simple"> 
 +        <InputDataConnector ref="myLDAP" attributeNames="mail"/> 
 +        <DisplayName xml:lang="en">E-mail</DisplayName> 
 +        <DisplayName xml:lang="de">E-Mail</DisplayName> 
 +        <DisplayDescription xml:lang="en">E-Mail address</DisplayDescription> 
 +        <DisplayDescription xml:lang="de">E-Mail Adresse</DisplayDescription> 
 +        <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:mail" encodeType="false" /> 
 +        <AttributeEncoder xsi:type="SAML2String" name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" encodeType="false" /> 
 +    </AttributeDefinition> 
 + 
 +    <AttributeDefinition id="surname" xsi:type="Simple"> 
 +        <InputDataConnector ref="myLDAP" attributeNames="sn"/> 
 +        <DisplayName xml:lang="en">Surname</DisplayName> 
 +        <DisplayName xml:lang="de">Nachname</DisplayName> 
 +        <DisplayDescription xml:lang="en">Surname or family name</DisplayDescription> 
 +        <DisplayDescription xml:lang="de">Familienname des Nutzers bzw. der Nutzerin</DisplayDescription> 
 +        <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:sn" encodeType="false" /> 
 +        <AttributeEncoder xsi:type="SAML2String" name="urn:oid:2.5.4.4" friendlyName="sn" encodeType="false" /> 
 +    </AttributeDefinition> 
 + 
 +    <AttributeDefinition id="givenName" xsi:type="Simple"> 
 +        <InputDataConnector ref="myLDAP" attributeNames="givenName"/> 
 +        <DisplayName xml:lang="en">Given name</DisplayName> 
 +        <DisplayName xml:lang="de">Vorname</DisplayName> 
 +        <DisplayDescription xml:lang="en">Given name of a person</DisplayDescription> 
 +        <DisplayDescription xml:lang="de">Vorname des Nutzers bzw. der Nutzerin</DisplayDescription> 
 +        <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:givenName" encodeType="false" /> 
 +        <AttributeEncoder xsi:type="SAML2String" name="urn:oid:2.5.4.42" friendlyName="givenName" encodeType="false" /> 
 +    </AttributeDefinition> 
 + 
 + 
 +    <!-- ========================================== --> 
 +    <!--      Data Connectors                       --> 
 +    <!-- ========================================== --> 
 + 
 +    <DataConnector id="myLDAP" xsi:type="LDAPDirectory" 
 +        ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}" 
 +        baseDN="%{idp.attribute.resolver.LDAP.baseDN}" 
 +        principal="%{idp.attribute.resolver.LDAP.bindDN}" 
 +        principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}" 
 +        useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS:true}" 
 +        connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}" 
 +        trustFile="%{idp.attribute.resolver.LDAP.trustCertificates}" 
 +        responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}"> 
 +        <FilterTemplate> 
 +            <![CDATA[ 
 +                %{idp.attribute.resolver.LDAP.searchFilter} 
 +            ]]> 
 +        </FilterTemplate> 
 +        <ConnectionPool 
 +            minPoolSize="%{idp.pool.LDAP.minSize:3}" 
 +            maxPoolSize="%{idp.pool.LDAP.maxSize:10}" 
 +            blockWaitTime="%{idp.pool.LDAP.blockWaitTime:PT3S}" 
 +            validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}" 
 +            validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}" 
 +            expirationTime="%{idp.pool.LDAP.idleTime:PT10M}" 
 +            failFastInitialize="%{idp.pool.LDAP.failFastInitialize:false}" /> 
 +    </DataConnector> 
 + 
 +</AttributeResolver> 
 +</file>
  
 Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!):
Zeile 14: Zeile 114:
 </code> </code>
  
-=== attribute-filter.xml für die DFN-AAI-Test ===+===== attribute-filter.xml für die DFN-AAI Test-SP ===== 
 + 
 +Laden Sie unsere [[de:attribute-filter-example|Beispieldatei]] herunter und legen Sie diese nach ''./conf/attribute-filter.xml''. Auch sie dient in erster Linie zu Testzwecken bei der Erstinstallation eines Shibboleth IdP. Für den späteren Produktivbetrieb beachten Sie bitte die vertiefende [[de:shibidp3attributes|Dokumentation]].  
 + 
 +(Ein Klick auf den Dateinamen startet den Download)  
 + 
 +<file xml ./conf/attribute-filter.xml> 
 +<?xml version="1.0" encoding="UTF-8"?> 
 +<AttributeFilterPolicyGroup id="ShibbolethFilterPolicy" 
 +        xmlns="urn:mace:shibboleth:2.0:afp" 
 +        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"> 
 + 
 +   <!-- Attribute an die DFN-Test-IdPs freigeben --> 
 +   <AttributeFilterPolicy id="dfn_test_sps"> 
 +        <PolicyRequirementRule xsi:type="OR"> 
 +            <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://testsp3.aai.dfn.de/shibboleth" /> 
 +        </PolicyRequirementRule>
  
-Laden Sie unsere [[de:attribute-filter-example|Beispieldatei]] herunter und legen Sie diese nach ./conf/attribute-filter.xml.+        <AttributeRule attributeID="uid"                    permitAny="true"/
 +        <AttributeRule attributeID="eduPersonPrincipalName" permitAny="true"/
 +        <AttributeRule attributeID="mail"                   permitAny="true"/> 
 +        <AttributeRule attributeID="surname"                permitAny="true"/> 
 +        <AttributeRule attributeID="givenName"              permitAny="true"/> 
 +  </AttributeFilterPolicy> 
 +</AttributeFilterPolicyGroup> 
 +</file>
  
 Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!): Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!):
Zeile 23: Zeile 149:
 </code> </code>
  
-==== Attribute-Test mithilfe der Test-SPs in der DFN-AAI-Test ====+===== Attribute-Test mithilfe der Test-SPs in der DFN-AAI-Test =====
  
 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]].
Zeile 29: Zeile 155:
 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', 'surname' und 'givenName' angezeigt bekommen, sollten Sie mit der IdP-Konfiguration weiter machen!
  
-==== Optional: Attribute-Test mithilfe aacli ====+===== Optional: Attribute-Test mithilfe aacli =====
  
 Mit dem **Resolvertest (aacli)** besteht die Möglichkeit, die Attributfreigabe für eine(n) bestimmte(n) Nutzer(in) gegenüber einem bestimmten SP zu testen. Der Aufruf von bin/aacli.sh generiert einen URL, der dann z.B. im Browser eingegeben werden kann (auch hier Zugriffskontrolle über conf/access-control.xml): Mit dem **Resolvertest (aacli)** besteht die Möglichkeit, die Attributfreigabe für eine(n) bestimmte(n) Nutzer(in) gegenüber einem bestimmten SP zu testen. Der Aufruf von bin/aacli.sh generiert einen URL, der dann z.B. im Browser eingegeben werden kann (auch hier Zugriffskontrolle über conf/access-control.xml):
 <code bash> <code bash>
-root@idp# ./aacli.sh -n test-clt -r https://testsp3.aai.dfn.de/shibboleth+root@idp# ./bin/aacli.sh -n test-clt -r https://testsp3.aai.dfn.de/shibboleth
 </code> </code>
-(**-n** principal = user id; **-r** requester = entityId des anfragenden SP)+(**-n** principal = user id; **-r** requester = entityId des [simuliert] anfragenden SP) \\ 
 +Für die ausführliche Dokumentation konsultieren Sie bitte das [[https://wiki.shibboleth.net/confluence/display/IDP30/AACLI|Shibboleth Wiki]].
  
 Weiter geht es mit der [[de:shibidp3config-zertifikate|Zertifikate]]-Konfiguration. Weiter geht es mit der [[de:shibidp3config-zertifikate|Zertifikate]]-Konfiguration.
  
 +{{tag>idp3}}