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
. -
sAMAccountName
nastavte nacas-user
, zpravidla stejná hodnota jako UPN ale bez uvedení domény. Utilitaktpass
spouš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 options
zaš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.keytab
si 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.
|