Om det inte är möjligt att anpassa applikationen för krav på AL2-inloggning så går det att göra viss konfiguration i 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. Shibboleth konfigureras också för att kräva AL2 för inloggningssidan i applikationen. Felhantering läggs in så att användare kan ges varning innan kravet aktiveras, och fel när kravet finns på plats, med errorURL för att hänvisa obekräftade användare till inloggningstjänstens hjälpsidor för bekräftelse av konto.
Normalt inloggningsflöde
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Modifierat inloggningsflöde
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Konfigurationen består av dessa delar:
- Ett script som agerar mellanlandningssida innan användaren kommer till applikationen
- Stylesheet för scriptet
- Apache HTTPD-konfiguration för att skydda scriptet med Shibboleth-inloggning
- 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
- Shibboleth-konfiguration för att kräva AL2 för applikationen om användaren går förbi scriptet
- 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.
Table of Contents | ||||
---|---|---|---|---|
|
Förkrav
Se 3.3 Configure Shibboleth SP - Check for Identity Assurance or REFEDS SIRTFI för konfigurering så att assurance, 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:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# 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"
... |
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:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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
Require valid-user
</Location> |
Ladda ned require-swamid-al2.conf
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.
Felsida vid felaktig åtkomst till applikationen
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:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<SPConfig...
<RequestMapper type="Native">
<RequestMap>
<Host name="confluence.its.umu.se">
<Path name="confluence">
<AccessControl>
<OR>
<!-- Allow SWAMID AL2 sessions from IdP:ns without SWAMID -->
<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>
<!-- Allow REFEDS RAF medium sessions from IdP:s outside of SWAMID -->
<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
Code Block |
---|
target_url = https://confluence.its.umu.se/confluence |