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 ve výsledku delegována na Active Directory.
-
Prerekvizity.
-
Nastavení v MS AD a generování keytabu
-
Příprava konfiguračních souborů
-
Konfigurace CASu
-
Nastavení prohlížeče
-
Testování
Prerekvizity
V návodu níže používáme následující hodnoty a příklady. Přizpůsobte je svému prostředí.
| Pojem | Hodnota v příkladech |
|---|---|
Doménový řadič (DC), Microsoft Active Directory (MSAD, AD) |
|
Hostname appliance, na kterém jsou dostupné služby. |
Musí být vždy použit celý hostname. Fragmenty "á la NetBIOS" bez uvedení domény nejsou dovoleny. |
AD doména |
Hodnota musí být vždy uppercase. |
Název služby registrovaný v AD (Service principal name, SPN). |
|
Jméno uživatelského účtu v AD (UPN logon name), na který navážeme registrovanou službu. |
|
Nastavení v MS AD a generování keytabu
-
Vytvořte v MS AD uživatele pro CAS.
-
V aplikaci Active Directory Administrative Center přejděte do relevantní domény a založte v ní uživatelský účet.
-
Uživateli nastavte UPN logon na
cas-user@domain.tld. -
sAMAccountNamenastavte nacas-user, zpravidla stejná hodnota jako UPN ale bez uvedení domény. Utilitaktpassspouštěná v pozdějších krocích uživateli jeho jméno změní na správné. -
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. Heslo je nutné nastavit až po konfiguraci výše zmíněných parametrů, protože jinak se parametry neuplatní.
-
-
Otevřete příkazovou řádku (
cmd) a vygenerujte keytab pro uživatele příkazem:ktpass -out file.keytab -princ HTTP/iam-appliance.tld@DOMAIN.TLD -mapUser cas-user@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.
Pokud při volání nástroje ktpass uděláte chybu, nelze ho jednoduše spustit znovu, protože by na úrovni AD vzniklo více SPN záznamů a integrace by nefungovala. V případě chyby kompletně smažte účet cas-user@domain.tld a vytvořte ho znovu načisto.
|
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řipravena š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 (Key Distribution Center, v případě AD tuto službu poskytuje doménový řadič).
Š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. V našem případě bude výsledek vypadat 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/iam-appliance.tld@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://iam-appliance.tld (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.
Firefox
Do adresního řádku Firefoxu zadejte about:config a potvrďte, že skutečně chcete provést změny. Do vyhledávacího pole zadejte network.negotiate-auth.trusted-uris, možnost rozklikněte a přidejte https://iam-appliance.tld (hostname appliance).
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://iam-appliance.tld/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 je dostupný v souboru /data/logs/cas/cas.log.
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.
|