====== Pokročilý návod k Shibboleth SP ====== Tato stránka popisuje pokročilou konfiguraci Shibboleth SP, která je sice pro drtivou většinu služeb zcela zbytečná, ale své uplatnění v ojedinělých případech najde. ===== Více domén pro jednu službu ===== Má-li být služba dostupná pod více doménovými jmény -- **platí i pro adresu s "www" a bez "www" před doménou** -- lze toho docílit pohým přidáním odpovídajících elementů '''' do metadat služby v rámci federace. V základním [[cs:tech:sp:shibboleth|návodu]] je popsána úprava elementu ''[[cs:tech:sp:shibboleth#metadata_sluzby|]]'' týkajícího se metadat: Následující úpravou v souboru ''metadata-template.xml'' zajistíme, že služba bude dostupná na doménách www.example.org, www.example.com a www.example.net pouhým doplněním odpovídajících elementů '''': Samozřejmostí je, že všechny uvedené domény musí být pomocí DNS záznamů směrovány na jeden a ten samý server, kde Shibboleth SP provozujeme. Element ''DiscoveryResponse'' doporučujeme z finálních metadat odebrat. Je to nejjednodušší způsob, jak vyřešit bezpečnostní kontrolu na WAYFu. ===== Více služeb pod jedním Shibboleth démonem (jedno entityID) ===== Chceme-li provozovat pod jedním Shibboleth démonem (proces/služba ''shibd'') více služeb na různých doménách v rámci federace, je to možné. Tato možnost se hodí například 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 tzv. DokuWiki farming, kdy máme jeden operační systém, jednu instalaci DokuWiki, ale několik různých instancí s vlastním vzhledem, stránkami, použitými rozšířeními atd. Konfiguraci vysvětlím na následujícím příkladu: Máme virtuální server na doméně ''blackhole.example.org'' s doménovými aliasy ''blackhole1.example.org'' a ''blackhole2.example.org''. V konfiguračním souboru ''/etc/shibboleth/shibboleth2.xml'' přidáme metadatovou šablonu přidáním ''template="metadata-template.xml"'': V šabloně ''/etc/shibboleth/metadata-template.xml'' pak uvedeme následující: Black Hole Černá díra Black Hole -- testing Shibboleth SP Černá díra -- testovací Shibboleth SP https://blackhole.example.org/en https://blackhole.example.org/cs https://blackhole.example.org/logo.png EXAMPLE, a. l. e. EXAMPLE, z. s. p. o. EXAMPLE EXAMPLE http://www.example.org/ http://www.example.net/ John Doe mailto:john.doe@example.org Stačí pak v Apachi definovat pro zbývající doménová jména (blackhole1.example.org a blackhole2.example.org) konfiguraci, aktivovat ji a restartovat Apache. Je třeba nezapomenout na aktualizaci metadat ve federaci. 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 dvě různé federace 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 ''https://blackhole.example.org/shibboleth'', zatímco pro testovací je to ''https://blackhole.example.org/shibboleth/cztestfed''. V konfiguračním souboru ''/etc/shibboleth/shibboleth2.xml'' nakonfigurujeme vše pro federaci //eduID.cz// podle [[:cs:tech:sp:shibboleth|návodu]] a následně provedeme tyto úpravy: SAML2 V konfiguraci Apache pak přidáme novou lokaci: ServerName blackhole.example.org # ... AuthType shibboleth Require shibboleth ShibRequestSetting applicationId cztestfed Nyní restartujeme Shibboleth a Apache: systemctl restart shibd systemctl restart apache2 Na adrese ''https://blackhole.example.org/Shibboleth.sso/Metadata'' nalezneme metadata pro produkční federaci a na adrese ''https://blackhole.example.org/cztestfed/Shibboleth.sso/Metadata'' 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]]. ===== Vyžadování atributů ===== Pokud máme službu, která vyžaduje určité atributy bez nichž nebude fungovat (v tomto příkladě //uniqueId//, //mail// a //cn//), můžeme jejich vyžadování zanést do konfigurace. Pokud se následně přihlásí uživatel, jehož IdP vyžadované atributy neuvolnilo, můžeme mu zobrazit uživatelsky přívětivou webovou stránku s informacemi, které atributy chybí, a koho případně kontaktovat. Pro '''' je možné použít i jiný zápis, který umožňuje specifičtější pravidla a používání logických //AND// a/nebo //OR//. Bližší informace naleznete v [[https://wiki.shibboleth.net/confluence/display/SP3/Attribute+Checker+Handler|dokumentaci]]. Dále je nutné do souboru ''attrChecker.html'' (na vhodné místo samozřejmě) přidat seznam atributů, které byly vyžadovány, ale služba je od IdP neobdržela -- v tomto případě byly vyžadovány atributy //uniqueId//, //mail// a //cn//. Stránku ''attrChecker.html'' můžete samozřejmě libovolně upravit a to včetně kaskádových stylů, aby vzhled zapadal do vzhledu služby.

Your identity provider () didn't release sufficient user information. These are the missing attributes:

  • uniqueId
  • mail
  • cn
  • givenName
  • sn

You can contact the IdP's administrator at the following email address.