<?xml version="1.0" encoding="UTF-8"?>

<resolver:AttributeResolver
        xmlns:resolver="urn:mace:shibboleth:2.0:resolver"
        xmlns:pc="urn:mace:shibboleth:2.0:resolver:pc"
        xmlns:ad="urn:mace:shibboleth:2.0:resolver:ad"
        xmlns:dc="urn:mace:shibboleth:2.0:resolver:dc"
        xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder"
        xmlns:sec="urn:mace:shibboleth:2.0:security"
        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
                            urn:mace:shibboleth:2.0:resolver:pc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd
                            urn:mace:shibboleth:2.0:resolver:ad http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-ad.xsd
                            urn:mace:shibboleth:2.0:resolver:dc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd
                            urn:mace:shibboleth:2.0:attribute:encoder http://shibboleth.net/schema/idp/shibboleth-attribute-encoder.xsd
                            urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">

    <!-- ========================================== -->
    <!--      Attribute Definitions                 -->
    <!-- ========================================== -->

    <!-- Schema: Core schema attributes-->
    <resolver:AttributeDefinition id="uid" xsi:type="ad:Simple"  sourceAttributeID="uid">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">UserID</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">UserID</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">User Identifier</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Identificativo di questo utente.</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.1" friendlyName="uid" encodeType="false"/>
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition xsi:type="ad:Simple" id="surname" sourceAttributeID="sn">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Surname</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Cognome</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Surname of a person</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Cognome di una persona</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.4" friendlyName="sn" encodeType="false" />
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition xsi:type="ad:Simple" id="givenName" sourceAttributeID="givenName">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Name</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Nome</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Given name of a person</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Nome proprio di una persona</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.42" friendlyName="givenName" encodeType="false" />
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="commonName" xsi:type="ad:Simple"  sourceAttributeID="cn">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Given Name and Surname</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Nome e Cognome</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Given Name and Surname of a person</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Nome e Cognome di una persona</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.3" friendlyName="cn" encodeType="false"/>
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="title" xsi:type="ad:Simple"  sourceAttributeID="title">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Title</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Titolo</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Title inside the institution</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Titolo della persona nel contesto dell'istituzione</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.12" friendlyName="title" encodeType="false"/>
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition xsi:type="ad:Simple" id="mail" sourceAttributeID="mail">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">E-mail</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">E-mail</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">E-Mail: Preferred address for e-mail to be sent to this person</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">E-Mail: Iindirizzo e-mail preferito dall'utente</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" encodeType="false" />
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition id="telephoneNumber" xsi:type="ad:Simple"  sourceAttributeID="telephoneNumber">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Telephone Number</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Numero di Telefono</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Telephone Number</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Numero di telefono</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.20" friendlyName="telephoneNumber" encodeType="false"/>
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="mobile" xsi:type="ad:Simple"  sourceAttributeID="mobile">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Mobile Telephone Number</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Numero di Telefono Mobile</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Mobile Telephone Number</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Numero di telefono Mobile</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.41" friendlyName="mobile" encodeType="false" />
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="facsimileTelephoneNumber" xsi:type="ad:Simple"  sourceAttributeID="facsimileTelephoneNumber">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Facsimile Number</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Numero del FAX</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Facsimile Number</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Numero di FAX</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.1466.115.121.1.22" friendlyName="facsimileTelephoneNumber" encodeType="false" />
    </resolver:AttributeDefinition>

    <!-- Schema: inetOrgPerson attributes-->
    <resolver:AttributeDefinition id="displayName" xsi:type="ad:Simple"  sourceAttributeID="displayName">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Display name</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Nome visualizzato</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Preferred name of a person to be used when displaying entries</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Nome che una persona preferisce visualizzare</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.16.840.1.113730.3.1.241" friendlyName="displayName" />
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition id="preferredLanguage" xsi:type="ad:Simple"  sourceAttributeID="preferredLanguage">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Preferred Language</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Lingua Preferita</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Preferred Language of the user</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Lingua Preferita dall'utente</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.16.840.1.113730.3.1.39" friendlyName="preferredLanguage" encodeType="false"/>
    </resolver:AttributeDefinition>
    
    <!-- Schema: eduPerson attributes -->
    <resolver:AttributeDefinition id="eduPersonOrgDN" xsi:type="ad:Simple"  sourceAttributeID="eduPersonOrgDN">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Organization path</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">DN dell'organizzazione</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Organization path: The distinguished name (DN) of the directory entry representing the organization with which the person is associated</resolver:DisplayDescription>
        <resolver:DisplayDescription
 xml:lang="it">DN dell'organizzazione: Il DN dell'organizzazione a cui &#232; associato questo utente</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.3" friendlyName="eduPersonOrgDN" encodeType="false" />
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="eduPersonOrgUnitDN" xsi:type="ad:Simple"  sourceAttributeID="eduPersonOrgUnitDN">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Organizational unit path</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">DN dell'unit&#224;</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Organization unit path: The distinguished name (DN) of the directory entries representing the person's Organizational Unit(s)</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">DN dell'unit&#224;: Il DN dell'unit&#224; organizzativa di questo utente nella sua organizzazione</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.4" friendlyName="eduPersonOrgUnitDN" />
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition xsi:type="ad:Scoped" id="eduPersonScopedAffiliation" scope="%{idp.scope}" sourceAttributeID="eduPersonAffiliation">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Scoped Affiliation</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Affiliazione con ambito</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Affiliation Scoped: Type of affiliation with Home Organization with scope</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Affiliazione con ambito: ruolo ricoperto con dominio dell'Organizzazione</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" friendlyName="eduPersonScopedAffiliation" encodeType="false" />
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition xsi:type="ad:Scoped" id="eduPersonPrincipalName" scope="%{idp.scope}" sourceAttributeID="uid">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">eduPersonPrincipalName</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">eduPersonPrincipalName</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Unique and persistent Identifier of a person</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Identificativo unico persistente di questo utente.</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" friendlyName="eduPersonPrincipalName" encodeType="false" />
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition xsi:type="ad:Simple" id="eduPersonEntitlement" sourceAttributeID="eduPersonEntitlement">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Entitlement</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Entitlement</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Entitlement: URI (either URL or URN) that indicates a set of rights to specific resources based on an agreement across the releavant community</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Entitlement: URI (sia URL o URN) che rappresenta diritti specifici d'accesso validi in tutta la community</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" encodeType="false" />
    </resolver:AttributeDefinition>    
    
    <!-- Schema: SCHAC attributes -->
    <resolver:AttributeDefinition id="schacMotherTongue" xsi:type="ad:Simple"  sourceAttributeID="schacMotherTongue">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Mother Tongue</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Lingua Madre</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Mother Tongue of the user</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Lingua Madre dell'utente</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.1" friendlyName="schacMotherTogue" />
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition id="schacPersonalTitle" xsi:type="ad:Simple"  sourceAttributeID="schacPersonalTitle">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Personal Title</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Soprannome</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Nice name used for the user</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Titolo usato per salutare l'utente</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.8" friendlyName="schacPersonalTitle" encodeType="false"/>
    </resolver:AttributeDefinition>

    <resolver:AttributeDefinition id="schacPersonalPosition" xsi:type="ad:Simple"  sourceAttributeID="schacPersonalPosition">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">Personal Position</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">Ruolo ricoperto</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Personal Position of the user for the institution</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Ruolo dell'utente nell'istituzione</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.13" friendlyName="schacPersonalPosition" encodeType="false"/>
    </resolver:AttributeDefinition>
    
    <resolver:AttributeDefinition id="schacUserPresenceID" xsi:type="ad:Simple"  sourceAttributeID="schacUserPresenceID">
        <resolver:Dependency ref="myLDAP" />
        <resolver:DisplayName xml:lang="en">User Network IDs</resolver:DisplayName>
        <resolver:DisplayName xml:lang="it">User Network IDs</resolver:DisplayName>
        <resolver:DisplayDescription xml:lang="en">Identifiers that user collect on the net</resolver:DisplayDescription>
        <resolver:DisplayDescription xml:lang="it">Identificativi usati dall'utente sulla rete</resolver:DisplayDescription>
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.12" friendlyName="schacUserPresenceID" encodeType="false" />
    </resolver:AttributeDefinition>

    <!-- ========================================== -->
    <!--      Data Connectors                       -->
    <!-- ========================================== -->

    <!-- Example LDAP Connector -->
    <resolver:DataConnector id="myLDAP" xsi:type="dc: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}">
        <dc:FilterTemplate>
            <![CDATA[
                %{idp.attribute.resolver.LDAP.searchFilter}
            ]]>
        </dc:FilterTemplate>
        <dc:StartTLSTrustCredential id="LDAPtoIdPCredential" xsi:type="sec:X509ResourceBacked">
            <sec:Certificate>%{idp.attribute.resolver.LDAP.trustCertificates}</sec:Certificate>
        </dc:StartTLSTrustCredential>
    </resolver:DataConnector>
    
</resolver:AttributeResolver>