Autentizace přes Kerberos/USERMAP

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

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.

Upozornění Autorizace přes kerberos vyžaduje funkční internetové připojení k autorizačnímu serveru, a je citlivá na nastavení času! I při relativně malém časovém rozdílu může ověření selhat, proto je důležité, aby se na bezdiskovém klientu hned při startu spouštěl ntp démon, který nastaví správný čas.

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!

Upozornění 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... ;~[';
?>