Välkomna till Sunetdagarna 1-4 april på LNU i Växjö.

För program och anmälan se Sunetdagarna våren 2019.

Rätt semantik för eduPersonScopedAffiliation

eduPersonScopedAffiliation är ett attribut i eduPerson-familjen som är tänkt att representera vilken typ av association som användaren har med organisationen. Attributet byggs dels av attributet eduPersonAffiliation och dels av samma domändel som i eduPersonPrincipalName och i eduPersonUniqueID. Attributet är ett flervärt attribut som innehåller en eller flera av följande värden:

eduPersonScopedAffiliation

Förklaring

faculty@domän

Professorer, forskare och lektorer

staff@domän

Övrig personal vid lärosätet

employee@domän

faculty och staff (inkl. övrigt verksam, person som inte är anställd men agerar som sådan)

student@domän

Aktiv student

alum@domän

Alumner - tidigare student

member@domän

employee, student och andra "in good standing of the university community"

affiliate@domän

Någon som har en association med universitetet men till vilken man inte ger några rättigheter.

library-walk-in@domän

Person som är fysiskt närvarande vid ett universitets-bibliotek

En bild säger mer än tusen ord

Nedan visas inbördes ordning i eduPersonAffliation, dvs utan domändel.

Användning i SWAMID

Värden på eduPersonScopedAffiliation är skapade för Anglosaxiska förhållanden. Tjänster (SP) anslutna till SWAMID eller genom interfederationen eduGAIN kan förutsätta att åtminstone följande kombinationer används på samma sätt av alla medlemmar i SWAMID.

eduPersonScopedAffiliation-värden

Typ av association med universitetet

employee@domän, member@domän

  • Anställda vid lärosätet
  • Övriga verksamma (personer som inte är anställda men agerar som sådana)

student@domän, member@domän

  • Aktiva studenter

member@domän

  • Gästforskare som arbetar som om de vore en del av organisationen
  • Konsulter som arbetar som om de vore en del av organisationen
  • etc.

affiliate@domän

  • Externa forskare som deltar i forskningsprojekt inom organisationen
  • Konsulter som utför uppdrag åt organisationen
  • etc.

alum@domän

  • Alumner - tidigare studenter

Exempel: Skapa värden via Shibboleth på eduPersonScopedAffiliation med hjälp av grupper i LDAP

Konfigurationerna under detta avsnitt fungerar endast för Shibboleth 2 eller senare. För simpleSAMLphp och ADFS2 kan konfigurationsexemplen endast användas som inspiration.

Förutsättningar:

  • Värden för eduPersonScopedAffiliation följer användningen i SWAMID enlig ovan.

  • Alla medlemmar i gruppen "Anstallda" får member@domän och employee@domän.

  • Alla medlemmar i gruppen "Studenter" får member@domän och student@domän.

  • Alla medlemmar i gruppen "OvrigaMedlemmar" får member@domän.

  • Alla medlemmar i gruppen "Anknytna" får affiliate@domän.

  • Alla medlemmar i gruppen "Alumner" får alum@domän.

Känd begränsning:

  • Grupper i grupper fungerar inte.

  • Om du använder Active Directory för att slå upp grupperna så är gruppnamnet hela distinguishedName för gruppen.

  • Ersätt --domän-- med organisationens scope i metadata, oftast organisationens toppdomän..

    <resolver:AttributeDefinition xsi:type="Script" id="eduPersonAffiliation">
         <resolver:Dependency ref="myLDAP" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:eduPersonAffiliation" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1" friendlyName="eduPersonAffiliation" />
        <!-- The script, wrapped in a CDATA section so that special XML characters don't need to be removed -->
        <Script><![CDATA[
            // If the user has group membership
            if (typeof memberOf != "undefined" && memberOf != null ){
                // The go through each group membership and add the appropriate affiliation
                // The IdP will remove duplicate values so we don't need to worry about that here
                for ( i = 0; i < memberOf.getValues().size(); i++ ) {
                    if (memberOf.getValues().get(i).equals("Anstallda") > 0) {
                        eduPersonAffiliation.getValues().add("member");
                        eduPersonAffiliation.getValues().add("employee");
                    }
                    if (memberOf.getValues().get(i).equals("Studenter") > 0) {
                        eduPersonAffiliation.getValues().add("member");
                        eduPersonAffiliation.getValues().add("student");
                    }
                    if (memberOf.getValues().get(i).equals("OvrigaMedlemmar") > 0) {
                        eduPersonAffiliation.getValues().add("member");
                    }
                    if (memberOf.getValues().get(i).equals("Anknytna") > 0) {
                        eduPersonAffiliation.getValues().add("affiliate");
                    }
                    if (memberOf.getValues().get(i).equals("Alumner") > 0) {
                        eduPersonAffiliation.getValues().add("alum");
                    }
                }
            }
        ]]></Script>
    </resolver:AttributeDefinition>
    
     <resolver:AttributeDefinition xsi:type="ad:Scoped" id="eduPersonScopedAffiliation" scope="--domän--" sourceAttributeID="eduPersonAffiliation">
        <resolver:Dependency ref="eduPersonAffiliation" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1ScopedString" name="urn:mace:dir:attribute-def:eduPersonScopedAffiliation" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2ScopedString" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" friendlyName="eduPersonScopedAffiliation" />
    </resolver:AttributeDefinition>