cs:tech:sp:shibboleth3:advanced

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze Obě strany příští revize
cs:tech:sp:shibboleth3:advanced [2019/07/09 18:57]
jop@cesnet.cz [Více služeb pod jedním Shibboleth démonem (jedno entityID)]
cs:tech:sp:shibboleth3:advanced [2019/07/09 19:03]
jop@cesnet.cz [Více služeb pod jedním Shibboleth démonem (jedno entityID)]
Řádek 114: Řádek 114:
  
 Na všech doménách pak bude k dispozici samostatné přihlašování pomocí Shibbolethu. Služby budou v rámci federace vystupovat pod jedním entityID, avšak všechny služby budou mít samostatné přihlášení (''/​Shibboleth.sso/​Login''​),​ sezení (''/​Shibboleth.sso/​Session''​) atd. Na všech doménách pak bude k dispozici samostatné přihlašování pomocí Shibbolethu. Služby budou v rámci federace vystupovat pod jedním entityID, avšak všechny služby budou mít samostatné přihlášení (''/​Shibboleth.sso/​Login''​),​ sezení (''/​Shibboleth.sso/​Session''​) atd.
 +
 +===== Více služeb pod jedním Shibboleth démonem (více entityID) =====
 +
 +Chceme-li provozovat pod jedním Shibboleth démonem (proces/​služba ''​shibd''​) více služeb na stejné doméně v rámci federace, avšak s rozlišnými entityID, je to možné. Hodí se to např. pro situace, kdy chceme hostovat více instancí nějaké služby na jednom (fyzickém nebo virtuálním) serveru. Typickou záležitostí je jedna služba pro produkční federaci [[:​cs:​tech:​summary|eduID.cz]] a testovací federaci [[:​cs:​cztestfed:​index|czTestFed]] s různými metadaty a entityID.
 +
 +Konfiguraci vysvětlím na následujícím příkladu: Máme virtuální server ''​blackhole.example.org''​ a pro produkční federaci má služba entityID ''<​nowiki>​https://​blackhole.example.org/​shibboleth</​nowiki>'',​ zatímco pro testovací je to ''<​nowiki>​https://​blackhole.example.org/​shibboleth/​cztestfed</​nowiki>''​.
 +
 +V konfiguračním souboru ''/​etc/​shibboleth/​shibboleth2.xml''​ nakonfigurujeme vše pro federaci //​eduID.cz//​ podle [[:​cs:​tech:​sp:​shibboleth3|návodu]] a následně provedeme tyto úpravy:
 +
 +<code xml>
 +<​SPConfig ...>
 +
 +  <​ApplicationDefaults ...>
 +  ​
 +    <!-- czTestFed -->
 +    <​ApplicationOverride id="​cztestfed"​ entityID="​https://​blackhole.example.org/​shibboleth/​cztestfed">​
 +    ​
 +      <​Sessions lifetime="​28800"​ timeout="​3600"​ relayState="​ss:​mem"​
 +        checkAddress="​false"​ handlerSSL="​true"​ cookieProps="​https"​
 +        handlerURL="/​cztestfed/​Shibboleth.sso">​
 +        ​
 +        <SSO discoveryProtocol="​SAMLDS"​ discovery="​https://​ds.eduid.cz/​wayf-cztestfed/">​
 +          SAML2
 +        </​SSO>​
 +        ​
 +      </​Sessions>​
 +
 +      <​MetadataProvider type="​XML"​ validate="​true"​
 +        url="​https://​metadata.eduid.cz/​entities/​cztestfed"​
 +        backingFilePath="​cztestfed.xml"​ maxRefreshDelay="​900">​
 + 
 +        <​MetadataFilter type="​RequireValidUntil"​ maxValidityInterval="​2419200"/>​
 +        <​MetadataFilter type="​Signature"​ certificate="​metadata.eduid.cz.crt.pem"​ verifyBackup="​false"/>​
 + 
 +        <​DiscoveryFilter type="​Blacklist"​ matcher="​EntityAttributes"​ trimTags="​true" ​
 +            attributeName="​http://​macedir.org/​entity-category"​
 +            attributeNameFormat="​urn:​oasis:​names:​tc:​SAML:​2.0:​attrname-format:​uri"​
 +            attributeValue="​http://​refeds.org/​category/​hide-from-discovery"​ />
 +      </​MetadataProvider>​
 +      ​
 +    </​ApplicationOverride>​
 +  ​
 +  </​ApplicationDefaults>​
 +
 +</​SPConfig>​
 +</​code>​
 +
 +V konfiguraci Apache pak přidáme novou lokaci:
 +
 +<code apache>
 +<​VirtualHost *:443>
 +  ServerName ​       blackhole.example.org
 +  # ...
 +  ​
 +  <​Location /​cztestfed/>​
 +    AuthType ​          ​shibboleth
 +    Require ​           shibboleth
 +    ShibRequestSetting applicationId cztestfed
 +  </​Location>​
 +</​VirtualHost>​
 +</​code>​
 +
 +Nyní restartujeme Shibboleth a Apache:
 +
 +<code bash>
 +systemctl restart shibd
 +systemctl restart apache2
 +</​code>​
 +
 +Na adrese ''<​nowiki>​https://​blackhole.example.org/​Shibboleth.sso/​Metadata</​nowiki>''​ nalezneme metadata pro produkční federaci a na adrese ''<​nowiki>​https://​blackhole.example.org/​cztestfed/​Shibboleth.sso/​Metadata</​nowiki>''​ nalezneme metadata pro testovací federaci czTestFed. Stačí tedy metadata zaregistrovat do odpovídajících federací a vše je hotovo.
 +
 +Služba běžící v našem případě výše s jiným entityID nemusí být součástí jiné federace. V případě, že byste potřebovali v tomto ohledu radu, pište na [[info@eduid.cz]].