...
Interna felmeddelanden via Shibboleth Service Provider
Shibboleth Service Provider kan hantera vissa hindrande inloggningsrelaterade problem internt. I fallet problem med autentisering/authnContextClass så måste felmeddelandet hanteras inne i Shibboleth. För hantering av saknade attribut är den inbyggda "AttributeChecker Handler" ett alternativ till hantering av detta i tjänsten. Mer information om detta finns på https://wiki.shibboleth.net/confluence/display/SP3/Errors.
Misslyckad autentisering
Vid misslyckad autentisering hos identitetsutfärdaren på grund av exempel felaktigt lösenord så stannar användaren normalt hos identitetsutfärdaren och denne får hantera eventuella felmeddelanden och rekommentationer till användaren. I de fall tjänsten begär en autentisering med en specifik authnContextClass (exempelvis https://refeds.org/profile/mfa) som inte identitetsutfärdaren kan uppfylla så skickas dock normalt användaren tillbaka till tjänsten med ett SAML-fel. Detta hanteras internt i Shibboleth Service Provider som ett sessionsfel men exempelvis ursprunglig authnContextClass finns inte tillgänglig.
AttributeChecker aktiveras i shibboleth.xml. Exempel med krav på attributet norEduPersonNIN:
Code Block |
---|
language | xml |
---|
title | shibboleth2.xml |
---|
|
<Handler type="AttributeChecker" Location="/AttrChecker" template="attrChecker.html"
attributes="norEduPersonNIN" flushSession="true"/> |
Shibboleth tillåter ett par macron i templates. Den är dock ganska begränsad och kan kompletteras med javascript. Exempel med krav på attributet norEduPersonNIN:
Code Block |
---|
language | xml |
---|
title | attrChecker.html |
---|
collapse | true |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="<shibmlp styleSheet/>" />
<title>Din identitetsutfärdare skickade ingen identitet</title>
</head>
<body>
<shibmlpif entityID>
<h1>Din identitetsutfärdare skickade ingen identitet</h1>
Ingen identitet skickades med när du loggade in i Ladok för studenter. Kontakta helpdesk, service desk, IT-support eller motsvarande för er inloggningstjänst för hjälp.
<script>
var missing_attributes = "<shibmlpifnot norEduPersonNIN>norEduPersonNIN </shibmlpifnot>";
</script>
<shibmlpif Meta-errorURL>
<p>
Er inloggningstjänst tillhandahåller en informationssida som ni uppmanas använda för att lösa detta problem:
<script>
var errorurl = "<shibmlp Meta-errorURL />";
var now = "<shibmlp now />";
now = now.replace(/:/g, ":");
var ts = Date.parse(now)/1000;
if (errorurl)
{
errorurl = errorurl.replace(/ERRORURL_CODE/, "IDENTIFICATION_FAILURE");
errorurl = errorurl.replace(/ERRORURL_TS/, ts);
errorurl = errorurl.replace(/ERRORURL_RP/, "<shibmlp target />");
errorurl = errorurl.replace(/ERRORURL_CTX/, missing_attributes + "http://www.geant.net/uri/dataprotection-code-of-conduct/v1");
var errorurl_short = errorurl.replace(/\?.*/, "");
document.write('<a href="' + errorurl + '">' + errorurl_short + '</a>.');
}
</script>
</shibmlpif>
<p>
Teknisk information: <script>document.write(missing_attributes);</script> saknas
</shibmlpif>
<shibmlpifnot entityID>
<h1>Session invalidated</h1>
<p>Your session was already invalidated before your information could
be examined for completeness.</p>
</shibmlpifnot>
</body>
</html>
|
No Format |
---|
<Handler type="AttributeChecker" Location="/AttrChecker" template="attrChecker.html"
attributes="eppn" flushSession="true"/> |
AttributeChecker
AttributeChecker aktiveras i shibboleth.xml. Exempel med krav på attributet norEduPersonNIN:
Code Block |
---|
language | xml |
---|
title | shibboleth2.xml |
---|
|
<Handler type="AttributeChecker" Location="/AttrChecker" template="attrChecker.html"
attributes="norEduPersonNIN" flushSession="true"/> |
Shibboleth tillåter ett par macron i templates. Den är dock ganska begränsad och kan kompletteras med javascript. Exempel med krav på attributet norEduPersonNIN:
Code Block |
---|
language | xml |
---|
title | attrChecker.html |
---|
collapse | true |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="<shibmlp styleSheet/>" />
<title>Din identitetsutfärdare skickade ingen identitet</title>
</head>
<body>
<shibmlpif entityID>
<h1>Din identitetsutfärdare skickade ingen identitet</h1>
Ingen identitet skickades med när du loggade in i Ladok för studenter. Kontakta helpdesk, service desk, IT-support eller motsvarande för er inloggningstjänst för hjälp.
<script>
var missing_attributes = "<shibmlpifnot norEduPersonNIN>norEduPersonNIN </shibmlpifnot>";
</script>
<shibmlpif Meta-errorURL>
<p>
Er inloggningstjänst tillhandahåller en informationssida som ni uppmanas använda för att lösa detta problem:
<script>
var errorurl = "<shibmlp Meta-errorURL />";
var now = "<shibmlp now />";
now = now.replace(/:/g, ":");
var ts = Date.parse(now)/1000;
if (errorurl)
{
errorurl = errorurl.replace(/ERRORURL_CODE/, "IDENTIFICATION_FAILURE");
errorurl = errorurl.replace(/ERRORURL_TS/, ts);
errorurl = errorurl.replace(/ERRORURL_RP/, "<shibmlp target />");
errorurl = errorurl.replace(/ERRORURL_CTX/, missing_attributes + "http://www.geant.net/uri/dataprotection-code-of-conduct/v1");
var errorurl_short = errorurl.replace(/\?.*/, "");
document.write('<a href="' + errorurl + '">' + errorurl_short + '</a>.');
}
</script>
</shibmlpif>
<p>
Teknisk information: <script>document.write(missing_attributes);</script> saknas
</shibmlpif>
<shibmlpifnot entityID>
<h1>Session invalidated</h1>
<p>Your session was already invalidated before your information could
be examined for completeness.</p>
</shibmlpifnot>
</body>
</html>
|
No Format |
---|
<Handler type="AttributeChecker" Location="/AttrChecker" template="attrChecker.html"
attributes="eppn" flushSession="true"/> |
...