Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Obojstranná predošlá revízia Predchádzajúca revízia
Nasledujúca revízia
Predchádzajúca revízia
install-sp-shibboleth [24. 07. 2019 22:23]
jsilaci@umb.sk
— (aktuálne)
Riadok 1: Riadok 1:
-====== 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/ 
- 
-<code> 
-vim /etc/yum.repos.d/shibboleth.repo 
-</code> 
- 
-<code> 
-[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 
-</code> 
- 
-<code> 
-yum install shibboleth.x86_64 
-</code> 
- 
-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: 
- 
-<code> 
-cd /etc/yum.repos.d/ 
-wget https://download.opensuse.org/repositories/security:shibboleth/CentOS_7/security:shibboleth.repo 
-yum install curl-openssl 
-</code> 
- 
-<code> 
-export LD_LIBRARY_PATH=/opt/shibboleth/lib64 
-</code> 
- 
-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: 
- 
-<code> 
-/etc/shibboleth/keygen.sh -h MOJA_DOMENA -e https://MOJA_DOMENA/shibboleth -f -y 10 
-</code> 
- 
-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: 
- 
-<code> 
-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 
-</code> 
- 
-Do adresára s certifikátmi stiahneme aj certifikát, ktorý používa federácia: 
- 
-<code> 
-wget https://www.safeid.sk/metadata/cert/SAFEID_metadata_signer.pem 
-</code> 
- 
-Podľa potreby upravíme metadata uložené v súbore ''/etc/shibboleth/metadata-template.xml'': 
- 
-<code xml> 
-<?xml version="1.0" encoding="utf-8" ?> 
-<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> 
-  <md:SPSSODescriptor> 
-    <md:Extensions> 
-      <mdui:UIInfo xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"> 
-        <mdui:DisplayName xml:lang="en">Nazov mojej sluzby</mdui:DisplayName> 
-        <mdui:DisplayName xml:lang="sk">My service name</mdui:DisplayName> 
-        <mdui:Description xml:lang="en">Opis mojej sluzby.</mdui:Description> 
-        <mdui:Description xml:lang="sk">My service description.</mdui:Description> 
-        <mdui:InformationURL xml:lang="en">https://MOJA_DOMENA/</mdui:InformationURL> 
-        <mdui:InformationURL xml:lang="sk">https://MOJA_DOMENA/</mdui:InformationURL> 
-        <mdui:Logo height="81" width="99">https://MOJA_DOMENA/images/mojelogo.gif</mdui:Logo> 
-      </mdui:UIInfo> 
-    </md:Extensions> 
-    <!-- V prípade, že požadujete od IdP ďalšie atribúty používateľa, špecifikujete ich v tejto sekcii (nepovinné) --> 
-    <md:AttributeConsumingService index="0"> 
-      <md:ServiceName xml:lang="en">Nazov mojej sluzby</md:ServiceName> 
-      <md:ServiceName xml:lang="sk">My service name</md:ServiceName> 
-      <md:ServiceDescription xml:lang="en">Opis mojej sluzby.</md:ServiceDescription> 
-      <md:ServiceDescription xml:lang="sk">My service description.</md:ServiceDescription> 
-      <md:RequestedAttribute FriendlyName="eppn" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> 
-      <md:RequestedAttribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> 
-      <md:RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> 
-      <md:RequestedAttribute FriendlyName="sn" Name="urn:oid:2.5.4.4" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"/> 
-    </md:AttributeConsumingService> 
- 
-     
-  </md:SPSSODescriptor> 
-  <md:Organization> 
-    <md:OrganizationName xml:lang="en">My organisation name</md:OrganizationName> 
-    <md:OrganizationName xml:lang="sk">Nazov mojej organizacie</md:OrganizationName> 
-    <md:OrganizationDisplayName xml:lang="en">MOJAORG</md:OrganizationDisplayName> 
-    <md:OrganizationDisplayName xml:lang="sk">MOJAORG</md:OrganizationDisplayName> 
-    <md:OrganizationURL xml:lang="en">http://WEB_MOJEJ_ORG/en</md:OrganizationURL> 
-    <md:OrganizationURL xml:lang="sk">http://WEB_MOJEJ_ORG/</md:OrganizationURL> 
-  </md:Organization> 
-  <md:ContactPerson contactType="technical"> 
-    <md:GivenName>Meno kontaktu</md:GivenName> 
-    <md:SurName>Priezvisko kontaktu</md:SurName> 
-    <md:EmailAddress>mailto:mailova_adresa_kontaktu</md:EmailAddress> 
-  </md:ContactPerson> 
-</md:EntityDescriptor> 
-</code> 
- 
-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: 
- 
-<code xml> 
-    ... 
-    <Attribute name="urn:oid:0.9.2342.19200300.100.1.3" id="mail"/> 
-    <Attribute name="urn:oid:2.5.4.42" id="givenName"/> 
-    <Attribute name="urn:oid:2.5.4.4" id="sn"/> 
-    <Attribute name="urn:oid:2.5.4.3" id="cn"/> 
-    <Attribute name="urn:oid:1.3.6.1.4.1.25178.1.2.9" id="schacHomeOrganization"> 
-    ... 
-</code>  
- 
-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'': 
- 
-<code xml> 
- <SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config" 
-    xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config" 
-    clockSkew="180"> 
-    <OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a" />    
-    <!-- Doplníme ID služby --> 
-    <ApplicationDefaults entityID="https://MOJA_DOMENA/shibboleth" 
-        REMOTE_USER="eppn subject-id pairwise-id persistent-id" 
-        cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1"> 
-        <!-- Upravíme vlastnosti session --> 
-        <Sessions lifetime="28800" timeout="3600" relayState="ss:mem" 
-                  checkAddress="false" handlerSSL="true" cookieProps="https"> 
-        <!-- Zadáme URL discovery servisu -->  
-            <SSO discoveryProtocol="SAMLDS" discoveryURL="https://wayf.safeid.sk/"> 
-              SAML2 
-            </SSO> 
-            <Logout>SAML2 Local</Logout>      
-            <LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 194.160.39.60 194.160.44.13" />           
-            <!-- "Približné" metadata bude vytvárať MetadataGenerator na základe súboru metadata-template.xml --> 
-            <Handler type="MetadataGenerator" Location="/Metadata" signing="false" template="metadata-template.xml"/> 
-     <!-- URL pre zobrazeni stavu klienta vratane ACL -->  
-            <Handler type="Status" Location="/Status" acl="127.0.0.1 194.160.39.60 194.160.44.13"/> 
-     <!-- URL pre zobraznie info o session (volitelne je mozne zobrazovat aj hodnoty atributov) -->  
-            <Handler type="Session" Location="/Session" showAttributeValues="false"/>           
-            <Handler type="DiscoveryFeed" Location="/DiscoFeed"/> 
-        </Sessions> 
-        <!-- Kontaktne informacie --> 
-        <Errors supportContact="mailova_adresa_kontaktu" 
-            helpLocation="/about.html" 
-            styleSheet="/shibboleth-sp/main.css"/> 
-        <!-- Informácia o umiestnení metadát federácie a jej podpisového certifikátu (súbor, ktorý sme stiahli) --> 
-        <MetadataProvider type="XML" validate="true" 
-              url="https://www.safeid.sk/metadata/metadata.safeid.sk.idp.xml" 
-              backingFilePath="safeid-idp.xml" maxRefreshDelay="600"> 
-            <MetadataFilter type="Signature" certificate="SAFEID_metadata_signer.pem" verifyBackup="false"/> 
-        </MetadataProvider> 
-        <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/> 
-        <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>  
-      <!-- Názvy súborov s vygenenerovanými certifikátmi --> 
-        <CredentialResolver type="File" use="signing" key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/> 
-        <CredentialResolver type="File" use="encryption" key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/> 
-    </ApplicationDefaults> 
-    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/> 
-    <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/> 
-</SPConfig> 
-</code> 
- 
-Konfiguráciu je možné skontrolovať nasledujúcim príkazom (pozor na nastavenie curl pre CLI): 
- 
-<code> 
-shibd -tc /etc/shibboleth/shibboleth2.xml 
-</code> 
- 
-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): 
- 
-<code xml> 
-<Directory "/var/www/html/"> 
-  .... 
-  AuthType shibboleth 
-  require shibboleth 
-</Directory> 
-</code> 
- 
-Ak je všetko v poriadku spustíme službu shibd a reštartujeme apache: 
- 
-<code> 
-systemctl enable shibd 
-systemctl start shibd 
-apachectl graceful 
-</code> 
- 
-Pokiaľ všetko prebehlo správne na adrese https://www.safeid.sk/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). 
  • install-sp-shibboleth.1563999811
  • Posledná úprava: 12. 10. 2020 15:24