Om det inte är möjligt att anpassa applikationen för krav på AL2-inloggning så går det att konfigurera Shibboleth Service Provider för att kontrollera detta.

Idén är att en mellansida införs i inloggningsflödet som kontrollerar tillitsnivå på användaren innan användaren vidarebefordras till den egentliga applikationen.

Konfigurationen består av dessa delar:

  1. Ett script som agerar mellanlandningssida innan användaren kommer till applikationen
  2. Stylesheet för scriptet
  3. Apache HTTPD-konfiguration för att skydda scriptet med Shibboleth-inloggning
  4. En felsida för användare som hamnar direkt i applikationen istället för scriptet som ger hjälp att hitta till scriptet där mer specifik information kan ges
  5. Shibboleth-konfiguration för att kräva AL2 för applikationen om användaren går förbi scriptet
  6. Länkar som ska användas i stället för befintlig direktlänk in i applikationerna efter Shibboleth-inloggning

På denna sida beskrivs hur Shibboleth Service Provider kan konfigureras att kräva AL2 för en Confluence-installation.

Förkrav

Se 3.3 Configure Shibboleth SP - Check for Identity Assurance or REFEDS SIRTFI för konfigurering av Meta-Assurance-Certification så att Meta-Assurance-Certification, errorURL och registrationAuthority finns tillgängliga.

Script och stylesheet

Scriptet är skrivet i python. De första raderna är konfiguration som behöver anpassas för den specifika tjänsten:

# Warn on AL2 login after this date
warn_date = "2024-12-01"

# Require AL2 login after this date
error_date = "2025-01-01"

# Name of site
site_name_sv = "Confluence"
site_name_en = "Confluence"

# Url of application
target_url = "https://confluence.its.umu.se/confluence/"

# Url to this script
retry_url = "https://confluence.its.umu.se/cgi-bin/login.cgi"

# Entityid of this Service Provider
entityid = "https://confluence.its.umu.se/shibboleth"

# File to log all access to
logfile = "/var/www/cgi-bin/login.log"

Ladda ned login.cgi

Ladda ned login.css

Varningsmeddelande


Felmeddelande


Apache HTTPD-konfiguration

Befintlig HTTPD-konfiguration för applikationen ska bibehållas. För scriptet tillkommer detta, det tvingar Shibboleth-inloggning för att komma åt scriptet och ser till att det kan exekveras:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
  AllowOverride None
  Options None
  Require all granted
</Directory>
<Location /cgi-bin/login.cgi>
  AuthType shibboleth
  ShibRequestSetting requireSession true
  ShibUseHeaders On
  Require valid-user
</Location>

Felsida

Felsida för användare som hamnar direkt i applikationen istället för scriptet som ger hjälp att hitta till scriptet där mer specifik information kan ges. Felsidan pekas ut i Error-konfigurationen i Shibboleth.

Ladda ned accessError.html

Felsidan


Shibboleth-konfiguration

Shibboleth-konfigurationen lägger in krav på AL2 för åtkomst till applikationen. Den ska läggas in efter error_date från scriptet så att det inte går att ta sig in i applikationen utan AL2 genom att ange applikationens URL direkt utan att gå via scriptet. Konfigurationen kontrollerar Assurance-Certification i metadatan för IdP:n och assurance för själva inloggningen för IdP:er som är registrerade i SWAMID, och godkänner även REFEDS RAF-medium för IdP:er som inte är registrerade i SWAMID under förutsättning att de signalerar att de inte återanvänder användarnamn (eduPersonPrincipalName) för andra individer:

<SPConfig...
  <RequestMapper type="Native">
    <RequestMap>
      <Host name="confluence.its.umu.se">
        <Path name="confluence">
          <AccessControl>
            <OR>
              <AND>
                <Rule require="assurance">http://www.swamid.se/policy/assurance/al2</Rule>
                <Rule require="Meta-Assurance-Certification">http://www.swamid.se/policy/assurance/al2</Rule>
                <Rule require="Meta-registrationAuthority">http://www.swamid.se/</Rule>
              </AND>
              <AND>
                <Rule require="assurance">https://refeds.org/assurance/IAP/medium</Rule>
                <Rule require="assurance">https://refeds.org/assurance/ID/eppn-unique-no-reassign</Rule>
                <NOT>
                  <Rule require="Meta-registrationAuthority">http://www.swamid.se/</Rule>
                </NOT>
              </AND>
            </OR>
          </AccessControl>
        </Path>
      </Host>
    </RequestMap>
  </RequestMapper>
  <ApplicationDefaults...
    <Sessions...
    <Errors ...
      access="accessError.html"
    />
  ...
  </ApplicationDefaults
  ...
</SPConfig>

Länk för inloggning

I stället för att skicka användare direkt in i applikationen efter inloggning, ska användare skickas till login.cgi ovan. Länken till applikationen ska konfigureras som target_url i login.cgi.

Om tidigare inloggningslänk var

https://confluence.its.umu.se/Shibboleth.sso/Login?target=/confluence/

blir ny inloggningslänk

https://confluence.its.umu.se/Shibboleth.sso/Login?target=/cgi-bin/login.cgi

och konfiguration av target_url blir

target_url = https://confluence.its.umu.se/confluence/