9
szerkesztés
Módosítások
maxrefreshdelay →HREF föderációs metadata beállítása az IdP-ben
== Előkészületek ==
=== entityID ===
Fontos, hogy az entityID '''egyedi''' és '''állandó''' legyen. Javasolt forma: '''<code>https://serveridp.neveintezmenyneve.hu/idp/shibboleth</code>'''.
=== Tűzfal ===
Be kell engedni a 443-as és a 8443-as portokat. Ha nagyon szigorúan vesszük, akkor a 8443-as portot elegendő csak a szóbajöhető SP-kről beengedni, de ezzel általában nem vagyunk tisztában, ezért célszerű a "nagyvilágból" beengedni. Biztonsági szempontból nem sok különbség van a 443-as és a 8443-as porton elérhető alkalmazások között.
== JDK ==
=== Shibboleth security provider ===
{{INFO|A Shibboleth Security Provider csak akkor szükséges, ha a Java alkalmazásszerver (Tomcat) önállóan fog kéréseket feldolgozni és nem kerül elé proxy (Apache)}}
Be kell másolni a <code>lib/shib-jce-1.0.jar</code> állományt a <code>$JAVA_HOME/jre/lib/ext</code> könyvtárba. Ha az <code>ext/</code> könyvtár nem létezik, akkor hozzuk létre.
cp lib/shib-jce-1.0.jar $JAVA_HOME/jre/lib/ext
security.provider.<b>7</b>=edu.internet2.middleware.shibboleth.DelegateToApplicationProvider
: '''Megj.:''' a "security.provider." után következő szám mindig a megelőzőnél legyen eggyel nagyobb!
=== Bouncy Castle JCE ===
{{UNCERTAIN|Az alábbi leírás az 5-ös JVM-hez készült, 6-os JVM esetén erre nem biztos hogy szükség van.}}
A JVM-mel jövő Java Cryptography Engine (JCE) nem támogatja az összes kriptográfiai algoritmust, amelyre az Identity Providernek szüksége lehet (pl. XML Digital Signature, XML Encryption). A Bouncy Castle JCE ezek mellett még olyan algoritmusokat is tartalmaz (általában hatékonyabb és szabványosabb formában), amelyek benne vannak a Java JCE-ben.
== 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 apt-get aptitude install tomcat6parancs kiadása. Ez felpakolja a tomcat különböző függőségeit is- az ajánlott függőségek (tomcat6-admin, ám -docs, stb.) feltelepítése nem biztos, hogy a debian stabil kiadásában már szerepelszükséges.
Ahhoz, hogy a Tomcat számára üzembiztosan elegendő memóriát biztosítsunk, ugyanebbe a fájlba ( <code>/etc/default/tomcat6</code> ) adjuk meg:
JAVA_OPTS="-Xms256M -Xmx512M -XX:-DisableExplicitGC "
=== Beállítás ===
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|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 == 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 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.example.org:443 SSLEngine On SSLCertificateFile /etc/ssl/certs/aai.example.org.crt SSLCertificateKeyFile /etc/ssl/private/aai.example.org.key SSLCertificateChainFile /etc/ssl/certs/aai.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. A csatorna felépítésekor az IdP és az SP is autentikálja magát. Az SP autentikációját az Apache végzi, ami nem végez kibocsátó-ellenőrzést (<code>optional_no_ca</code>). Ez utóbbit az IdP alkalmazás végzi el, ezért nagyon fontos, hogy a kliens tanúsítványát az Apache továbbadja az alkalmazásnak (<code>ExportCertData</code>).{{ATTENTION_EN|Az Apache a tanúsítvány-ellenő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, vagy nem lehet benne típus információ.}}<source lang="apache"> <VirtualHost _default_:8443> ServerName aai.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 SSLVerifyDepth 10 SSLVerifyClient optional_no_ca SSLOptions -StdEnvVars +ExportCertData ProxyRequests Off <Proxy ajp://localhost:8009> Allow from all </Proxy> ProxyPass /idp ajp://localhost:8009/idp retry=5 </VirtualHost> </source> A virtuális hoszt engedélyezése után be kell tölteni az <code>ssl</code> és <code>proxy_ajp</code> modulokat, majd újra kell indítani az apache-ot.
== Shibboleth 2.x IdP servlet telepítés ==
====Letölté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/sites/aai.niif.hu/files/shibboleth-identityprovider-2.1NIIF AAI oldalról] érhető el.3A Single Logout-slo3képes IdP-bin.tar_.gz|IdP letöltése innen] (ajánljuk :) ) További ről további [[Single_Logout_in_Shibboleth_IdP|információ itt]].
====Kicsomagolás====
==== Endorsed jar állományok ====
Sajnos - legalábbis a cikk írásakor - a "kincstári" Sun-os Tomcat (Java?) JAXP parser egy ismert memóriaszivárgást tartalmaz, ezért a disztribúcióban az <code>endorsed/</code> könyvtárban található .jar file-okat kézzel be kell másolni a Tomcat <code>endorsed/</code> könyvtárába.
: <small>A Debian alatti tomcat6 csomag használatakor a <code>/usr/share/tomcat6/common/endorsed </code> könyvtárba kell tenni a jar file-okat(ezt a könyvtárt létre is kell hozni).</small> rm /usr/share/tomcat6/endorsed/xercesImpl.jar rm /usr/share/tomcat6/endorsed/xml-apis
mkdir /usr/share/tomcat6/endorsed
cp endorsed/*.jar /usr/share/tomcat6/endorsed/
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>tomcat55</code> felhasználó hozzáférhessen az alábbi könyvtárakhoz chown -R tomcat55 /var/log/`basename $IDP_HOME` /var/run/`basename $IDP_HOME` {{UNCERTAIN|Erre nem biztos, hogy szükség van
'''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/lib/`basename $IDP_HOME`
'''Create a context descriptorTovábbi, már telepített IdP-től függő tomcat beállítás''' (mi ez magyarul???) cd /var/lib/tomcat5.5tomcat6/
mkdir -p conf/Catalina/localhost
<source lang="xml">
<Context
docBase="/optusr/local/shibboleth-idp/war/idp.war"
privileged="true"
antiResourceLocking="false"
unpackWAR="false" />
</source>
== [[Shib2IdpAuth | Autentikáció beállítása]] ==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= Apache beállítás =="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>
Ha nem működik a webalkalmazás, akkor az alábbi naplófájlokban kezdjünk el keresgélni:* <IfModule mod_ssl.c> <VirtualHost _default_:8443code> ServerName aai-logon.example.org SSLEngine On SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etcvar/ssllog/certsshibboleth/aai-aa.example.org.crt SSLCertificateKeyFile /etc/ssl/private/aai-aa.example.org.key SSLCertificateChainFile /etc/ssl/certs/aai-aa.example.org.crt #SSLCACertificatePath /etc/ssl/certs SSLCACertificateFile /etc/ssl/caidp-bundle.switchaaierror.crt #SSLCARevocationPath /etc/ssl/certs #SSLCARevocationFile /etc/ssl/ca-bundle.crl SSLVerifyDepth 10 SSLVerifyClient optional_no_ca SSLOptions -StdEnvVars +ExportCertData log </VirtualHost> </IfModule> <IfModule mod_proxy_ajp.c> ProxyRequests Off <Proxy ajp://localhost:8009code> * Allow from all </Proxycode> ProxyPass /idp ajp:var/log/localhost:8009shibboleth/idp retry=5 -process.log </IfModulecode>
<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>
== Shibboleth 2==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.0 hu aai@niif.hu] címre, amely nyomán, ha minden rendben van, az IdP beállítás ==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.
[[Resource_Registry#IdP_regisztr.C3.A1ci.C3.B3|További információk a Resource Registry-be történő felvételről]]
<Service id="shibboleth.AttributeFilterEngine" xsi:type="attribute-afp:ShibbolethAttributeFilteringEngine" configurationResourcePollingFrequency= [[Shib2IdpAttrib | Attribútum feloldás beállítása]] "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>
<Service id="shibboleth.AttributeFilterEngine" xsi:type= Teszt "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" /> <ConfigurationResource file="/path/to/shibboleth-idp/conf/attribute-filter-local.xml" xsi:type="resource:FilesystemResource" /> </Service>
;[[EduidFedStats|Statisztika küldés]]
=== [[Shib2IdpARP | Attribútum kiadás beállítása]] ===
[[Kategória: Shibboleth2 IdP]]
[[Kategória: HOWTO]]