IsPassive
A lap korábbi változatát látod, amilyen Sitya(AT)niif.hu (vitalap | szerkesztései) 2009. február 4., 15:48-kor történt szerkesztése után volt.
Az isPassive SAML2-ben bevezetett lehetőség, mellyel utasíthatjuk az alkalmazást, hogy semmiféle látható felhasználói interakciót ne engedélyezzen az IdP-vel.
Miért jó?
Az isPassive használatával elérhetjük, hogy lazy session-nel védett oldalunkra a felhasználó bejelentkezése automatikusan megtörténjen. Ehhez két feltétel együttes teljesülése szükséges
- a felhasználó már rendelkezik az IdP-je által hitelesített munkamenettel
- a Discovery Service képes a felhasználót hitelesítő IdP-vel háttérben kommunikálni, s a felhasználóról érdeklődni
Amennyiben ezen feltételek közül legalább az egyik nem teljesül, úgy az SP hibát fog dobni. Ezt oly módon kell lekezelnünk, hogy a redirectErrors
attribútum lehetőségét kihasználva megadjuk, hogy Shibboleth hiba esetén melyik oldalra dobjon át minket a rendszer.
Működése a gyakorlatban
<!-- START: isPassive script-->
<script type="text/javascript" language="javascript">
<!--
// Written by Lukas Haemmerle <lukas.haemmerle@switch.ch>, SWITCH
// Check for session cookie that contains the initial location
if(document.cookie && document.cookie.search(/_check_is_passive=/) >= 0){
// If we have the opensaml::FatalProfileException GET arguments
// redirect to initial location because isPassive failed
if (
window.location.search.search(/errorType/) >= 0
&& window.location.search.search(/RelayState/) >= 0
&& window.location.search.search(/requestURL/) >= 0
) {
var startpos = (document.cookie.indexOf('_check_is_passive=')+18);
var endpos = document.cookie.indexOf(';', startpos);
window.location = document.cookie.substring(startpos,endpos);
}
} else {
// Mark browser as being isPassive checked
document.cookie = "_check_is_passive=" + window.location;
// Redirect to Shibboleth handler
window.location = "/Shibboleth.sso/DS?isPassive=true&target=" + encodeURIComponent(window.location);
}
</script>
<!-- END: isPassive script-->