Shibboleth IdP w wersji prekonfigurowanej maszyny wirtualnej

Z PIONIER.Id
Wersja z dnia 14:47, 3 sty 2023 autorstwa Pisarz (dyskusja | edycje) (1 wersja)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania


Wstęp

Maszyna wzorcowa zawierająca serwer IdP skonfigurowany na oprogramowaniu Shibboleth 4.1 została przygotowana dla środowiska VMware.

Instalacja została wykonana w działalności federacji PIONIER.id

Adres do kontaktu: kontakt@aai.pionier.net.pl

Pakiet stworzono przy pomocy otwartego oprogramowania.

Na serwerze utworzony jest użytkownik shibidp z hasłem 1qazxsw2123

Użytkownik shibidp ma uprawnienia do wykonania sudo.

Po probraniu i uruchomieniu maszyny należy wykonać kilka prostych czynności konfiguracyjnych.

Konfiguracja parametrów sieciowych

Rozpocznij od konfiguracji sieci uruchamiając skrypt /root/konfiguruj_siec.py Jeżeli wybierasz opcję konfiguracji adresu przez DHCP, to podawanie adresu DNS jest zbędne - zostanie pobrany z DHCP.

Jeżeli adres jest podawany, jako statyczny, to skrypt zmodyfikuje ustawienia iptables ograniczając dostęp ssh do lokalnej podsieci. W przypadku adresów podanych przez DHCP dostęp po ssh jest nieograniczony. Zmodyfikuj odpowiednio reguły iptables, żeby zapewnić optymalne bezpieczeństwo.

System pozostawia otwarte porty 80 i 443 z nieograniczonym dostępem, poza tym dostęp jest blokowany.

Po zakończeniu instalacji pozwól na restart systemu.

Konfiguracja IdP

Po restarcie uruchom skrypt /root/szykuj_idp.sh, a po jego zakończeniu:

  • zmodyfikuj plik /opt/shibboleth-idp/conf/idp.properties: w wierszu idp.entityID zamień sso.test.pl na nazwę IdP podaną w trakcie instalacji jako SAML EntityID;
  • zmodyfikuj plik /opt/shibboleth-idp/credentials/secrets.properties: odkomentuj wiersz idp.persistentId.salt i ustaw swój specyficzny salt (o długości co najmniej 16 znaków);
  • zrestartuj jetty: systemctl restart jetty;
  • sprawdź poprawność działania otwierając stronę https://adres_twojego_serwera/idp/shibboleth (Uwaga: jetty pracuje z certyfikatem serwerowym typu self-signed, więc przeglądarka prawdopodobnie będzie zgłaszała błąd. zabezpieczeń - do testów sugerujemy użycie Firefoxa).

Instalacja docelowego certyfikatu serwera Jetty

Pliki z kluczem prywatnym, certyfikatem serwera oraz certyfikatami pośrednimi (pozyskane w czasie generowania certyfikatu serwera np. poprzez usługę PIONIER TCS) należy umieścić w magazynie wskazanym w pliku /opt/jetty-apps/start.d/ssl.ini jako jetty.sslContext.keyStorePath oraz jetty.sslContext.trustStorePath. Jeśli np. certyfikat został wystawiony przez usługę TCS i dysponujemy trzema plikami:

  • server.key
  • server.pem
  • chain.pem

wykonujemy:

cat server.pem chain.pem > jetty-chain.pem
openssl pkcs12 -export -inkey server.key -in jetty-chain.pem -out jetty.p12

Plik p12 (lub jks) przegrywamy do katalogu wskazanego w pliku /opt/jetty-apps/start.d/ssl.ini w wierszach jetty.sslContext.keyStorePath oraz jetty.sslContext.trustStorePath (jest to ten sam plik, ponieważ w jednym pliku mamy zarówno certyfikat serwera jak i certyfikaty wystawców).

Baza użytkowników

Jako żródło danych działa lokalna baza LDAP, w niej jest testowy użytkownik o nazwie test1 z hasłem 1qazxsw2. Zawartość bazy LDAP można wyświetlić poleceniem:

ldapsearch -x -b 'dc=test,dc=pl' -D "cn=Manager,dc=test,dc=pl" -W '(objectclass=*)'

hasło: 1qazxsw2

Pobieranie metadanych

Maszyna jest skonfigurowana tak, by automatycznie pobierać metadane wszystkich usług eduGAIN. Pobrany plik metadanych jest weryfikowany przez sprawdzenie podpisu cyfrowego PIONIER.Id. Współpraca z usługami eduGAIN będzie możliwa dopiero po zarejestrowaniu IdP w PIONIER.id.

Dodatkowo do metadanych dodane jest testowe SP, dzięki czemu działanie IdP będzie można przetestować jeszcze przed rejestracją

Testowanie IdP

Po wystartowaniu maszyny w celu przetestowania można skorzystać z testowego SP pod adresem https://aai.pionier.net.pl/test/attributes.php. W tym celu należy przekazać adres metadanych IdP:

https://<adres_twojego_serwera>/idp/shibboleth

na adres: admin@aai.pionier.net.pl

Gdy zostanie potwierdzone, że metadane zostały dodane do testowej aplikacji, należy sprawdzić przebieg logowania:

Udostępnianie atrybutów

Maszyna jest skonfigurowana z zalecanymi politykami udostępniania atrybutów. Administrator serwera IdP musi zdawać sobie sprawę jakie dane są udostępniane, dlatego zalecamy przeanalizowanie konfiguracji zgodnie ze wskazówkami podanymi na https://wiki.aai.pionier.net.pl/index.php/Federacja:ShibbolethIdP4#attribute-filter.xml