...
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.
AttributeChecker
AttributeChecker aktiveras i shibboleth.xml. Exempel med krav på attributet norEduPersonNIN:
Code Block | ||||
---|---|---|---|---|
| ||||
<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 | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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 />"; var tsnow = Date.parse(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"/> |
...