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:idp:instalacia_a_nastavenie_shibboleth_idp [30. 03. 2021 07:54]
jnamesny@umb.sk
install:idp:instalacia_a_nastavenie_shibboleth_idp [28. 12. 2023 20:32] (aktuálne)
mstanislav@umb.sk
Riadok 45: Riadok 45:
  
 1) Backchannel PKCS12 = vygenerované heslo 1 1) Backchannel PKCS12 = vygenerované heslo 1
 +
 2) Cookie Encryption = vygenerované heslo 2 2) Cookie Encryption = vygenerované heslo 2
  
Riadok 55: Riadok 56:
 Proces inštalácie prebieha nasledovne: Proces inštalácie prebieha nasledovne:
  
-<alert type="warning">+<alert type="info" icon="glyphicon glyphicon-info-sign">
 Pre demonštráciu je idp.example.org použitý iba ako príklad. Pre demonštráciu je idp.example.org použitý iba ako príklad.
 </alert> </alert>
Riadok 102: Riadok 103:
 Ďalej vieme rozhodovať či sa majú používať cookies alebo lokálne úložidká HTML. Možeme nastaviť aj predvolený šifrovací algoritmus pre šifrovanie XML. Ďalej vieme rozhodovať či sa majú používať cookies alebo lokálne úložidká HTML. Možeme nastaviť aj predvolený šifrovací algoritmus pre šifrovanie XML.
  
-<alert type="warning">+<alert type="warning" icon="glyphicon glyphicon-alert">
 Od Shibboleth IdP verzie 4.0.0 sa používa novší, bezpečnejší, predvolený šifrovací algoritmus AES-GCM. Od Shibboleth IdP verzie 4.0.0 sa používa novší, bezpečnejší, predvolený šifrovací algoritmus AES-GCM.
 </alert> </alert>
Riadok 132: Riadok 133:
 #idp.consent.StorageService = shibboleth.ClientPersistentStorageService #idp.consent.StorageService = shibboleth.ClientPersistentStorageService
 idp.consent.StorageService = shibboleth.JPAStorageService idp.consent.StorageService = shibboleth.JPAStorageService
-idp.storage.htmlLocalStorage = false+idp.storage.htmlLocalStorage = true
 </code> </code>
  
Riadok 211: Riadok 212:
 # for AD: idp.authn.LDAP.bindDN=adminuser@domain.com # for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
 idp.authn.LDAP.bindDN                           = cn=idp,ou=example,dc=náš,dc=ldap,dc=sk idp.authn.LDAP.bindDN                           = cn=idp,ou=example,dc=náš,dc=ldap,dc=sk
-idp.authn.LDAP.bindDNCredential                 = XxxXXxxxXXxxxxXXXxxxxXxXxXxxxX 
 idp.ldaptive.provider                           = org.ldaptive.provider.unboundid.UnboundIDProvider idp.ldaptive.provider                           = org.ldaptive.provider.unboundid.UnboundIDProvider
  
Riadok 254: Riadok 254:
 openssl rand -base64 36 2>/dev/null openssl rand -base64 36 2>/dev/null
 </code> </code>
 +
  
 Potom môžeme pristúpiť k úprave súboru: Potom môžeme pristúpiť k úprave súboru:
Riadok 265: Riadok 266:
 <code> <code>
 # Default access to LDAP authn and attribute stores. # Default access to LDAP authn and attribute stores.
-idp.authn.LDAP.bindDNCredential              = Tu vložíme heslo, ktoré máme definované pre bind konto v LDAP konfigurácii (idp.authn.LDAP.bindDNCredential) +idp.authn.LDAP.bindDNCredential              = Tu vložíme heslo, ktoré máme definované pre bind konto v LDAP  
-idp.persistentId.salt                        = Tu vložíme vygenerovaný salt pre perzistentný NameID identifikátor+idp.persistentId.salt                        = Tu vložíme vygenerovaný salt
 idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined} idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential:undefined}
 </code> </code>
 +
 +<alert type="danger" icon="glyphicon glyphicon-alert">
 +Vloženú vygenerovanú hodnotu v "idp.persistentId.salt" nikdy nemeníme!</alert>
 +
  
 Obmedzenie prístupu IP adries k stránkam so špecifickou funkcionalitou: Obmedzenie prístupu IP adries k stránkam so špecifickou funkcionalitou:
Riadok 309: Riadok 314:
  
 <code xml> <code xml>
-<!-- safeID -->+ 
 +<!-- safeID test metadata
     <MetadataProvider     <MetadataProvider
-        id="safeid-metadata" +        id="safeid-metadata-test
         xsi:type="FileBackedHTTPMetadataProvider"          xsi:type="FileBackedHTTPMetadataProvider" 
         backingFile="%{idp.home}/metadata/safeid.xml"          backingFile="%{idp.home}/metadata/safeid.xml" 
Riadok 319: Riadok 325:
             certificateFile="%{idp.home}/credentials/SAFEID_metadata_signer.pem" />             certificateFile="%{idp.home}/credentials/SAFEID_metadata_signer.pem" />
     </MetadataProvider>     </MetadataProvider>
 +    -->
 +
 +<!-- safeID interfederation -->
 +    <!-- safeID & eduGAIN -->
 +    <MetadataProvider
 +        id="safeid-interfed"
 +        xsi:type="FileBackedHTTPMetadataProvider"
 +        backingFile="%{idp.home}/metadata/safeid-interfed.xml"
 +        metadataURL="https://metadata.safeid.sk/metadata/safeid-interfed.xml"
 +        maxRefreshDelay="PT30M">
 + 
 +        <MetadataFilter
 +            xsi:type="SignatureValidation"
 +            requireSignedRoot="true"
 +            certificateFile="%{idp.home}/credentials/safeid-metadata-signing.pem" />
 + 
 +        <MetadataFilter
 +            xsi:type="RequiredValidUntil"
 +            maxValidityInterval="P30D" />
 + 
 +        <MetadataFilter
 +            xsi:type="Algorithm">
 + 
 +            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
 +            <ConditionRef>shibboleth.Conditions.TRUE</ConditionRef>
 +        </MetadataFilter>
 +    </MetadataProvider>
 +
 +<!-- safeID metadata -->
 +    <!-- safeID
 +    <MetadataProvider
 +        id="safeid-metadata"
 +        xsi:type="FileBackedHTTPMetadataProvider"
 +        backingFile="%{idp.home}/metadata/metadata.safeid.sk.xml"
 +        metadataURL="https://metadata.safeid.sk/metadata/metadata.safeid.sk.xml"
 +        maxRefreshDelay="PT30M">
 +
 +        <MetadataFilter
 +            xsi:type="SignatureValidation"
 +            requireSignedRoot="true"
 +            certificateFile="%{idp.home}/credentials/safeid-metadata-signing.pem" />
 +
 +        <MetadataFilter
 +            xsi:type="RequiredValidUntil"
 +            maxValidityInterval="P30D" />
 +
 +        <MetadataFilter
 +            xsi:type="Algorithm">
 +
 +            <md:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
 +            <ConditionRef>shibboleth.Conditions.TRUE</ConditionRef>
 +        </MetadataFilter>
 +    </MetadataProvider>
 +    -->
 </code> </code>
  
-<alert type="warning">+<alert type="warning" icon="glyphicon glyphicon-alert">
 Blok kódu musíme vložiť tak, že ho umiestnime do elementu <MetadataProvider> v konfiguračnom súbore metadata-providers.xml.  Blok kódu musíme vložiť tak, že ho umiestnime do elementu <MetadataProvider> v konfiguračnom súbore metadata-providers.xml. 
  
Riadok 327: Riadok 387:
 </alert> </alert>
  
 +<alert type="danger" icon="glyphicon glyphicon-alert">
 +"safeID test metadata" slúžia iba ako príklad!
  
-Ďalej si potrebujeme stiahnuť verejný kľúč pre podpísanie metadát a správne ho umiestniť (v návode pokračujeme s príkladom poskytovateľa safeid.sk):+**Pre Vaše IdP potrebujete nastaviť** [[install:idp:metadata|safeID.sk metadáta]]. 
 + 
 +Na stránke nájdete aj **aktuálny verejný kľúč** pre kontrolu podpisu metadát. 
 +</alert> 
 + 
 +Ďalej si potrebujeme stiahnuť verejný kľúč pre kontrolu podpisu metadát a správne ho umiestniť (v návode pokračujeme s príkladom - safeID test metadata):
  
 <code> <code>
 wget -P /opt/shibboleth-idp/credentials \ wget -P /opt/shibboleth-idp/credentials \
-    https://www.safeid.sk/metadata/cert/SAFEID_metadata_signer.pem+    https://metadata.safeid.sk/keys/safeid-metadata-signing.pem
 </code> </code>
  
 ''attribute-resolver.xml'' ''attribute-resolver.xml''
- 
-Vygenerujeme si ďalší nový "salt": 
- 
-<code> 
-openssl rand -base64 36 2>/dev/null 
-</code> 
  
 Otvoríme konfiguráciu: Otvoríme konfiguráciu:
Riadok 349: Riadok 410:
 </code> </code>
  
-Do konfigurácie doplníme nový atribút a nový konektor, do ktorého doplníme vygenerovaný "salt":+Do konfigurácie doplníme nový atribút a nový konektor, do ktorého doplníme "salt", ktorý už máme vygenerovaný - nevytvárame nový:
  
 <code xml> <code xml>
Riadok 367: Riadok 428:
     xsi:type="StoredId"      xsi:type="StoredId" 
     generatedAttributeID="storedId"      generatedAttributeID="storedId" 
-    salt="Napíšeme salt, ktorý sme si vygenerovali" +    salt="Napíšeme salt, ktorý sme už vygenerovali v predchadzajúcich krokoch
     queryTimeout="0">     queryTimeout="0">
     <InputAttributeDefinition ref="uid"/>     <InputAttributeDefinition ref="uid"/>
Riadok 373: Riadok 434:
 </DataConnector> </DataConnector>
 </code> </code>
 +
 +<alert type="success" icon="glyphicon glyphicon-info-sign">
 +[[install:idp:idp:attribute-reslover|Príklad konfigurácie attribute-resolver.xml]]
 +</alert>
 +
  
 Doplníme atribút aj do konfigurácie filtrov "attribute-filter.xml": Doplníme atribút aj do konfigurácie filtrov "attribute-filter.xml":
Riadok 399: Riadok 465:
     </AttributeFilterPolicy>     </AttributeFilterPolicy>
 </code> </code>
 +
 +<alert type="success" icon="glyphicon glyphicon-info-sign">
 +[[install:idp:idp:attribute-filter|Príklad konfigurácie attribute-filter.xml]]
 +</alert>
  
 ''idp-metadata.xml'' ''idp-metadata.xml''
Riadok 550: Riadok 620:
 systemctl edit jetty9 systemctl edit jetty9
 </code> </code>
 +
 +<alert type="info" icon="glyphicon glyphicon-info-sign">
 +V pípade distribúcie Debian 11 bullseye môžete nastavenia doplniť do konfigurácie služby pomocou:
 +
 +nano /etc/systemd/system/multi-user.target.wants/jetty9.service
 +</alert>
  
 Nastavenie oprávnení pre zápis do adresárov /opt/shibboleth-idp/{logs,metadata}: Nastavenie oprávnení pre zápis do adresárov /opt/shibboleth-idp/{logs,metadata}:
Riadok 625: Riadok 701:
         last update: 2021-01-27T13:30:37.139408Z         last update: 2021-01-27T13:30:37.139408Z
  
-        metadata source: safeid-metadata+        metadata source: safeid-metadata-test
         last refresh attempt: 2021-01-27T13:30:37.139408Z         last refresh attempt: 2021-01-27T13:30:37.139408Z
         last successful refresh: 2021-01-27T13:30:37.139408Z         last successful refresh: 2021-01-27T13:30:37.139408Z
Riadok 652: Riadok 728:
 systemctl restart jetty9 systemctl restart jetty9
 </code> </code>
 +
 +Testovanie funkčnosti môžeme realizovať pomocou:
 +
 +IdP Webová stránka
 +https://idp.example.org/idp
 +
 +IdP Status
 +https://idp.example.org/idp/status
 +
 +IdP Metadáta
 +https://idp.example.org/idp/shibboleth
  • install/idp/instalacia_a_nastavenie_shibboleth_idp.1617083672
  • Posledná úprava: 30. 03. 2021 07:54