Autentizace přes Kerberos/USERMAP
Autorizace přes kerberos by neměla být jediným ověřovacím mechanismem. Rozhodně musí být zachována možnost lokální autorizace uživatele root.
Aby se uživatel mohl do systému přihlásit, musí existovat jeho účet. Pokud systém nepoužívá při přihlášení pro zjištění identity uživatele LDAP (tj. nemá-li nainstalovaný a nakonfigurovaný balík libpam-ldap), musí mít uživatel vytvořen lokální účet!
Pokud systém uživatele nezná, tak i přes úspěšné ověření nedojde k přihlášení do systému. Ale zároveň se také neobjeví oznámení o tom, že autorizace selhala! |
Instalace libpam-krb5
PAM modul pro autorizaci přes kerberos je u Debianu v instalačním balíčku libpam-krb5. Postinstalační skript se většinou postará také o vygenerování konfiguračního souboru /etc/krb5.conf
. Je ale dobré vědět, že pro síť ČVUT v ní musí existovat následující nastavení:
[libdefaults]
default_realm = CVUT.CZ
Vše zbývající lze ze souboru s klidným srdcem vyhodit.
Kontrola ověření uživatele
Abychom mohli na příkazovém řádku ověřit, zda autorizace skutečně probíhá a je v pořádku, je třeba doinstalovat balíček s utilitami krb5-user. Pro samotný ověřovací proces však není zapotřebí.
Výpis aktuálně vydaných tiketů
Pro výpis aktuálně vydaných tiketů se používá příkaz klist
klist
Ověření uživatele a vydání tiketu
K ověření a vydání tiketu na příkazové řádce se používá utilita kinit
kinit username
Password for usernameX@CVUT.CZ
Zrušení tiketu
Vydané tikety lze rušit příkazem kdestroy buďto všechny najednou (parametr -A), nebo individuálně, tak, že se předá jako hodnota parametru -c cesta k dočasnému souboru, ve kterém je tiket uložen
kdestroy ...
Autentizace proti USERMAP LDAP
<?php
$username = 'lolek';
$password = 'xxx';
$ldapConn = ldap_connect($this->ldapServerUrl, 1636);
if ($ldapConn)
ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
else
echo 'Cannot connect to authentication server.';
$rdnQueryMask = "uid=$username,ou=people,ou=usermap,o=cvut,c=cz";
if (ldap_bind($ldapConn, $rdnQueryMask, $password))
echo 'Su tam :-)';
else
echo 'Zenialni plan selhal... ;~[';
?>