Autentizace pomocí SPNEGO
Autentizace pomocí SPNEGO umožňuje uživatelům, kteří jsou přihlášeni do počítače svým doménovým účtem, automatické přihlášení k CASu (a službám, které se přes CAS autentizují). Autentizace je tak delegována na MS AD.
-
Prerekvizity.
-
Nastavení v MS AD a generování keytabu
-
Příprava konfiguračních souborů
-
Konfigurace CASu
-
Nastavení prohlížeče
-
Testování
Prerekvizity
K nastavení autentizace přes SPNEGO pomůže následující přehled pojmů s příklady, k nimž se odkazuje dále.
| Pojem | Význam | Příklad v příručce |
|---|---|---|
1. DC |
Doménový řadič MS AD, resp. jeho hostname |
|
2. APPLIANCE HOSTNAME |
Hostname appliance, kde jsou dostupné služby appliance (např. CzechIdM) (zde používáno bez |
|
3. DOMAIN |
AD doména |
|
4. KDC HOSTNAME |
Hostname KDC (Kerberos Key Distribution Center) |
|
5. USER UPN LOGON |
Název služby v AD. Musí se shodovat s názvem hostname s appliance a doménou |
|
Nastavení v MS AD a generování keytabu
-
Vytvořte v MS AD uživatele pro CAS
-
Přejděte do DC MS AD. V aplikaci Active Directory Administrative Center přejděte do relevantní domény a založte v ní uživatelský účet.
-
Uživateli nastavte User UPN logon na
HTTP/<APPLIANCE HOSTNAME>@<DOMAIN>(v našem případěHTTP/moje-appliance.bcv@DOMAIN.TLD). -
User sAMAccountName logon nastavte na
<DOMAIN>\<APPLIANCE HOSTNAME>(v našem případěDOMAIN\moje-appliance.bcv). -
Křestní jméno a příjmení nastavte libovolně.
-
U účtu zatrhněte:
-
Account expires:
never -
Password never expires(pod Password options, Other password options) -
User cannot change password(pod Password options, Other password options) -
Pod
Encryption optionszaškrtněte:-
Store password using reversible encryption -
This account supports Kerberos AES 128 bit encryption -
This account supports Kerberos AES 256 bit encryption
-
-
-
Účtu nastavte heslo a uložte jej
-
-
Otevřete příkazovou řádku (zadejte
cmdv menu Start) a vygenerujte keytab pro uživatele příkazemktpass -out file.keytab -princ <USER UPN LOGON> -mapUser <APPLIANCE HOSTNAME>@<DOMAIN> -crypto all -pass * -ptype KRB5_NT_PRINCIPAL
V našem případě tedy:
ktpass -out file.keytab -princ HTTP/moje-appliance.bcv@DOMAIN.TLD -mapUser moje-appliance.bcv@DOMAIN.TLD -crypto all -pass * -ptype KRB5_NT_PRINCIPAL
-
Zvolte a zadejte nové heslo. Nemusí být stejné jako pro založeného uživatele.
-
Keytab soubor
file.keytabsi stáhněte, v dalším kroku bude potřeba jej nahrát na disk appliance.
Příprava konfiguračních souborů
Pro SPNEGO autentizaci je v CASu potřeba připravit následující soubory: . file.keytab - ten jsme vygenerovali v předchozím kroku, je třeba jej nahrát na server s appliance . krb5.conf - v appliance je připravená šablona, kterou je nutno modifikovat . login.conf - v appliance je připraven výchozí konfigurační soubor, který zpravidla není nutné nijak editovat
file.keytab
Vygenerovaný soubor file.keytab nahrajte na disk appliance do adresáře /data/volumes/cas/spnego/.
krb5.conf
Soubor obsahuje informace o doménách a odpovídajících KDC.
Šablona souboru je umístěna v /data/volumes/cas/spnego/krb5.conf. V souboru je třeba upravit název domény. Vyskytuje se na několika místech v různých formátech jako EXAMPLE.COM či example.com. Nahraďte všechny tyto výskyty názvem domény, zachovejte přitom existující formát (velikost znaků, tečka na začátku řetězce, apod.).
Dále je třeba doplnit hostname KDC (na řádku kdc = kdc.example.com:88), jako KDC uvedeme doménový řadič.
V našem případě tedy bude výsledný soubor vypadat takto:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24000
default_realm = DOMAIN.TLD
default_keytab_name = /etc/cas/config/file.keytab
dns_lookup_realm = false
dns_lookup_kdc = false
default_tgs_enctypes = rc4-hmac des-cbc-md5 des-cbc-crc aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
default_tkt_enctypes = rc4-hmac des-cbc-md5 des-cbc-crc aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96
[realms]
DOMAIN.TLD = {
kdc = ad.domain.tld:88
}
[domain_realm]
.domain.tld = DOMAIN.TLD
domain.tld = DOMAIN.TLD
Konfigurace CASu
Pomocí nástroje nano či vim upravte konfigurační soubor CASu v umístění /data/registry/node-active-config/docker-compose-cas.yml. Najděte následující klíče, odkomentujte je, a doplňte hodnoty.
- CAS_SPNEGO_ENABLED=true - CAS_KERBEROS_REALM=<DOMAIN> - CAS_KERBEROS_DEBUG=false - CAS_KERBEROS_KDC=<KDC HOSTNAME> - CAS_KERBEROS_SERVICE_PRINCIPAL=<USER UPN LOGON>
V našem případě by výsledná konfigurace vypadala takto:
- CAS_SPNEGO_ENABLED=true - CAS_KERBEROS_REALM=DOMAIN.TLD - CAS_KERBEROS_DEBUG=false - CAS_KERBEROS_KDC=ad.domain.tld - CAS_KERBEROS_SERVICE_PRINCIPAL=HTTP/moje-appliance.bcv@DOMAIN.TLD
Po úpravě konfigurace je třeba CAS restartovat příkazem systemctl restart iam-cas.service.
Do - CAS_KERBEROS_KDC lze uvést více položek, pokud používáte více KDC. Jednotlivé KDC oddělte jednou mezerou.
|
Nastavení prohlížeče
| Pokud používáte Google Chrome či Microsoft Edge, nastavte konfiguraci v dialogu "Možnosti Internetu" v Internet Exploreru. Tyto prohlížeče konfiguraci pro SPNEGO načítají z něj. |
Internet Explorer
Spusťte Internet Explorer a přejděte do Internet Options (pod ozubeným kolečkem) > Security > Trusted Sites. Klikněte na Sites, pod Add this website to the zone zadejte https:<HOSTNAME> (hostname appliance).
Následně přejděte do Internet Options > Security > Trusted Sites > Custom level a pod User Authentication > Logon a zatrhněte možnost Automatic logon with current user name and password.
Testování
Přihlaste se do Windows svým doménovým účtem. V nakonfigurovaném prohlížeči přejděte na adresu https://APPLIANCEHOSTNAME/cas/login. Pokud se autentizace zdaří, uvidíte v prohlížeči, že jste byli úspěšně přihlášeni. V opačném případě se vám zobrazí přihlašovací dialog CASu. Spojení je potom potřeba odladit, log CASu získáte v appliance zadáním příkazu docker logs cas.
Doporučujeme pro testování a případné ladění přepnout v konfiguračním souboru /data/registry/node-active-config/docker-compose-czechidm.yml hodnotu - CAS_KERBEROS_DEBUG= na true. Po dokončení testování ji však nezapomeňte přepnout zpět na false, jinak dojde k výraznému nárůstu velikosti a znepřehlednění logů CASu.
|