LPS:WebAuth/Logout

Z HelpDesk

Logout

Odhlášení od celé infrastruktury WebAuthu je možné pouze vypnutím webového prohlížeče. Pokud ovšem vyžadujeme na aktuální aplikaci provést odhlášení (včetně centrálního odhlášení na WebKDC), je toto možné provést například pomocí následujícího PHP skriptu:

<?
#while (list($key, ) = each ($_COOKIE)) {
#   if (substr($key,0,7) == "webauth") {
#      setcookie("$key", "");
#   }
#}

// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}

function redirect($filename) {
   if (!headers_sent())
       header('Location: '.$filename);
   else {
       echo '<script type="text/javascript">';
       echo 'window.location.href="'.$filename.'";';
       echo '</script>';
       echo '<noscript>';
       echo '<meta http-equiv="refresh" content="0;url='.$filename.'" />';
       echo '</noscript>';
   }
}
redirect('https://webkdc.zcu.cz/logout.fcgi');
?>

Tento skript nejprve nalezne a zruší aplikační cookie ke službě, ke které jsme aktuálně přihlášeni a následně provede redirekci na na skript na WebKDC serveru, kde je zrušena centrální (tj. hlavní) cookie celé infrastruktury. Všechny ostatní aktuálně platné aplikační cookie jiných služeb zůstávají nadále v platnosti! Přístup na aplikaci dosud nenavštívenou vyvolá nový proces ověření uživatele na serveru WebKDC.

Tento skript má smysl umístit například na server webmail.zcu.cz, pokud věříme, že většina přistupivších uživatelů nevyužívá jiné aplikace vyžadující ověření WebAuthem. Pak by se jednalo o odhlášení uživatele v pravém slova smyslu.