====== Inštalácia Shibboleth SP ======
> Návod je písaný tak, že služba(web), ktorá má využívať overovanie cez Shibboleth beží na doméne MOJA_DOMENA. Vy si túto doménu zamente za doménu Vašej služby.
Pridať repoziár Shiboleth. Obsah konfiguráku sa dá vygenerovať na stránke: https://shibboleth.net/downloads/service-provider/RPMS/
vim /etc/yum.repos.d/shibboleth.repo
[shibboleth]
name=Shibboleth (CentOS_7)
# Please report any problems to https://issues.shibboleth.net
type=rpm-md
mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7
gpgcheck=1
gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key
enabled=1
yum install shibboleth.x86_64
Keďže Centos obsahuje Curl skompilované s NSS a nie OpenSSl (viac tu https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxRH6) je nutné pred spustením nasledovného príkazu doinštalovať potrebné knižnice a nastaviť ku nim cestu aby sme mohli používať dodané nástroje z CLI:
cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/security:shibboleth/CentOS_7/security:shibboleth.repo
yum install curl-openssl
export LD_LIBRARY_PATH=/opt/shibboleth/lib64
Po inštalácii sa nachádza konfigurácia v adresári:
''/etc/shibboleth/''
a konfiguracia Apache v subore:
''/etc/httpd/conf.d/shib.conf''
Do adresára ''/usr/sbin'' sa nainštaluje ''shibd'', ktorý je možné manažovať cez systemctl.
Modul ''mod_shib.so'' bude nainštalovaný do ''/usr/lib64/shibboleth''.
Pre službu je potrebné zvoliť jednoznačný identifikátor. Odporúčaný postup je taký, že ak sa služba nachádza napríklad na doméne https://www.mojweb.sk tak identifikátor bude https://www.mojweb.sk/shibboleth. Pre účely tohto návodu sa bude používať názov domény MOJA_DOMENA aby bolo ľahko identifikovateľné, čo treba nahradiť.
> Je možné, že certifikát vygeneroval inšalátor, tak to len skontrolujeme.
Keď máme zvolený identifkátor, vygenerujeme SSL certifikát, ktorý bude využívať Shibboleth pre komunikáciu s IdP. Odporúča sa vytvoriť nový certifikát a nepoužíť SSL certifikát webu pretože ten má krátku dobu platnosti. Nevadí ak bude vytvorený certifikát self signed:
Certifikát vytvoríme pomocou nástroja, ktorý sa nainštaloval spolu so Shibboleth SP:
/etc/shibboleth/keygen.sh -h MOJA_DOMENA -e https://MOJA_DOMENA/shibboleth -f -y 10
Certifikát vygenerovaý týmto príkazom bude mať platnosť 10 rokov.
Vygenerovanné súbory budú uložené v adresári /etc/shibboleth a ich názvy budú ''sp-encrypt-cert.pem'', ''sp-encrypt-key.pem'', ''sp-signing-cert.pem'', ''sp-signing-key.pem''.
Vygenerovaným súborom treba zmeniť vlastníka na používateľa, pod ktorým beží služba shibd:
chown shibd:shibd sp-encrypt-cert.pem
chown shibd:shibd sp-encrypt-key.pem
chown shibd:shibd sp-signing-cert.pem
chown shibd:shibd sp-signing-key.pem
Do adresára s certifikátmi stiahneme aj certifikát, ktorý používa federácia:
wget https://www.safeid.sk/metadata/cert/SAFEID_metadata_signer.pem
Podľa potreby upravíme metadata uložené v súbore ''/etc/shibboleth/metadata-template.xml'':
Nazov mojej sluzby
My service name
Opis mojej sluzby.
My service description.
https://MOJA_DOMENA/
https://MOJA_DOMENA/
https://MOJA_DOMENA/images/mojelogo.gif
Nazov mojej sluzby
My service name
Opis mojej sluzby.
My service description.
My organisation name
Nazov mojej organizacie
MOJAORG
MOJAORG
http://WEB_MOJEJ_ORG/en
http://WEB_MOJEJ_ORG/
Meno kontaktu
Priezvisko kontaktu
mailto:mailova_adresa_kontaktu
Ak sme v metadatach služby definovali aj ďalšie atribúty musíme skontrolovať, či sú uvedené v mapovaní, teda v súbore ''attribute-map.xml''. Pri ich identifikácii sa riadime podľa OID.
Napríklad:
...
...
Atribúty, ktoré IdP poslal službe si bude možné prezrieť na adrese: https://MOJA_DOMENA/Shibboleth.sso/Session
Treba to ale nastaviť v konfigurácii Shibboleth service, ktorá teraz nasleduje.
Konfiguráciu Shibboleth SP service urobíme v súbore ''shibboleth2.xml'':
SAML2
SAML2 Local
Konfiguráciu je možné skontrolovať nasledujúcim príkazom (pozor na nastavenie curl pre CLI):
shibd -tc /etc/shibboleth/shibboleth2.xml
Spustíme Shibboleth service a reštartujeme Apache.
Následne je treba zabezpečiť aby požadovaný web vyžadoval zabezpečenie cez Shibboleth (v konfigurácii Apache):
....
AuthType shibboleth
require shibboleth
Ak je všetko v poriadku spustíme službu shibd a reštartujeme apache:
systemctl enable shibd
systemctl start shibd
apachectl graceful
Pokiaľ všetko prebehlo správne na adrese https://MOJA_DOMENA/Shibboleth.sso/Metadata je možné vidieť vygenrované metadata služby podľa požiadaviek.
Napriek tomu, že sa na začiatku píše, že sa jedná len o "example metadata" je ich po prekontrolovaní prípadne ich doplnení možné použiť pre registráciu služby.
Súbor s metadatami je potrebné elektronicky podpísať a zaslať mailom na adresu safeid-admin@sanet.sk. Podis musí byť overitelný, napríklad od CA DigiCert. Alternatívne je možné podpísať odosielaný mail (potom nie je potrebné podpisovať metadata v prílohe).