Módosítások

Shib2SP

9 874 bájt hozzáadva, 2023. augusztus 15., 16:16
új működő példa config
Az SP-t a '''<code>shibbolethshibboleth2.xml</code>''' állományon keresztül konfigurálhatjuk. Ebben a leírásban feltételezzük, hogy az SP konfigurációja a '''<code>/etc/shibboleth</code>''' könyvtárban van.
= Előkészületek =
* [[Shibboleth2_SP|Telepítsük a shibbolethet]]
* Válasszunk egy egyedi azonosítót, ún. <code>entityID</code>-t az SP számára. Ez az azonosító URL formájú, létező hosztnév, egy - alapértelmezés szerint - /shibboleth path-szal. Pl: <code>https://lipton.aai.niif.hu/shibboleth</code>. Megfelelő konfiguráció után az entityID-t meghívva válaszul az adott entitás metaadatát kapjuk válaszul.
= Működő példa konfiguráció 1 = <source lang="xml"><SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" clockSkew="180">  <!-- By default, in-memory StorageService, ReplayCache, ArtifactMap, and SessionCache are used. See example-shibboleth2.xml for samples of explicitly configuring them. -->  <!-- To customize behavior for specific resources on Apache, and to link vhosts or resources to ApplicationOverride settings below, use web server options/commands. See https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPConfigurationElements for help.  For examples with the RequestMap XML syntax instead, see the example-shibboleth2.xml file, and the https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPRequestMapHowTo topic. -->  <!-- The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined. --> <ApplicationDefaults entityID="https://events.prace-ri.eu/shibboleth" REMOTE_USER="eppn" cipherSuites="ECDHE+AESGCM:ECDHE:!aNULL:!eNULL:!LOW:!EXPORT:!RC4:!SHA:!SSLv2">  <!-- Controls session lifetimes, address checks, cookie handling, and the protocol handlers. You MUST supply an effectively unique handlerURL value for each of your applications. The value defaults to /Shibboleth.sso, and should be a relative path, with the SP computing a relative value based on the virtual host. Using handlerSSL="true", the default, will force the protocol to be https. You should also set cookieProps to "https" for SSL-only sites. Note that while we default checkAddress to "false", this has a negative impact on the security of your site. Stealing sessions via cookie theft is much easier with this disabled. --> <Sessions lifetime="28800" timeout="3600" relayState="ss:mem" checkAddress="false" handlerSSL="false" cookieProps="http">  <!-- Configures SSO for a default IdP. To allow for >1 IdP, remove entityID property and adjust discoveryURL to point to discovery service. (Set discoveryProtocol to "WAYF" for legacy Shibboleth WAYF support.) You can also override entityID on /Login query string, or in RequestMap/htaccess. -->  <SSO discoveryProtocol="SAMLDS" discoveryURL="https://mdx.eduid.hu/role/idp.ds"> SAML2 SAML1 </SSO>   <!-- SAML and local-only logout. --> <Logout>SAML2 Local</Logout>  <!-- Extension service that generates "approximate" metadata based on SP configuration. --> <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>  <!-- Status reporting service. --> <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>  <!-- Session diagnostic service. --> <Handler type="Session" Location="/Session" showAttributeValues="false"/>  <!-- JSON feed of discovery information. --> <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>  </Sessions>  <!-- Allows overriding of error template information/filenames. You can also add attributes with values that can be plugged into the templates. --> <Errors supportContact="prace-indico-admin@niif.hu" helpLocation="/about.html" styleSheet="/shibboleth-sp/main.css"/>  <MetadataProvider type="Dynamic" ignoreTransport="true"> <Subst>https://mdx.eduid.hu/entities/$entityID</Subst> <MetadataFilter type="Signature" certificate="href-metadata-signer-2020.crt"/> </MetadataProvider>  <!-- Example of remotely supplied batch of signed metadata. --> <!-- <MetadataProvider type="XML" validate="true" uri="http://example.org/federation-metadata.xml" backingFilePath="federation-metadata.xml" reloadInterval="7200"> <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/> <MetadataFilter type="Signature" certificate="fedsigner.pem"/> <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> -->  <!-- Example of locally maintained metadata. --> <!-- <MetadataProvider type="XML" validate="true" file="partner-metadata.xml"/> -->  <!-- Map to extract attributes from SAML assertions. --> <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>  <!-- Use a SAML query if no attributes are supplied during SSO. --> <AttributeResolver type="Query" subjectMatch="true"/>  <!-- Default filtering policy for recognized attributes, lets other data pass. --> <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>  <!-- Simple file-based resolver for using a single keypair. --> <CredentialResolver type="File" key="events-shib.key" certificate="events-shib.cert"/>  <!-- The default settings can be overridden by creating ApplicationOverride elements (see the https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApplicationOverride topic). Resource requests are mapped by web server commands, or the RequestMapper, to an applicationId setting.  Example of a second application (for a second vhost) that has a different entityID. Resources on the vhost would map to an applicationId of "admin": --> <!-- <ApplicationOverride id="admin" entityID="https://admin.example.org/shibboleth"/> --> </ApplicationDefaults>  <!-- Policies that determine how to process and authenticate runtime messages. --> <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>  <!-- Low-level configuration about protocols and bindings available for use. --> <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/> </SPConfig> </source> = Működő példa konfiguráció 2 =
<source lang="xml">
<!-- Chains together all your metadata sources. -->
<MetadataProvider type="Chaining">
<MetadataProvider type="XML" uri="https://idpmetadata.niifeduid.hu/current/href-idp-metadata.xml" backingFilePath="href-idp-metadata.xml" reloadInterval="7200"> <SignatureMetadataFilter certificate="href_signerhref-metadata-signer-2010.crt"/> </MetadataProvider> <!-- Just for eduGAIN-ized services --> <MetadataProvider type="XML" uri="https://idpmetadata.niifeduid.hu/href-test-idp-metadatacurrent/niifi.xml" backingFilePath="href-test-idp-metadataniifi.xml" reloadInterval="7200"> <SignatureMetadataFilter certificate="href_signer.crt"/> </MetadataProvider> <MetadataProvider type="XML" uri="https://idp.niif.hu/href-vho-metadata.xml" backingFilePath="href-vhosigner-metadata.xml" reloadInterval="7200"> <SignatureMetadataFilter certificate="href_signer2010.crt"/> </MetadataProvider>
</MetadataProvider>
<!-- Example of a second application (using a second vhost) that has a different entityID. -->
<!-- <ApplicationOverride id="admin" entityID="https://admin.example.org/shibboleth"/> -->
<ApplicationOverride id="wiki.aai" entityID="https://wiki.aai.niif.hu/shibboleth" > <CredentialResolver type="File" key="wiki.aai.niif.hu.key" certificate="wiki.aai.niif.hu.crt"/> </ApplicationOverride> <ApplicationOverride id="www.aai" entityID="https://www.aai.niif.hu/shibboleth" > <CredentialResolver type="File" key="www.aai.niif.hu.key" certificate="www.aai.niif.hu.crt"/> </ApplicationOverride>
</ApplicationDefaults>
Ennél a szekciónál kell beállítani, hogy az SP milyen forrásokból jut hozzá a szükséges [[Metadata|metaadatokhoz]].
'''A források két 3 fő típusa'''
* XML MetadataProvider
SAML2 szabványos XML fájlt tölt be a rendszer. A fájl lehet lokális, vagy távoli, webszerveren keresztül elérhető. Leggyakrabban használt típus. Példa:
<MetadataProvider type="XML" urluri="https://federationmetadata.orgeduid.hu/current/metadatahref.xml" backingFilePath="fedmetadatahref.xml" reloadInterval="7200"> <MetadataFilter type="Signature" SignatureMetadataFilter certificate="fedsignerhref-metadata-signer-2020.pemcrt"/>
</MetadataProvider>
A tanúsítvány innen szerezhető be: https://metadata.eduid.hu/certs/href-metadata-signer-2020.crt
* Chaining MetadataProvider
További <code lang="xml">MetadataProvider</code>-(eke)t tartalmazhat.
 
* dinamikus, MDQ
 
<MetadataProvider type="MDQ" id="href-2020" ignoreTransport="true" baseUrl="https://mdx.eduid.hu/">
<MetadataFilter type="Signature" certificate="href-metadata-signer-2020.crt"/>
<MetadataFilter type="RequireValidUntil" maxValidityInterval="864000"/>
</MetadataProvider>
 
A tanúsítvány innen szerezhető be: https://metadata.eduid.hu/certs/href-metadata-signer-2020.crt
 
===ApplicationOverride===
Amennyiben az SP több alkalmazást kezel, és ezek között az alkalmazások között vannak olyanok, melyeknek valamely tulajdonsága nem egyezik az SP alapértelmezettként megadott tulajdonságaival (jellemzően ilyen lehet pl. az entityID), akkor ezeket ebben a szekcióban felül lehet definiálni.
 
=Kiegészítő beállítások===POST preservation==Ha legalább 2.2-es verziójú Shibboleth SP-t használunk, úgy lehetőségünk van egy olyan funkció beállítására, amely lehetővé teszi, hogy ha egy felhasználó valamilyen formba ír (pl. egy wikibe), akkor a küldés gomb megnyomásakor a shibboleth egy átmeneti helyen eltárolja a beírt adatokat. Ennek jelentősége, hogy ha írás közben lejárt volna a felhasználó sessionje, így alapértelmezés szerint a bejelentkező oldalra dobná a rendszer, ami által elveszne, amit begépelt, úgy bekapcsolt post preservation esetén ezek az adatok megmenekülnek, nem kell őket újra beírni. A funkció bekapcsolásához a <code><Sessions></code> elem attribútumaként kell megadni az alábbi két név-érték párt.* <code>postData="ss:mem"</code> , az érték mondja meg, hogy a form adatait az SP mely, a konfigurációs fájl elején definiált Storage Service-en keresztül tárolja. Alapértelmezés szerint a memóriában, de lehetőség van külső tároló megadására is. [https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPStorageService További információ a Storage Service-kről] * <code lang>postTemplate="xml/etc/shibboleth/postTemplate.html"</code> Hiányossága a funkciónak, hogy ha a form tartalmaz <code>file</code> típusú <code>MetadataProviderinput</code>mezőt, akkor nem fog működni. =HREF integráció=# Az SP-(eke)t tartalmazhatregisztrálni kell a [[Resource_Registry#SP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-ben# Le kell tölteni a metadatához tartozó tanúsítványt a [https://metadata.eduid.hu/current/ https://metadata.eduid.hu/current/] címről, és elmenteni a shibboleth kofigurációs fájljait tartalmazó könyvtárba# A [[#MetadataProvider|Metadata]] beállításoknál meg kell adni a HREF metadata elérhetőségét: [https://metadata.eduid.hu/current/href.xml https://metadata.eduid.hu/current/href.xml]# Az <code>attribute-map.xml</code> fájlban el kell távolítani a kommentjeleket azon [[HREFAttributeSpec|attribútumok]] elől, melyeket az SP használni kíván.# Újra kell indítani a shibboleth démont.

Navigációs menü