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
Předchozí verze
Následující verze Obě strany příští revize
cs:tech:sp:shibboleth3:advanced [2019/07/09 18:51]
jop@cesnet.cz
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)]
Řádek 13: Řádek 13:
 </​code>​ </​code>​
  
-Následující úpravou v souboru ''​metadata-template.xml''​ zajistíme, že služba bude dostupná na doménách www.organizace.cz, www.organizacia.sk, www.organisation.de ​a www.organization.com pouhým doplněním odpovídajících elementů ''<​AssertionConsumerService>'':​+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ů ''<​AssertionConsumerService>'':​
  
 <code xml> <code xml>
Řádek 23: Řádek 23:
         <!-- Další endpointy pro alternativní DNS jména -->         <!-- Další endpointy pro alternativní DNS jména -->
         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​
-            Location="​https://​www.organizace.cz/​Shibboleth.sso/​SAML2/​POST"​ index="​1"/>​+            Location="​https://​www.example.org/​Shibboleth.sso/​SAML2/​POST"​ index="​1"/>​
  
         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​
-            Location="​https://​www.organizacia.sk/​Shibboleth.sso/​SAML2/​POST"​ index="​2"/>​+            Location="​https://​www.example.com/​Shibboleth.sso/​SAML2/​POST"​ index="​2"/>​
  
         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​         <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​
-            Location="​https://​www.organisation.de/​Shibboleth.sso/​SAML2/​POST"​ index="​3"/>​ +            Location="​https://​www.example.net/​Shibboleth.sso/​SAML2/​POST"​ index="​3"/>​ 
-    ​ +        ​
-        ​<​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​ +
-            Location="​https://​www.organization.com/​Shibboleth.sso/​SAML2/​POST"​ index="​4"/>​ +
-    ​+
     </​md:​SPSSODescriptor>​     </​md:​SPSSODescriptor>​
  
Řádek 41: Řádek 38:
 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. 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.
  
 +===== 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"'':​
 +
 +<code xml>
 +<Handler type="​MetadataGenerator"​ Location="/​Metadata"​ signing="​false"​ template="​metadata-template.xml"/>​
 +</​code>​
 +
 +V šabloně ''/​etc/​shibboleth/​metadata-template.xml''​ pak uvedeme následující:​
 +
 +<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>​
 +      <!-- UIInfo -->
 +        <​mdui:​UIInfo xmlns:​mdui="​urn:​oasis:​names:​tc:​SAML:​metadata:​ui">​
 +        <​mdui:​DisplayName xml:​lang="​en">​Black Hole</​mdui:​DisplayName>​
 +        <​mdui:​DisplayName xml:​lang="​cs">​Černá díra</​mdui:​DisplayName>​
 +        <​mdui:​Description xml:​lang="​en">​Black Hole -- testing Shibboleth SP</​mdui:​Description>​
 +        <​mdui:​Description xml:​lang="​cs">​Černá díra -- testovací Shibboleth SP</​mdui:​Description>​
 +        <​mdui:​InformationURL xml:​lang="​en">​https://​blackhole.example.org/​en</​mdui:​InformationURL>​
 +        <​mdui:​InformationURL xml:​lang="​cs">​https://​blackhole.example.org/​cs</​mdui:​InformationURL>​
 +        <​mdui:​Logo height="​128"​ width="​128">​https://​blackhole.example.org/​logo.png</​mdui:​Logo>​
 +      </​mdui:​UIInfo>​
 +    </​md:​Extensions>​
 +
 +    <!-- ------------------------- -->
 +    <!-- alternative DNS hostnames -->
 +    <!-- ------------------------- -->
 +
 +    <!-- blackhole1.example.org -->
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML2/​POST"​ index="​1"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST-SimpleSign"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML2/​POST-SimpleSign"​ index="​2"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-Artifact"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML2/​Artifact"​ index="​3"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​PAOS"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML2/​ECP"​ index="​4"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​profiles:​browser-post"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML/​POST"​ index="​5"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​profiles:​artifact-01"​ Location="​https://​blackhole1.example.org/​Shibboleth.sso/​SAML/​Artifact"​ index="​6"/>​
 +
 +    <!-- blackhole2.example.org -->
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML2/​POST"​ index="​7"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-POST-SimpleSign"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML2/​POST-SimpleSign"​ index="​8"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​HTTP-Artifact"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML2/​Artifact"​ index="​9"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​2.0:​bindings:​PAOS"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML2/​ECP"​ index="​10"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​profiles:​browser-post"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML/​POST"​ index="​11"/>​
 +    <​md:​AssertionConsumerService Binding="​urn:​oasis:​names:​tc:​SAML:​1.0:​profiles:​artifact-01"​ Location="​https://​blackhole2.example.org/​Shibboleth.sso/​SAML/​Artifact"​ index="​12"/>​
 +
 +  </​md:​SPSSODescriptor>​
 + 
 +  <​md:​Organization>​
 +    <​md:​OrganizationName xml:​lang="​en">​EXAMPLE,​ a. l. e.</​md:​OrganizationName>​
 +    <​md:​OrganizationName xml:​lang="​cs">​EXAMPLE,​ z. s. p. o.</​md:​OrganizationName>​
 +    <​md:​OrganizationDisplayName xml:​lang="​en">​EXAMPLE</​md:​OrganizationDisplayName>​
 +    <​md:​OrganizationDisplayName xml:​lang="​cs">​EXAMPLE</​md:​OrganizationDisplayName>​
 +    <​md:​OrganizationURL xml:​lang="​en">​http://​www.example.org/</​md:​OrganizationURL>​
 +    <​md:​OrganizationURL xml:​lang="​cs">​http://​www.example.net/</​md:​OrganizationURL>​
 +  </​md:​Organization>​
 +
 +  <​md:​ContactPerson contactType="​technical">​
 +    <​md:​GivenName>​John</​md:​GivenName>​
 +    <​md:​SurName>​Doe</​md:​SurName>​
 +    <​md:​EmailAddress>​mailto:​john.doe@example.org</​md:​EmailAddress>​
 +  </​md:​ContactPerson>​
 +
 +</​md:​EntityDescriptor>​
 +</​code>​
 +
 +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.