Dies ist eine alte Version des Dokuments!


Im Shibboelth-IdP werden diverse Webseiten mitgeliefert die noch im Einzelnen angepasst werden sollten.

laden Sie von https://wiki.shibboleth.net/confluence/display/IDP30/MessagesTranslation#MessagesTranslation-v3.3IdentityProvider3.3 die Datei für die deutsche Übersetzung der IdP-Seiten herunter und legen Sie diese nach

/opt/shibboleth-idp/system/messages/messages_de.properties

Ab jetzt sollten die IdP-Seiten auch auf Deutsch angezeigt werden.

Die einzelnen Meldungen auf den Seiten sollten jetzt noch in Englisch und Deutsch angepasst werden.

Englisch

Laden Sie unsere englische Beispiel-Datei herunter und legen Sie diese nach

/opt/shibboleth-idp/messages/messages.properties

öffnen Sie die Datei in einem Editor und ersetzen Sie den Platzhalter „University XY“ durch den Namen Ihrer Einrichtung.

Deutsch

Laden Sie unsere deutsche Beispiel-Datei herunter und legen Sie diese nach

/opt/shibboleth-idp/messages/messages_de.properties

öffnen Sie die Datei in einem Editor und ersetzen Sie den Platzhalter „Hochschule XY“ durch den Namen Ihrer Einrichtung.

Damit haben Sie die grundsätzlichen Einstellungen für die IdP-Webseiten gemacht. Es bleiben jetzt noch kleinere kosmetische Anpassungen:

Legen Sie das Logo Ihrer Einrichtung nach

./edit-webapp/images/logo.png

Erzeugen Sie das IdP-WAR-File neu (dabei Logdateien mitverfolgen!):

root@idp:/opt/shibboleth-idp# JAVA_HOME=/usr ./bin/build.sh

Kommentieren Sie die Bemerkung der Shibboleth-Entwickler aus welche darauf hinweist dass die Seite angepasst werden sollte:

./views/logout.vm
  <!-- ... -->
  <div class="content">
    <div class="column one">
      <!--
      <p>This page is displayed when a logout operation at the Identity Provider completes. This page is an example
      and should be customized. It is not fully internationalized because the presentation will be a highly localized
      decision, and we don't have a good suggestion for a default.</p>
      <br>
      -->
      #if ( $logoutContext and !$logoutContext.getSessionMap().isEmpty() )
  <!-- ... -->

Erzeugen Sie das IdP-WAR-File neu (dabei Logdateien mitverfolgen!):

root@idp:/opt/shibboleth-idp# JAVA_HOME=/usr ./bin/build.sh

Weiterführende Hinweise:

  • alle IdP-Seiten können über die Templates in ./views/ angepasst
  • Für Fortgeschrittene: Die Kolleg(inn)en von SWITCHaai bieten einige vorgefertigte Templates und Stylesheets an, die sich mit geringem Aufwand den eigenen Bedürfnissen anpassen lassen. Mehr dazu in der Anleitung von SWITCH.

Diese können, sofern relevant (bitte mit den Kollegen von der Rechtsabteilung bzw. Datenschutz klären) in zwei Schritten aktiviert werden:

Erstens modifizieren Sie:

./conf/intercept/consent-intercept-config.xml
 ...
    <!--
    Terms of use is driven by a lookup function returning a key into messages/consent-messages.properties
 
    The default mapping returns the relying party / SP name as the key. The second example below
    demonstrates use of a custom mapping table from the relying party name to the key to use.
    -->
 
    <!-- alias-Block deaktivieren damit das folgende bean aktiv werden kann
    <alias alias="shibboleth.consent.terms-of-use.Key" name="shibboleth.RelyingPartyIdLookup.Simple" /> -->
 
    <!-- bean einfügen welches die die statischen Terms-Of-Use aus consent-messages.properties referenziert -->
    <bean id="shibboleth.consent.terms-of-use.Key" class="com.google.common.base.Functions" factory-method="constant">
        <constructor-arg value="my-terms"/>
    </bean>
 
    <!-- ...

und zweitens modifizieren Sie die beiden SSO-Zeilen in:

./conf/relaying-party.xml
    <!--
    Default configuration, with default settings applied for all profiles, and enables
    the attribute-release consent flow.
    -->
    <bean id="shibboleth.DefaultRelyingParty" parent="RelyingParty">
        <property name="profileConfigurations">
            <list>
                <!-- Shibboleth-SSO default-Zeile deaktivieren 
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" /> -->
                <!-- und ersetzen durch -->
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />
                <ref bean="SAML1.AttributeQuery" />
                <ref bean="SAML1.ArtifactResolution" />
                <!-- SAML2-SSO default-Zeile deaktivieren
                <bean parent="SAML2.SSO" p:postAuthenticationFlows="attribute-release" /> -->
                <!-- und ersetzen durch -->
                <bean parent="SAML2.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />
                <!-- danach alles lassen wie es ist -->
                <ref bean="SAML2.ECP" />
                <ref bean="...

Starten Sie Tomcat neu um die neuen Einstellungen zu aktivieren (dabei Logdateien mitverfolgen!):

root@idp:/opt/shibboleth-idp# service tomcat8 restart

Um die Nutzungsbedingungen auch nach dem ersten Mal noch einsehen zu können gibt es einen Link im Footer der IdP-Seiten. Damit dieser Link funktioniert legen Sie bitte folgende Datei an (im unteren Teil bitte die Jahreszahl und die URL zum Impressum anpassen!):

./edit-webapp/tou,jsp
<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><spring:message code="root.title" text="Shibboleth IdP" /> - <spring:message code="my-tou.title" text="Terms of Use /></title>
    <link rel="stylesheet" type="text/css" href="<%= request.getContextPath()%>/css/consent.css">
  </head>
 
  <body>
    <div class="box">
        <header>
          <a href="<spring:message code="idp.logo.target.url" />" target="_blank"><img src="<%= request.getContextPath() %><spring:message code="idp.logo" />" alt="<spring:message code="idp.logo.alt-text" text="logo" />"></a>
        </header>
 
        <div id="tou-content">
          <spring:message code="my-tou.text" text="Terms of Use" />
        </div>
 
      <footer>
        <div class="container container-footer">
          <p class="footer-text"><strong>&copy; <spring:message code="idp.logo.alt-text" /> 20XX | <a title="Impressum" href="http://www.hochschule-XY.de/impressum/" target="_blank">Impressum</a></strong></p>
        </div>
      </footer>
    </div>
 
  </body>
</html>

und erzeugen danach das IdP-War file neu (dabei Logdateien mitverfolgen!):

root@idp:/opt/shibboleth-idp# JAVA_HOME=/usr ./bin/build.sh

Damit auf der dynamisch generierten Seite, auf der die Informationen zum Attribute Release dargestellt werden, der OrganizationDisplayName des Service Providers angezeigt wird (standardmäßig ist es der OrganizationName, der im Fall der DFN-AAI Metadaten nur ein Kürzel ist), muss in /views/intercept/attribute-release.vm die Definition im oberen Teil der Datei angepasst werden:

/opt/shibboleth-idp/views/intercept/attribute-release.vm
#set ($rpOrganizationName = $rpUIContext.organizationDisplayName)

Standardmässig werden die Entscheidungen der/des Nutzerin/Nutzers clientseitig als Cookies gespeichert, was für den initalen Test-Betrieb ausreichend ist.

Diese Einstellung wird ohne Neustat aktiv.

Referenz zum Shibboleth Wiki.

Testen Sie nochmal einen Login mithilfe der DFN-Test-SP(s) und überzeugen Sie sich dass die Layout-Anpassungen wirksam geworden sind.

Weiter geht es mit der Konfiguration von Server-Side-Storage und persistendId

  • Zuletzt geändert: vor 7 Jahren