Konfiguration för Shibboleth 2.x IdP för Kalmar Unionen. Deltagande i Kalmar Unionen är frivillig för medlemmar i SWAMID. Om du har lagt till Kalmar Unionen till din SP eller IdP måste du informera operations@swamid.se för att din ändring ska vara synlig för de andra federationerna i Norden.

relying-party.xml

Stoppa in följande 2 block XML på relevant plats i relying-party.xml. Spara certifikatet från http://www.kalmar2.org/kalmar2web/metadata_signing_certificate.html i filen /opt/shibboleth-idp/credentials/kalmar-signer.crt.

<security:TrustEngine id="kalmar-metadata-signer" xsi:type="security:StaticExplicitKeySignature">
   <security:Credential id="kalmar-signer-cert" xsi:type="security:X509Filesystem">
      <security:Certificate>/opt/shibboleth-idp/credentials/kalmar-signer.crt</security:Certificate>
   </security:Credential>
</security:TrustEngine>


<MetadataProvider id="kalmar" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata"
                     metadataURL="http://kalmar2.org/simplesaml/module.php/aggregator/?id=kalmarcentral2&amp;set=saml2&amp;exclude=sweden"
                     backingFile="/opt/shibboleth-idp/metadata/kalmar-metadata.xml">
      <MetadataFilter xsi:type="ChainingFilter" xmlns="urn:mace:shibboleth:2.0:metadata">
         <MetadataFilter xsi:type="SignatureValidation" xmlns="urn:mace:shibboleth:2.0:metadata"
                         trustEngineRef="kalmar-metadata-signer"
                         requireSignedMetadata="true" />
         <MetadataFilter xsi:type="EntityRoleWhiteList" xmlns="urn:mace:shibboleth:2.0:metadata">
            <RetainedRole>samlmd:SPSSODescriptor</RetainedRole>
         </MetadataFilter>
      </MetadataFilter>
   </MetadataProvider>

Attributrelease

Flera av de tjänster som använder federationen Kalmar2 använder attribut ur norEdu-familjen och speciellt Foodle använder även organisationsinformation. Om ni inte redan har lagt in Attributdefinitioner norEdu-familjen och Rekommenderad release av statisk organisationsinformation i attribute-release.xml är det lämpligt att göra detta.

Attributpolicy

Kalmar Unionen rekommenderar användning av en sk consent-modul som låter användare fatta beslut om vilka attribut som ska skickas i samband med en authenticering. För Shibboleth finns en plugin från Switch AAI som heter uApprove. Om man inte kan eller vill installera uApprove kan man istället använda följande statiska AttributFilterPolicy som ger tillgång till grundläggande personinformation för alla SPer i de nordiska länderna. Klistra in följande XML på rätt plats i attribute-filter.xml:

<!-- recommended initial attribute filter policy for Kalmar Union -->
    <AttributeFilterPolicy id="kalmar2">
        <PolicyRequirementRule xsi:type="saml:AttributeRequesterInEntityGroup" groupID="kalmarcentral2" />
        <AttributeRule attributeID="givenName">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="surname">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="displayName">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="commonName">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="eduPersonPrincipalName">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="email">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
        <AttributeRule attributeID="eduPersonScopedAffiliation">
            <PermitValueRule xsi:type="basic:OR">
                <basic:Rule xsi:type="basic:AttributeValueString" value="faculty" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="student" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="staff" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="alum" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="member" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="affiliate" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="employee" ignoreCase="true" />
                <basic:Rule xsi:type="basic:AttributeValueString" value="library-walk-in" ignoreCase="true" />
            </PermitValueRule>
        </AttributeRule>
    </AttributeFilterPolicy>