Autentizace a autorizace
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
if ($data['response'] != $valid_response)
die('Wrong Credentials!');
// ok, valid username & password
echo 'Your are logged in as: ' . $data['username'];
?>
Digest v PHP
Digest v PH
// function to parse the http auth header
function http_digest_parse($txt)
{
// protect against missing data
$needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
$data = array();
$keys = implode('|', array_keys($needed_parts));
preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);
foreach ($matches as $m) {
$data[$m[1]] = $m[3] ? $m[3] : $m[4];
unset($needed_parts[$m[1]]);
}
return $needed_parts ? false : $data;
}
Autentizace pomocí
Autentizace pomocí cookies
cookie , resp.
, resp. session
sessio
Řešíme to na úrovni PHP skriptu
Řešíme to na úrovni PHP skript
Je nastaveno cookie
php_session_id?
Logovací dialog
Zjisti info o uzivateli ze
session.
Ano
Ne
Vytvoř hash z hesla
a porovnej ho se
Ne
Ne
Je tento uzivatel stále
platný?
Zobraz chráněnou
stránku
Ano
Ano
Ne
a porovnej ho se
záznamem v DB.
Je to platný uživatel?
Ano
Ověření pomocí Kerberos protokolu
Ověření pomocí Kerberos protokol
Protokol umožňující SSO (single sign on)
Protokol umožňující SSO (single sign on
Bezpečný, rychlý
Bezpečný, rychl
Omezená skupina klientů
Omezená skupina klient
Kerberos
Kerberos – jak to funguje
jak to funguj
Klient zadá jméno a heslo
• spočítá hash hesla (secret key)
• odešle žádost KDC (kdo jsem, co
chci)
•neposílá heslo ani secret key
KDC
Autorizační server
Active Directory
AS ověřuje
• get pass z AD
• vypočítá secret key cl.
• vygeneruj session key
• vrací Ticket Granting Ticket
Klient
Počáteční autorizace u serveru
session key je šifrován secret key klienta
TGT šifrován
Klient
• umím rozšifrovat session key?
•pokud ano, jsem ověřen u KDC
• uložím si TGT pro přístup k jiným
službám