




Dotyczy wersji 2020.1.3 autor: Mateusz Syrek
Wprowadzenie
Jednym z możliwych do skonfigurowania dostawców autentykacji jest ADFS. Szczegóły rejestracji WEBCON BPS Portal w ADFS zostały opisane w artykule Integracja WEBCON BPS Portal z ADFS. W tym artykule skupimy się na wyglądzie strony logowania. W Windows Server 2019 Microsoft udostępnia domyślnie 2 tematy graficzne strony:
1.
Rysunek 1. Pierwszy motyw graficzny. W starszych wersjach Window Server to jedyny dostępny motyw graficzny.
Rysunek 2. Drugi motyw graficzny. Ten artykuł opisuję tę wersję strony logowania. Wygląda ona jak strona Azure Active Directory.
W starszych wersjach Windows Server Microsoft udostępnia tylko pierwszy temat graficzny.
W artykule zostanie opisany drugi wygląd strony logowania odzwierciedlający stronę Azure Active Directory, a w przypadku braku starszych wersji Windows Server napiszę skąd pobrać ten wygląd i jak go wgrać na serwer.
Konfiguracja w Windows Server 2019
Strona logowania ADFS podzielona jest na sekcje:
Rysunek 3 Sekcje na stronie logowania ADFS.
Każdą z sekcji można edytować za pomocą PowerShell, stylów CSS lub skryptów JavaScript
W pierwszej kolejności dobrze jest zrobić kopię domyślnego tematu graficznego, który będziemy dostosowywać do naszych potrzeb.
W PowerShell za pomocą polecenia:
New-AdfsWebTheme -Name DefaultAdfs2019 -SourceName MyADFSWebTheme
zostanie utworzona kopia tematu graficznego o nazwie MyADFSWebTheme.
Od razu można ją aktywować po to żeby na bieżąco mieć podgląd wprowadzanych zmian:
Set-AdfsWebConfig -ActiveThemeName MyADFSWebTheme
W jaki sposób na bieżąco monitorować wprowadzane zmiany bez aktywacji dostawcy autentykacji w BPS Studio?
Za pomocą polecenia:
Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
włączona zostanie strona IdpInitiatedSignon, która pozwala m.in. na weryfikację instalacji ADFS.
Po włączeniu i wejściu na stronę https://<ADFS name>.<domain>/adfs/ls/idpinitiatedsignon.htm zostanie otwarta testowa strona logowania.
Można przystąpić do wprowadzania zmian. Żeby nie tworzyć od zera styli CSS i skryptów dobrze jest wyeksportować nasz temat graficzny.
W tym celu należy utworzyć na dysku pusty katalog np.: z taką samą nazwą oraz za pomocą polecenia:
Export-AdfsWebTheme -Name MyADFSWebTheme -DirectoryPath "C:\MyADFSWebTheme"
wyeksportowane zostaną wszystkie grafiki, style, skrypty naszego tematu graficznego
Rysunek 4. Motyw graficzny pobrany na dysk twardy.
Można w tym miejscu podmienić pliki graficzne na własne.
Do podmiany grafiki, styli i skryptów w naszym temacie graficznym należy użyć PowerShell’a uruchomionego z uprawnieniami administratora i polecenia Set-AdfsWebTheme
Składnia polecenia jest taka, że w pierwszej kolejności należy wskazać nazwę tematu graficznego, następnie ścieżkę do podmienianego pliku.
Poniżej przykłady poleceń do podmiany podstawowych plików:
- Illustration
Set-AdfsWebTheme -TargetName MyADFSWebTheme -Illustration @{path="C:\ADFS_WebTheme\illustration\illustration.jpg"}
- Logo
Set-AdfsWebTheme -TargetName MyADFSWebTheme -Logo @{path="C:\ADFS_WebTheme\logo\logo.png"}
- Style CSS
Set-AdfsWebTheme -TargetName MyADFSWebTheme -StyleSheet @{path="C:\ADFS_WebTheme\css\style.css"}
- JavaScript (uruchamiany podczas ładowania strony)
Set-AdfsWebTheme -TargetName MyADFSWebTheme -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="C:\ADFS_WebTheme\script\onload.js"}
Po wgraniu przygotowanych grafik, stylu CSS i skryptów, strona logowania ADFS jest odwzorowaniem strony logowania BPS Portal.
Rysunek 5. Twoja strona logowania ADFS będzie tak wyglądać jeśli użyjesz pobranego motywu graficznego bez żadnych zmian.
Zmiana hasła w ADFS
ADFS udostępnia również witrynę za pomocą której użytkownik może zmienić hasło. Domyślnie jest wyłączona. Należy ją aktywować w konsoli zarządzania ADFS.
Witryna jest pod adresem https://<ADFS name>.<domain>/adfs/portal/updatepassword/
Rysunek 6. Włączanie strony zmiany hasła (ADFS)
Po włączeniu witryny do zmiany hasła, domyślnie nie pojawi się adres kierujący do niej. Należy go skonfigurować.
W tym celu należy dodać do witryny logowania opis, który pojawi się pod przyciskiem Zaloguj. Można to zrobić za pomocą PowerShell’a uruchomionego z uprawnieniami administratora i polecenia
Set-AdfsGlobalWebContent
Na potrzeby artykułu dodam tylko opis strony logowania i opis strony do zmiany hasła:
- Opis strony logowania
Set-AdfsGlobalWebContent -SignInPageDescriptionText "<p>Click <A href='/adfs/portal/updatepassword/'>here</A> to change your password.</p>"
- Opis strony zmiany hasła
Set-AdfsGlobalWebContent -UpdatePasswordPageDescriptionText "Password must be at least 7 characters long.<br>The password must contain one character from at least three categories: lowercase letter, number, special character."
Po tych operacjach globalnie w całym kontencie ADFS zostanie ustawiony opis kierujący ze strony logowania na stronę zmiany i hasła oraz na stronie zmiany hasła zostanie ustawiony opis z wymaganiami.
Rysunek 7. Strona logowania ADFS, która odzwierciedla stronę logowania portalu WEBCON.
Strona logowania ADFS jest wielojęzyczna i rozszerzając polecenie Set-AdfsGlobalWebContent o lokalizacje PL, to użytkownikowi z polskim językiem przeglądarki zostanie wyświetlony inny opis (analogicznie dla innych języków), np.:
Set-AdfsGlobalWebContent -Locale "pl" -UpdatePasswordPageDescriptionText "Hasło musi zawierać co najmniej 7 znaków.<br>W haśle musi się znaleźć po jednym znaku z przynajmniej z trzech kategorii: mała litera, cyfra, znak specjalny."
Rysunek 8. Strona logowania ADFS wyświetla się w języku przeglądarki.
Azure AD UX Web Theme
W przypadku starszych wersji Windows Server i braku defaultowego wyglądu nic straconego. Należy udać się na stronę Microsoft Using an Azure AD UX Web Theme in Active Directory Federation Services i pobrać interesujący nas temat. Znajduje się tam link do repozytorium Github, z którego należy pobrać style CSS i JavaScript. Następnie wgrać pliki na serwer według instrukcji.
Rysunek 9
Dalsza część konfiguracji jest analogiczna jak w powyższym opisie.
Więcej informacji na temat dostosowywania wyglądu strony logowania ADFS można znaleźć m.in. na stronach Microsoftu:
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/ad-fs-user-sign-in-customization
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/ad-fs-paginated-sign-in