Přeskočit na hlavní obsah

Nastavení pro SSO

Nastavení Windows Serveru

Ověřování uživatelů probíhá pomocí protokolu Kerberos (SPNEGO/GSSAPI, viz RFC 4559). Před nastavením je nutné vybrat doménové jméno (FQDN) pod kterým budou dostupné webové služby na serveru UCS a servisní uživatelské jméno uživatele, který bude založen v MS AD. Pozor, při změně doménového jména je nutné opakovat proces generování keytab souboru.

  1. V Active Directory založte servisní uživatelský účet, na který bude navázán keytab, pomocí kterého bude UCS ověřovat Kerberos tickety uživatelů přistupující k webovým službám na serveru UCS.

    založení účtu - názvy založení účtu - heslo

    Uživatelské jméno, křestní jméno i příjmení mohou být libovolné. Přihlašovací uživatelské jméno musí být bez mezer.

    Uživatel musí být založen v OU Users, aby bylo možné provést vytvoření souboru keytab. Po vytvoření je možné uživatelský účet převést do jiné OU.

    Zapamatujte si heslo, bude nutné ho zadat v následujícím kroku, při vytváření keytab souboru. Nastavte parametry, aby nebyla vyžadována změna hesla po prvním přihlášení a dále parametr, že heslo je stále platné. Zda uživatel nemůže měnit heslo je volitelné.

  2. Na doménovém řadiči nebo stanici s nainstalovaným RSAT spusťte příkazový řádek a zadejte následující příkaz:

    #!bash ktpass -out ucs.keytab -princ HTTP/ucs.firma.cz@FIRMA.CZ -mapUser firma\ucs -mapOp set -pass heslo -ptype KRB5_NT_PRINCIPAL -crypto All

    Hodnoty, které musíte zadat podle nastavení AD ve vaší organizaci jsou na řádcích 3, 4 a 5.

    Příkaz se zadává na jeden řádek, v tomto dokumentu jsou uvedeny parametry na více řádcích pro přehlednost.

    Název keytab souboru může být libovolný. Po předání na server UCS by měl být soubor z doménového řadiče vymazán.

    Je bezpodmínečně nutné dodržet velikost písmen v parametru princ! HTTP velkými, doménu malými, realm za zavináčem velkými.

    Přestože se na server přistupuje protokolem https, název služby v parametru princ musí být HTTP, nikoliv HTTPS! Za HTTP je jen jedno lomítko, nejedná se o URL.

    Hodnotu ucs.firma.cz nahraďte za adresu, pod kterou budou uživatelé přistupovat webovým prohlížečem k serveru UCS. Pokud provozujete UCS v režimu HA a název serveru je ucs1.firma.cz, resp. ucs2.firma.cz, ale uživatelé přistupují na adresu https://ucs.frima.cz/, použijte ucs.firma.cz.

    Pozor, pokud přidáte parametr -setUpn, nedojde ke změně userPrincipalName a nebude možné využít přístup k údajům uživatele a členství ve skupinách (GSSAPI autentifikovaný přístup k AD pomocí LDAP). Nejedná se o parametr, ale o atribut, který by musel být zadán jako +setUpn.

    Do parametru pass zadejte heslo, které jste nastavili servisnímu uživatelskému účtu.

  3. Nahrajte vygenerovaný soubor ucs.keytab na server UCS.

    Pozor, soubor neposílejte e-mailem nebo jinou nezabezpečenou cestou. Obsahuje privátní přihlašovací klíč na základě kterého je možné se přihlásit k AD s oprávněním servisního uživatelského účtu!

Nastavení firewallu

  • Pro ověřování uživatelských Kerberos ticketů, předávaných prostřednictvím prohlížečů je nutné povolit komunikaci iniciovanou serverem UCS směrem na AD na TCP port 88.

  • Pokud mají být synchronizovány účty z AD (iniciované prvním přihlášením uživatele) nebo ověřováno členství uživatele ve skupině, je dále nutné povolit přístup ke službě LDAP na AD. Komunikace je iniciována ze serveru UCS směrem na AD na TCP port 636, resp. 389, podle toho zda se používá protokol LDAPS nebo LDAP.

  • Pokud nepoužíváte stavový firewall, pak je potřeba zavést pravidla pravidla pro odpovědi z MS AD (zrcadlově otočené IP a porty).

SlužbaZdrojová IPZdrojový portCílová IPCílový port
KerberosUCS1024-65535MS AD88
LDAPUCS1024-65535MS AD389
LDAPSUCS1024-65535MS AD636

Nastavení pracovních stanic

Aby fungovalo přihlášení bez zadání hesla, musí být pracovní stanice i aktuální uživatel přihlášeni do domény Windows. Následně je nutné povolit SSO pro doménové jméno ucs.firma.cz (všechny prohlížeče využívají toto nastavení):

  1. Možnosti internetu
  2. záložka Zabezpečení
  3. ikona Místní intranet
  4. tlačítko Weby otevře další dialog
  5. adresa se přidává ve formátu: http://ucs.firma.cz i https://ucs.firma.cz, případně lze použít http://*.firma.cz a https://*.firma.cz, pokud se využívá více webových služeb pro SSO. Nezapomeňte kliknout na tlačítko Přidat, aby se adresa zařadila mezi povolené Weby.

místní intranet

Nastavení UCS

Nastavení jednotného přihlášení se provádí v administračním rozhraní UCS v System → SSO providers. Níže je uveden příklad nastavení, které odpovídá příkladu ktpass v tomto dokumentu.

nastavení MSAD SSO v UCS

  • Hodnota Realm se zadává velkými písmeny. Musí být zadán realm, nikoliv zkácený název Windows domény.
  • Uživatelé jsou ověřováni v AD v pořadí v jakém jsou zadány hostname kontrolerů. Lze tím docílit dotazování např. méně vytíženého DC. Pokud je první DC nedostupný, pak se pokračuje na druhý atd.
  • Base DN se využívá v LDAP filtrech při ověřování členství uživatelů ve skupinách a v případě, že se využívá AD jako IDP (automatické zakládání uživatelů v UCS při jejich prvním přihlášení).
  • Nastavení Username lookup udává, zda se má uživatel v AD vyhledávat pomocí jeho přihlašovacího jména (Username - např. “pepa”) nebo podle jeho Kerberového principalu (Principal - např. “pepa@FIRMA.CZ”).
  • Nastavení Usernames format udává, v jakém formátu jsou založeni uživatelé v UCS a provádí potřebné mapování. Hodnota Username znamená, že jsou uživatelé v UCS založeni pod uživatelskými jmény - např. “pepa”, hodnota Domain znamená, že jsou uživatelé v UCS založeni vč. domény - např “FIRMA\pepa” a hodnota Principal znamená, že jsou uživatelé v UCS založeni pod svými Kerberos principály - např. “pepa@FIRMA.CZ”.
  • Pokud je zaškrtnuta volba Require group to login, pak UCS před přihlášením ověří, že je uživatel členem alespoň jedné z níže uvedených skupin. V tomto případě platí, že pokud má uživatel platný Kerberos ticket, ale není členem ani jedné z uvedených skupin, pak UCS odmítne jeho přihlášení.
  • Mapování Group DN na Template user slouží k automatickému založení uživatele při jeho prvním přihlášení. Pokud je uživatel členem dané skupiny, pak je založen podle dané uživatelské šablony. Pozor, pokud se skupina uživatele změní, UCS neprovede automatickou změnu nastavení podle nové uživatelské šablony.
  • Mapování Windows domain na Kerberos realm slouží k přeložení doménového jména Windows na Kerberos realm a je využíváno jen v případě, že selže přihlášení pomocí Kerberos ticketu, uživatel se přihlásí pomocí formuláře (jméno a heslo) a zadá své jméno ve formátu “FIRMA\pepa”.

Troubleshooting

Ověření platnosti keytab souboru

Pro formulářové přihlášení musí být možné získat TGT na základě uložených přístupů v ktpass souboru. Získání kerberos lístku se provede v příkazovém řádku následovně (UCS SSO rozhraní provádí obnovu expirovaného lístku automaticky).

#!bash kinit -k HTTP/ucs.firma.cz

klist Valid starting Expires Service principal 10/13/2021 13:26:02 10/13/2021 21:26:02 krbtgt/FIRMA.CZ@FIRMA.CZ

Chyby co nejsou chyby

Některé chybové hlášky mohou vypadat jako chyby, ale ve skutečnosti znamenají pouze zadání špatného hesla nebo neexistujícího uživatelského jména. Jedná se o následující návratové kódy z MSAD:

Major: 458752 No credentials were supplied, or the credentials were unavailable or inaccessible Major: 851968 Unspecified GSS failure

Podle minor čísla chyby je pak možné rozpoznat:

  • Chybné heslo - Minor: 2529638936 Preauthentication failed
  • Nezadané heslo - Minor: 22 Invalid argument
  • Neexistující účet - Minor: 2529638918 Client 'username@realm' not found in Kerberos database