Rekommenderad release av statisk organisationsinformation

En del tjänster behöver veta vilken organisation en användare kommer ifrån, inte bara med domännamnet i eduPersonPrincipalName utan även organisationens namn och i vilket land organisationen har sin hemvist. Denna sida beskriver hur du gör för att skapa statiska attribut med denna information.

I denna text antar vi att attributen o, co, c, norEduOrgAcronym, schacHomeOrganization och schacHomeOrganizationType inte varierar mellan olika användare utan kan skapas från en konfigurationsfil. I vissa fall när en IdP används för flera organisationer kan dessa attribut behöva sättas från en databas eller katalogtjänst.

Det som ingår i den beskrivna statiska organisationsinformationen är:

  • Organisationsnamn (o)
  • Vedertagen förkortning av organisationsnamnet (norEduOrgAcronym)
  • Namn på landet där organisationen har sitt säte (co)
  • Förkortning enligt ISO-3166 för landet där organisationen har sitt säte (c)
  • Huvuddomän för organisationen (schacHomeOrganization)
  • Typ av organisation (schacHomeOrganizationType)

Konfiguration för Shibboleth Identity Provider 3

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

Att lägga in release av statiska värden kräver att ni gör tre saker:

  • Konfigurerar en statisk datakälla
  • Konfigurerar attributrelease för attributen
  • Konfigurerar attributfilter för SWAMID

Lägg till följande i avsnittet Data Connectors i attribute-resolver.xml:

När du in lägger nedanstående definition byt ut ORGANIZATION_NAME mot namnet på ert lärosäte, ORGANIZATION_ACRONYM mot vedertagen förkortning för lärosätet och SCHAC_HOME_ORG_DOMAIN_NAME mot lärosätets toppdomännamn. För Uppsala universitet blir det Uppsala universitet, UU och uu.se. Tänk på att det inte är möjligt att skicka med ett svenskt namn och ett engelskt namn utan välj det som är mest gångbart även utomlands. Om ni inte är ett lärosäte måste ni även byta ut schacHomeOrganizationType mot lämpligt värde. I Example of a standard attribute resolver for Shibboleth IdP v4 and above finns detta redan inlagt men ni måste uppdatera värdena på de statiska attributen.

    <!-- Static data connector for organization -->
<!--
    Update the following attributes to the correct values for your organization
-->
    <resolver:DataConnector id="staticAttributes" xsi:type="dc:Static" xmlns="urn:mace:shibboleth:2.0:resolver:dc">
        <Attribute id="o">
            <Value>ORGANIZATION_NAME</Value>
        </Attribute>
        <Attribute id="norEduOrgAcronym">
            <Value>ORGANIZATION_ACRONYM</Value>
        </Attribute>
        <Attribute id="c">
            <Value>SE</Value>
        </Attribute>
        <Attribute id="co">
            <Value>Sweden</Value>
        </Attribute>
        <Attribute id="schacHomeOrganization">
            <Value>SCHAC_HOME_ORG_DOMAIN_NAME</Value>
        </Attribute>
        <Attribute id="schacHomeOrganizationType">
            <Value>urn:schac:homeOrganizationType:eu:higherEducationInstitution</Value>
<!-- This value is for EU higher education institution, other allowed values are:
            - urn:schac:homeOrganizationType:eu:educationInstitution
            - urn:schac:homeOrganizationType:int:NREN
            - urn:schac:homeOrganizationType:int:universityHospital
            - urn:schac:homeOrganizationType:int:NRENAffiliate
            - urn:schac:homeOrganizationType:int:other
-->
        </Attribute>
    </resolver:DataConnector>

Lägg till eller ändra följande i avsnittet Attribute definitions i attribute-resolver.xml:

Du kan redan ha definierat en eller flera av nedanstående attributdefinitioner i attribute-resolver.xml, om så är fallet behöver du byta ut dem mot nedanstående. Om du inte har definierat dem är det bara att lägga till.

<!-- Organizational name -->
    <resolver:AttributeDefinition xsi:type="ad:Simple" id="organizationName" sourceAttributeID="o">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:o" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.10" friendlyName="o" />
    </resolver:AttributeDefinition>

<!-- Organizational acronym -->
    <resolver:AttributeDefinition id="norEduOrgAcronym" xsi:type="ad:Simple" sourceAttributeID="norEduOrgAcronym">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:norEduOrgAcronym" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:1.3.6.1.4.1.2428.90.1.6" friendlyName="norEduOrgAcronym" />
    </resolver:AttributeDefinition>

<!-- Country name -->
    <resolver:AttributeDefinition id="friendlyCountryName" xsi:type="Simple" sourceAttributeID="co">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:co" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.43" friendlyName="co" />
    </resolver:AttributeDefinition>

<!-- Country ISO-3166 code -->
    <resolver:AttributeDefinition id="countryName" xsi:type="Simple" sourceAttributeID="c">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:c" />
        <resolver:AttributeEncoder xsi:type="SAML2String" name="urn:oid:2.5.4.6" friendlyName="c" />
    </resolver:AttributeDefinition>

<!-- schacHomeOrganization main domain -->
    <resolver:AttributeDefinition id="schacHomeOrganization" xsi:type="Simple" sourceAttributeID="schacHomeOrganization">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:schacHomeOrganization" />
        <resolver:AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.9" friendlyName="schacHomeOrganization" />
    </resolver:AttributeDefinition>

<!-- schacHomeOrganization type -->
    <resolver:AttributeDefinition id="schacHomeOrganizationType" xsi:type="Simple" sourceAttributeID="schacHomeOrganizationType">
        <resolver:Dependency ref="staticAttributes" />
        <resolver:AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:schacHomeOrganizationType" />
        <resolver:AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.25178.1.2.10" friendlyName="schacHomeOrganizationType" />
    </resolver:AttributeDefinition>

Lägg till följande i attributrelase för SWAMID i attribute-filter.xml:

I Example of a standard attribute filter for Shibboleth IdP v4 and above finns användningen av de statiska organisationsfiltren definierad.