Módosítások

Shib2IdpInstall

6 787 bájt hozzáadva, 2013. március 14., 11:09
maxrefreshdelay HREF föderációs metadata beállítása az IdP-ben
== JDK ==
Debian Lenny alatt a <code>openjdksun-6java6-jdk</code> csomagot kell feltelepíteni. Telepítés előtt érdemes az aptitude-ban kikapcsolni az opcionális függőségek telepítését.
aptitude install openjdksun-6java6-jdk
Állítsuk be, a <code>JAVA_HOME</code> környezeti változót!
export JAVA_HOME=/usr/lib/jvm/java-6-sun {{ATTENTION|Az <code>openjdk-6-jdk</code> csomag használata esetén ne felejtsük feltenni a <code>ca-certificates-java</code> csomagot, anélkül ugyanis hibát fogunk kapni az IdP indításakor!}}
=== Shibboleth security provider ===
== Tomcat 6 ==
A 2.1.3 és újabb IdP megköveteli a Tomcat6 használatát (Tomcat5.5 -tel bizonyos böngészők esetén nem működik rendesen). A Debian Lenny nem tartalmazza a Tomcat6-ot, ezért a testing ágból kell feltelepíteni.
 
A Tomcat6-ra való frissítésről további - vázlatos - információkkal ez az [[Tomcat55_to_Tomcat6|oldal szolgál]].
=== Telepítés ===
Ha minden rendben meg, és a squeeze source beállításra került, akkor elegendő egy
aptitude install tomcat6
parancs kiadása. Ez felpakolja a tomcat különböző függőségeit is, ám nem biztos, hogy a debian stabil kiadásában már szerepel. Az - az ajánlott függőségek (tomcat6-admin, -docs, stb.) feltelepítése nem szükséges.
Ne felejtsük el, hogy a Tomcat szerver "tomcat6" user nevében fog futni! Mivel a Shibboleth servletnek szüksége van arra, hogy hozzáférjen a filerendszerhez, a Java Security Manager-t ki kell kapcsolni a <code>/etc/default/tomcat6</code> fájlban:
A <code>/etc/tomcat6/server.xml</code> fájlt kell szerkesztenünk
==== Ha a Tomcat Apache mögött fut ====
A 8009-es porton figyelő Connector elem konfigurációjához hozzá kell adni, hogy a <code>tomcatAuthentication</code> értéke "false" legyen, ezen kívül a hozzáférést korlátozhatjuk a localhost-ra is (hiszen a Connector-t csak a helyben futó Apache mod_proxy_ajp konnektora érheti el).
<source lang="xml">
</source>
==== Ha a Tomcat önállóan, Apache nélkül fut ====
Ha a Tomcat Apache nélkül fut, akkor be kell állítani, hogy az SP-vel való kommunikációra fenntartott 8443-as porton egyből a Tomcat figyeljen.
<source lang="xml">
Ahol az <code>IDP_HOME</code> az IdP alapkönyvtára, a <code>PASSWORD</code> pedig az [[#Shibboleth 2.0 IdP telepítés|IdP telepítésekor]] megadandó jelszó lesz.
{{INFO_ENINFO|Amennyiben a Tomcat önállóan fut, szükség van a Shibboleth Security Provider telepítésére!}}
[https://spaceswiki.internet2shibboleth.edunet/confluence/display/SHIB2/IdPApacheTomcatPrepare További információ angolul]
== Apache beállítás ==
Tanusítványok Tanúsítványok beszerzése és bemásolása <code>/etc/ssl</code> vonatkozó alkönyvtárai alá.
Meg kell adni, hogy az apache Apache figylejen a 443-as és 8443-as portokon. Az alábbiak kerüljenek a <code>/etc/apache2/ports.conf</code> fájlba
Listen 443
Listen 8443
=== SSO URL (443-as port) ===
Be kell állítani a virtuális hosztot, amelyhez az IdP-t rendeltük. Először a 443-as portot konfiguráljuk.
<source lang="apache"> <VirtualHost _default_:443> ServerName aai-logon.example.org :443
SSLEngine On
SSLCertificateFile /etc/ssl/certs/aai-logon.example.org.crt SSLCertificateKeyFile /etc/ssl/private/aai-logon.example.org.key SSLCertificateChainFile /etc/ssl/certs/aai-logon.example.org.crt ProxyRequests Off <Proxy ajp://localhost:8009> Allow from all </Proxy> ProxyPass /idp ajp://localhost:8009/idp retry=5 </VirtualHost> </source>Ezen a porton valamilyen széles körben ismert tanúsítványt kell használni, mivel a felhasználók böngészőjének ismerniük kell(ene) a kibocsátót.
=== AA ill. Artifact (8443-as port) ===
Ezen keresztül az SP és az IdP közvetlenül kommunikálnak egymással. Ide arra a tanúsítványra van szükség, amely a föderációs metadatában szerepel - az aláírója nem érdekes.
Majd a 8443-as portot A csatorna felépítésekor az IdP és az SP is beállítjuk'''Megjegyzés''': a 8443autentikálja magát. Az SP autentikációját az Apache végzi, ami nem végez kibocsátó-as port beállítása csak akkor kellellenőrzést (<code>optional_no_ca</code>). Ez utóbbit az IdP alkalmazás végzi el, ezért nagyon fontos, ha Artifactot szeretnénk használnihogy a kliens tanúsítványát az Apache továbbadja az alkalmazásnak (<code>ExportCertData</code>). Ha megelégszünk {{ATTENTION_EN|Az Apache a HTTPtanúsítvány-Post kínálta lehetőségekkelellenőrzésnél ellenőrzi a tanúsítvány típusát. Ezért az SP tanúsítványának vagy kliens tanúsítványnak kell lennie, akkor elég a 443-as portot beállítanivagy nem lehet benne típus információ.}}<source lang="apache"> <VirtualHost _default_:8443> ServerName aai-logon.example.org :8443
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:!EXPORT40:RC4+RSA:!SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
SSLCertificateFile /etc/ssl/certs/aai-aa.example.org.crt
SSLCertificateKeyFile /etc/ssl/private/aai-aa.example.org.key
SSLCertificateChainFile /etc/ssl/certs/aai-aa.example.org.crt
SSLCACertificateFile /etc/ssl/ca-bundle.switchaai.crt
SSLVerifyDepth 10
SSLVerifyClient optional_no_ca
ProxyRequests Off
<Proxy ajp://localhost:8009>
Allow from all
</Proxy>
ProxyPass /idp ajp://localhost:8009/idp retry=5
</VirtualHost>   Ezek után engedélyezni kell a virtuális hosztokat  a2ensite aai-logon a2ensite aai-aa apache2ctl -t <font color="#999999">Syntax OK</fontsource>
Majd A virtuális hoszt engedélyezése után be kell tölteni az ssl modult  a2enmod ssl <font color="#999999"code>Module ssl installed; run /etc/init.d/apache2 force-reload to enable.</fontcodeVégül a proxy_ajp modult  a2enmod proxy_ajp és <font color="#999999"code>Enabling proxy as a dependency Module proxy installed; run /etc/init.d/apache2 force-reload to enable. Module proxy_ajp installed; run /etc/init.d/apache2 force-reload to enable. </fontcodeVégezetül modulokat, majd újra kell indítani az apache-ot  apache2ctl -k restart.
== Shibboleth 2.x IdP servlet telepítés ==
A hivatalos IdP kiadás innen [http://shibboleth.internet2.edu/downloads/shibboleth/idp/latest/ innen tölthető le]
Alternatívaként az NIIF által patchelt, ezáltal SLO képes IdP kiadást ajánljuk, ami a [httpshttp://www.aaisoftware.niif.hu/software NIIF AAI oldalról] érhető el. A Single Logout-képes IdP-ről további [[Single_Logout_in_Shibboleth_IdP|információ itt]].
====Kicsomagolás====
export JAVA_HOME=/usr/jdk
cd /usr/local/shibboleth-idp
chmod 755 antinstall.sh ./antinstall.sh
A telepítés során az alábbi kérdésekre kell választ adnunk:
mv $IDP_HOME/logs /var/log/`basename $IDP_HOME`
ln -s /var/log/`basename $IDP_HOME` $IDP_HOME/logs
mkdir /var/runlib/`basename $IDP_HOME` mv $IDP_HOME/metadata /var/runlib/`basename $IDP_HOME`/metadata ln -s /var/runlib/`basename $IDP_HOME`/metadata $IDP_HOME/metadata
'''Jogosultságok beállítása''' - hogy a <code>tomcat6</code> felhasználó hozzáférhessen az alábbi könyvtárakhoz
chown -R tomcat6 /var/log/`basename $IDP_HOME` /var/runlib/`basename $IDP_HOME`
'''További, már telepített IdP-től függő tomcat beállítás''' (mi ez magyarul???)
cd /var/lib/tomcat6/
mkdir -p conf/Catalina/localhost
unpackWAR="false" />
</source>
 
==== Naplófájlok rotálása ====
Az alapértelmezett logging.xml nem törli a régi állományokat, ezért ezek egy idő után megtöltik a diszket.
 
Erre a korrekt megoldás az (lenne), ha a Logback alrendszert utasítjuk, hogy az N (a példában 90) napnál régebbi fájlokat rotálja ki. Ehhez a <code>logging.xml</code>-ben adjuk meg a <code>maxHistory</code> paramétert az ''összes'' <code>rollingPolic</code>y-nál, valahogy így:
<source lang="xml">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>/usr/local/shibboleth-idp/logs/idp-access-%d{yyyy-MM-dd}.log</FileNamePattern>
<maxHistory>4</maxHistory>
</rollingPolicy>
</source>
 
 
Sajnos azonban jelenleg a logback [http://jira.qos.ch/browse/LBCORE-147 csak egy állományt töröl], a régi file-okat megtartja (pl. akkor is, ha több, mint egy napig nem futott az IdP. Amíg ez nincs megoldva, addig kerülő megoldás lehet cron-ból törölni a régi file-okat
sudo crontab -u tomcat6 -e
MAILTO=mail@example.com
#m h dom mon dow command
52 18 * * * find /var/log/shibboleth-idp/ -mtime +90 -delete
== Teszt ==
== Shibboleth 2.0 IdP beállítás ==
=== Metadaták Metadata beállítása ==={{ambox==== Metadata aláírás ellenőrzés beállítása ====Az IdP-be beállított metaadat(ok) valódiságának ellenőrzéséhez szükséges egy ún. <code>TrustEngine</code> beállítása. Ezt a <code>relying-party.xml</code> -ben kell megtenni a <code>Security Configurations</code> részben:  <security:TrustEngine id="shibboleth.MetadataTrustEngine" xsi:type="security:StaticExplicitKeySignature"> <security:Credential id="HREFSigner" xsi:type="security:X509Filesystem"> <security:Certificate>/path/to/idp/credentials/href-metadata-signer-2011.crt</security:Certificate> </security:Credential> </security:TrustEngine> A konfigurációban hivatkozott <code>href-metadata-signer-2011.crt</code> elérhető innen: https://metadata.eduid.hu/href-metadata-signer-2011.crt, SHA-1 lenyomata a következő: <code>FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66</code> ==== HREF föderációs metadata beállítása az IdP-ben ====A HREF metadata állomány elérhetősége:* http://metadata.eduid.hu/current/href.xml A Shibboleth IdP <code>relying-party.xml</code> konfigurációban a következőképpen lehet beállítani a HREF metaadatot (fontos hogy az előző pontban leírt <code>TrustEngine</code> is be legyen állítva):  <MetadataProvider id="HREF-Metadata" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" metadataURL="http://metadata.eduid.hu/current/href.xml" backingFile="/path/to/idp/metadata/href.xml" maxRefreshDelay="PT1H">| <MetadataFilter xsi:type = todo"SignatureValidation" trustEngineRef="shibboleth.MetadataTrustEngine" />| image </MetadataProvider> ====Tovább a föderációba==== Amennyiben a telepítendő IdP-t szeretnénk a HREF-be integrálni, úgy ennél a pontnál küldjünk egy levelet az [mailto:aai@niif.hu aai@niif.hu] címre, amely nyomán, ha minden rendben van, az IdP regisztrálásra kerül a [[Resource_Registry]]-ben, s a válasz e-mail tartalmaz majd két hivatkozást, melyekről letölthetők az <code>attribute-filter.xml</code> és <code>attribute-resolver.xml</code> fájlok. Ezek már testreszabva tartalmazzák az IdP igényeit, az első fájlt elég csak bemásolni, a másodikban pedig - értelemszerűen - az egyes, a helyi erőforrásokra vonatkozó felhasználóineveket és jelszavakat kell kicserélni a megfelelőre. [[Image:UnderConstructionResource_Registry#IdP_regisztr.C3.A1ci.C3.pngB3|40pxTovábbi információk a Resource Registry-be történő felvételről]]| text ;Attribútum filter automatikus frissítéseA Resource Registry automatikusan generálja minden egyes föderációban szereplő IdP számára a saját, testre szabott attribútum filterét, így célszerű úgy beállítani az IdP-t, hogy ezt a fájlt automatikusan töltse le. Ehhez hozzunk létre egy <code>confcache</code> nevű könyvtárat, adjunk rá írásjogot a <code>tomcat6</code> felhasználónak, majd szerkesszük a <code>conf/service.xml</code>fájlt. Az XML felső harmadában kerül megadásra az <code>AttributeFilterEngine</code>, melyet az alábbiak alapján kell átírni.  <Service id="shibboleth.AttributeFilterEngine" xsi:type="attribute-afp:ShibbolethAttributeFilteringEngine" configurationResourcePollingFrequency="3600000" configurationResourcePollingRetryAttempts="128"> <ConfigurationResource url="https://rr.aai.niif.hu/gen_attribute-filter.php/href/IDP_NEVE_AZ_RRBEN/attribute-filter.xml" file="/path/to/shibboleth-idp/confcache/attribute-filter.xml" xsi:type= "resource:FileBackedHttpResource" /> </Service> ;Több attribútum filter használataHasznos lehet, ha a föderációs szűrőkön kívül további irányokba kívánunk IdP-nkből attribútumokat kiadni. Elterjedt, hogy pl. különböző google szolgáltatásokhoz lehet az intézményen keresztül autentikálni, amely beállítási részleteket értelemszerűen a Resource Registry nem tartalmazza, így a letöltött friss, és a régi, helyi adatokat is tartalmazó fájlok egyesítése bosszantó plusz munka lehet. Ezt elkerülendd dolgozhatunk több attribútum filterfájlból. Ehhez ismét a <bigcode>'''A metadatákkal kapcsolatos rész még hiányzik'''conf/service.xml</bigcode>fájlt kell szerkeszteni. Alább a fenti kódrészlet kiegészítése.  <Service id="shibboleth.AttributeFilterEngine" xsi:type="attribute-afp:ShibbolethAttributeFilteringEngine" configurationResourcePollingFrequency="3600000" configurationResourcePollingRetryAttempts="128"> <ConfigurationResource url="https://rr.aai.niif.hu/gen_attribute-filter.php/href/IDP_NEVE_AZ_RRBEN/attribute-filter.xml" file="/path/to/shibboleth-idp/confcache/attribute-filter.xml" xsi:type="resource:FileBackedHttpResource" />{{#if <ConfigurationResource file="/path/to/shibboleth-idp/conf/attribute-filter-local.xml" xsi:type="resource:{{{1|}}} | {{{1}}} | Ha ki tudod egészíteniFilesystemResource" /> </Service> Ezek a lépések természetesen kihagyhatók, ha nincs szándékunkban a föderáció tagjaivá válni, megköszönjük!ekkor érdemes az alább részletezett attribútumokhoz kapcsolódó tudnivalókkal folytatni.}}}};[[EduidFedStats|Statisztika küldés]]
=== [[Shib2IdpAuth | Autentikáció beállítása]] ===

Navigációs menü