<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
		<id>https://wiki.niif.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sitya%28AT%29niif.hu</id>
		<title>Pro-M - Oktatási Üzletág - Wiki - Szerkesztő közreműködései [hu]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.niif.hu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sitya%28AT%29niif.hu"/>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Sitya(AT)niif.hu"/>
		<updated>2026-11-07T19:54:36Z</updated>
		<subtitle>Szerkesztő közreműködései</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=EARC&amp;diff=3538</id>
		<title>EARC</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=EARC&amp;diff=3538"/>
				<updated>2016-02-29T10:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Új oldal, tartalma: „= eduGAIN Attribute Release Check = == Evaluation ==  === Ranks (for each SP): === * A: IdP sends all necessary information * B: IdP sends minimal information * C: IdP …”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= eduGAIN Attribute Release Check =&lt;br /&gt;
== Evaluation ==&lt;br /&gt;
&lt;br /&gt;
=== Ranks (for each SP): ===&lt;br /&gt;
* A: IdP sends all necessary information&lt;br /&gt;
* B: IdP sends minimal information&lt;br /&gt;
* C: IdP sends basic information while some required information is missing&lt;br /&gt;
* C: IdP sends eduPersonTargetedId with the wrong (legacy) syntax&lt;br /&gt;
* D: IdP sends superfluous personal information&lt;br /&gt;
* D: IdP sends some subset of the requested information, but not the basic information (see definition below)&lt;br /&gt;
* F: Incorrect value syntax (except for eptid above)&lt;br /&gt;
* F: R&amp;amp;S category support is indicated but its requirements are not satisfied&lt;br /&gt;
* F: No attributes received&lt;br /&gt;
          &lt;br /&gt;
'''Additional points (A-C):'''&lt;br /&gt;
* IdP R&amp;amp;S support is indicated&lt;br /&gt;
&lt;br /&gt;
'''Penalty points (A-C):'''&lt;br /&gt;
* Redundant attributes are missing, but information is available&lt;br /&gt;
* IdP sends superfluous non-personal information (eptid, homeOrganizationType, etc)&lt;br /&gt;
&lt;br /&gt;
== Definitions ==&lt;br /&gt;
* attribute: a non-empty SAML Attribute sent as a part of a SAML AttributeStatement&lt;br /&gt;
* information: either an attribute or a set of attributes for which a transformation or combination algorithm is available to produce data for an application (ie: e-mail, affiliation, name)&lt;br /&gt;
* requested information: the set of attributes or meta-attributes (such as a non-reassigned identifier or a name), that is requested by the SP by using SAML metadata, whether or not isRequired is flagged.&lt;br /&gt;
* all necessary information: set of released attributes that can provide all requested information&lt;br /&gt;
* minimal information = required information: If the tested SP has an entity category, where the minimal set is defined (such as R&amp;amp;S), the minimal information is the minimal set. Otherwise it is the set of attributes that can provide the subset of requested information, where isRequired is set in the SAML metadata. &lt;br /&gt;
* basic information: a set of attributes, including at least a persistent identifier represented by at least one of:&lt;br /&gt;
** eduPersonPrincipalName&lt;br /&gt;
** eduPersonTargetedId (either as a SAML NameID or an attribute)&lt;br /&gt;
** eduPersonUniqueId&lt;br /&gt;
* superfluous attribute: attribute that is sent by the IdP even though the information is not requested by the SP. Sending the same attribute in different NameFormats (such as URI and OID) does not count as superfluous information&lt;br /&gt;
* R&amp;amp;S requirements: according to the R&amp;amp;S specification, the following attributes must be provided by an R&amp;amp;S IdP:&lt;br /&gt;
** eduPersonPrincipalName&lt;br /&gt;
** mail&lt;br /&gt;
** displayName OR (givenName AND sn)&lt;br /&gt;
* redundant attributes: information that can be extracted from one or more attributes:&lt;br /&gt;
** schacHomeOrganization &amp;lt;= eduPersonScopedAffiliation / eduPersonPrincipalName&lt;br /&gt;
** eduPersonAffiliation &amp;lt;= eduPersonScopedAffiliation&lt;br /&gt;
** cn &amp;lt;= sn+givenName&lt;br /&gt;
** cn &amp;lt;= displayName&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREF_attrib%C3%BAtum_specifik%C3%A1ci%C3%B3&amp;diff=3537</id>
		<title>HREF attribútum specifikáció</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREF_attrib%C3%BAtum_specifik%C3%A1ci%C3%B3&amp;diff=3537"/>
				<updated>2016-02-29T09:47:12Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* schacYearOfBirth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A specifikáció célja ==&lt;br /&gt;
A föderációban az IdP SAML attribútumokban ad meg adatokat a felhasználóról az SP-nek. Ahhoz, hogy az adatokban hordozott információ átadása pontos legyen, fontos, hogy a használt attribútumokat a két fél ugyanúgy értelmezze.&lt;br /&gt;
&lt;br /&gt;
Az attribútumok pontos meghatározása az attribútumok sémájában található. A specifikációban az alábbi sémákat használtuk fel:&lt;br /&gt;
* ''person'', ''organizationalPerson'' (X.521)&lt;br /&gt;
* ''inetOrgPerson'' (RFC2798)&lt;br /&gt;
* ''eduPerson'' (http://middleware.internet2.edu/eduperson/)&lt;br /&gt;
* ''SCHAC'' (http://www.terena.org/activities/tf-emc2/schacreleases.html)&lt;br /&gt;
* ''niifPerson'', ''niifEduPerson'' ([[NIIFSchema]])&lt;br /&gt;
&lt;br /&gt;
A fenti dokumentumokban definiált attribútumoknak a föderációban való ''értelmezését'' határozza meg az Attribútum Specifikáció. Ez néhány esetben valamivel szűkebb, mint az eredeti definíció, azért, hogy az információt az SP-k pontosabban értelmezhessék. &lt;br /&gt;
&lt;br /&gt;
A specifikációban felsoroltakon túl az IdP-k tetszőleges attribútumot megvalósíthatnak és kiadhatnak ''bilaterális megállapodás'' alapján.&lt;br /&gt;
== Attribútumok használata ==&lt;br /&gt;
=== Meghatározások ===&lt;br /&gt;
* '''Implementáció''' (megvalósítás): egy IdP abban az esetben ''implementál'' egy attribútumot, ha az attribútumban hordozott információ a föderációs specifikációnak megfelelő szemantikai és formai követelmények szerint a rendelkezésére áll. Ez jelentheti azt, hogy a felhasználói adatbázisban a felhasználó bejegyzése tartalmazza ezt az attribútumot, de az attribútum más módon is előállhat (pl. statikusan vagy más attribútumokból dinamikusan generálva). Az implementáció részleteivel kapcsolatban a föderáció nem fogalmaz meg megkötést&lt;br /&gt;
* '''Attribútum kiadás''': az attribútum átadása néhány (vagy a föderációban található összes) SP-nek.&lt;br /&gt;
&lt;br /&gt;
=== Implementációs szintek ===&lt;br /&gt;
* '''Kötelező''': az attribútumot kötelező az IdP-nek implementálni. (Nem kötelező kiadnia.)&lt;br /&gt;
* '''Ajánlott''': az attribútumot ajánlott az IdP-nek implementálni, de ez néhány intézménynél lehetetlen vagy nehézségekbe ütközhet&lt;br /&gt;
* '''Opcionális''': az attribútumot az IdP a saját döntése szerint megvalósíthatja.&lt;br /&gt;
:: Fontos kiemelni, hogy amennyiben egy IdP implementál egy opcionális attribútumot, azt '''a specifikáció szerint KÖTELEZŐ megtennie''', azaz követve a specifikáció szemantikai és szintaktikai előírásait.&lt;br /&gt;
&lt;br /&gt;
=== SP attribútum-igények ===&lt;br /&gt;
Az SP-k a [[Resource Registry]]-ben, és ezen keresztül a [[Metadata|metadata]] állományban jelezhetik, hogy egy attribútum számukra megkövetelt (required) vagy ajánlott (desired).&lt;br /&gt;
* '''Megkövetelt''': az alkalmazás működéséhez elengedhetetlen az attribútum&lt;br /&gt;
:: pl. &amp;lt;code&amp;gt;eduPersonPrincipalName&amp;lt;/code&amp;gt; olyan alkalmazásokhoz, amelyek nincsenek felkészítve átlátszatlan (opaque) azonosítók kezelésére&lt;br /&gt;
* '''Ajánlott''': az alkalmazás működését megkönnyíti az attribútum&lt;br /&gt;
:: pl. a &amp;lt;code&amp;gt;cn&amp;lt;/code&amp;gt; attribútum átadásakor az alkalmazás nem kéri be a felhasználó teljes nevét regisztrációkor&lt;br /&gt;
&lt;br /&gt;
=== Hibakezelés ===&lt;br /&gt;
Abban az esetben, ha egy IdP nem adja ki egy vagy több az SP számára elengedhetetlen attribútumot, az SP-nek KÖTELEZŐ a felhasználónak hibaüzenetet adnia. (Ugyanis egy SP csak abban az esetben jelölhet meg egy attribútumot ''megkövetelt attribútumnak'', ha ez az alkalmazás működéséhez elengedhetetlen, minden egyéb esetben ''ajánlott''-nak kell megjelölnie.) Azonban ez a hibaüzenet lehetséges, hogy a felhasználó számára nehezen értelmezhető (pl: ''Authorization Required'').&lt;br /&gt;
&lt;br /&gt;
Ezért az IdP-k számára AJÁNLOTT kiadni azokat az attribútumokat, amelyeket az SP-k ''megkövetelt''-nek jelölnek meg.&lt;br /&gt;
&lt;br /&gt;
== Attribútumok listája ==&lt;br /&gt;
&lt;br /&gt;
=== Lista ===&lt;br /&gt;
==== Kötelező attribútumok ====&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|eduPersonTargetedID&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonScopedAffiliation&lt;br /&gt;
|-&lt;br /&gt;
|schacHomeOrganizationType&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonPrincipalName&lt;br /&gt;
|}&lt;br /&gt;
==== Ajánlott attribútumok ====&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|displayName&lt;br /&gt;
|-&lt;br /&gt;
|mail&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonEntitlement&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Állandó felhasználói azonosítók ===&lt;br /&gt;
Bizonyos alkalmazások esetén szükséges alkalmazás-specifikus adatokat is tárolni. Ilyen példa lehet egy webes naptárnál a felhasználóhoz kötődő bejegyzések, vagy egy wikinél a felhasználó szerkesztései. Ezeket az alkalmazások valamilyen helyi adatbázisban tárolják, a kulcs a felhasználó és az adatbázis bejegyzés között pedig egy '''állandó azonosító'''.&lt;br /&gt;
&lt;br /&gt;
Az állandó azonosítók lehetnek:&lt;br /&gt;
* '''statikusak''': a felhasználó létrehozásakor megadott adattal megegyezők&lt;br /&gt;
* '''számítottak''': a felhasználó valamelyik (vagy több) attribútumából algoritmikusan - általában hash eljárással - generáltak&lt;br /&gt;
* '''tároltak''': ezek általában olyan azonosítók, amelyet az IdP egy adatbázisban elsődleges kulcsként használ, azaz &lt;br /&gt;
** a felhasználói attribútumok változása esetén is állandó marad&lt;br /&gt;
** egyediségük biztosított&lt;br /&gt;
&lt;br /&gt;
Az azonosítók az alábbi tulajdonságokkal rendelkezhetnek:&lt;br /&gt;
* '''állandóság''': az IdP-nek gondoskodnia kell arról, hogy a kiosztott azonosító a felhasználó intézménynél töltött életciklusa során állandó legyen. &lt;br /&gt;
:: Amennyiben egy állandó(nak szánt) azonosító mégis megváltozik, az nagyon nehéz helyzetbe hozhatja mind a felhasználót, mind az alkalmazás üzemeltetőt. Erre megoldás lehet a SAML2 NameID Mapping, azonban ezt jelenleg a föderációban használt szoftverek csak részlegesen vagy egyáltalán nem támogatják.&lt;br /&gt;
* '''nem osztható ki újra''' (''non-reassignable''): az IdP-nek gondoskodnia kell arról, hogy egy felhasználó azonosítóját később nem osztja ki másik felhasználónak. &lt;br /&gt;
:: Ennek algoritmikus biztosítása bizonyos esetekben nehézségekbe ütközhet (pl. hash ütközések, illetve bizonyos IdP-k kézzel osztanak azonosítókat), ezért jelen specifikáció csak azt követeli meg, hogy azonosító a gyakorlatban ne tegye lehetővé, hogy az alkalmazás oldalán a felhasználók összekeveredjenek. Különböző IdP-ktől jövő felhasználók azonosítói abban az esetben nem ütközhetnek, ha az azonosítónak része valamilyen, az IdP-re jellemző adat ([[Scope|scope]] vagy [[entityID]]).&lt;br /&gt;
* '''nem átlátszó''' (''opaque''): az ilyen azonosítók nem jellemzők a felhasználóra, az értékéből nem lehet következtetni a felhasználó személyére (pl. e-mail címére)&lt;br /&gt;
:: Nem minden azonosító rendelkezik ilyen tulajdonsággal, azonban intézmények között adatvédelmi szempontból kifejezetten kívánatos, hogy egy azonosító ne legyen jellemző a felhasználó személyére. A nem átlátszó azonosítót nem célszerű a felhasználók felé megjeleníteni.&lt;br /&gt;
* '''célzott''' (''targeted''): az ilyen azonosítók minden SP-nél különbözőek, s így az SP-k - az IdP közreműködése nélkül - nem képesek profilt készíteni egy felhasználóról, ami adatvédelmi szempontból kívánatos. &lt;br /&gt;
:: Nem minden azonosító rendelkezik ilyen tulajdonsággal. &lt;br /&gt;
&lt;br /&gt;
Az állandó azonosító kiadható attribútumként, illetve a SAML Assertion NameID mezőjében. Bizonyos SP implementációk (pl. a Shibboleth 2.x) képesek arra, hogy az alkalmazás részére elfedjék azt, hogy az azonosító pontosan milyen attribútumban vagy NameID-ben érkezett, pl. úgy, hogy az azonosítót a REMOTE_USER változóban adják ki az alkalmazás számára. &lt;br /&gt;
&lt;br /&gt;
====NameID formátumok - melyiket válasszam?====&lt;br /&gt;
A föderáció elvárja, hogy az IdP-k támogassák mind a tranziens NameID formátumot, mind a célzott, átlátszatlan azonosítót (melyek lehetnek tároltak vagy számítottak). A tárolt azonosítót célszerű SAML2 perszistens NameID-ként kiadni, a számított azonosító azonban csak az eduPersonTargetedID attribútumban adható ki, mivel nem rendelkezik a perszisztens NameID szemantikájával.&lt;br /&gt;
&lt;br /&gt;
A Shibboleth IdP implementáció esetén a számított azonosítókról a tárolt azonosítókra való áttérés nem változtatja meg a kiadott azonosítókat, ezért az SP-k számára ez az áttérés transzparens.&lt;br /&gt;
&lt;br /&gt;
Ha SP-t üzemeltetünk, akkor célszerű már az üzemeltetés kezdetén eldönteni, hogy melyik formátum mellett tesszük le a voksunkat (ez elsősorban az SP által védett alkalmazás képességeitől függ), mert menet közben átállni körülményes, sok energiát igényel. A problémára reméljük könnyebb lesz a megfelelő választ megtalálni az alábbi kérdés átgondolásával: '''Szükséges-e az SP számára, hogy egy-egy felhasználójához tartozzon egy-egy állandó azonosító?'''&lt;br /&gt;
&lt;br /&gt;
1. Ha nem, akkor egyértelmű a választás: tranziens formátumot kell használni.&lt;br /&gt;
&lt;br /&gt;
2. Ha igen, és nem szükséges, hogy az állandó azonosító a felhasználóra jellemző legyen, ill. az SP mögötti alkalmazás felkészült ilyen azonosító fogadására ( az alkalmazás szempontjából mindegy, hogy milyen úton, tehát eduPersonTargetedID attribútumként, vagy perzisztens NameID-ként érkezik az érték az SP-hez ), akkor az SP-nek ''Nem kell meghatároznia, hogy milyen NameID formátumot támogat'', hiszen ezesetben&lt;br /&gt;
:	a) Ha az IdP nem támogatja a tárolt azonosítókat, akkor a tranziens NameID mellé az eduPersonTargetedID attribútumban ki fogja adni a számított (és célzott) azonosítót.&lt;br /&gt;
:	b) Ha az IdP támogatja a tárolt azonosítókat, akkor azt perzisztens NameID-ként fogja kiadni (illetve, ha az SP kéri az eduPersonTargetedID attribútumot, az IdP képes ugyanezt a tárolt értéket ilyen formában is kiadni).&lt;br /&gt;
:	Az alkalmazáshoz mindkét esetben ugyanaz az érték jut el, mint felhasználói azonosító.&lt;br /&gt;
&lt;br /&gt;
3. Ugyanaz, mint a 2., kivéve, hogy magasabb szintű felhasználókezelést (például SAML NameID menedzsmentet) is szeretne az SP használni, akkor kizárólag perzisztens NameID-t kell kérnie. A HREF föderáció jelenleg nem rendelkezik a magasabb szintű SAML protokollokról, ezért ezek használata kizárólag az adott SP és IdP közötti megállapodáson alapulhat.&lt;br /&gt;
&lt;br /&gt;
4.  Ha szükséges, hogy az állandó azonosító a felhasználóra jellemző legyen, őt egyértelműen azonosítsa, akkor a választás tranziens NameID, amely mellé meg kell követelni az eduPersonPrincipalName kiadását.&lt;br /&gt;
&lt;br /&gt;
A HREF föderációban az IdP-k részéről elvárt, hogy a fenti 1-2. megoldásokat támogassák. A 3-4. esetében minden további nélkül előfordulhat, hogy az IdP és SP közötti kommunikáció hibát jelez, mert valamelyik fél nem támogatja a másik fél által megkövetelt / biztosított azonosító formátumot...&lt;br /&gt;
&lt;br /&gt;
{{INFO| Egy SP a [[Resource Registry]]-ben jelezheti, hogy milyen NameID formátumokat támogat. Ha kizárólag perzisztens NameID formátumot támogat, akkor vagy kap az IdP-től ilyet, vagy hiba lép fel a válasz feldolgozása során.}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonTargetedID ====&lt;br /&gt;
{{AttributeDef|name=eduPersonTargetedID&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonTargetedID&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.10&lt;br /&gt;
|description='''Nem átlátszó''', '''célzott''' azonosító, amely '''nem osztható ki újra'''&lt;br /&gt;
|semantics=Lásd: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPTargetedID , ill. a fenti megjegyzést az implementációs szinttel kapcsolatban.&lt;br /&gt;
&lt;br /&gt;
Az SP a kapott értéket fel kell, hogy dolgozza, nem adhatja XML formátumban tovább az alkalmazásnak. A benne szereplő ún. qualifier-ek közül az IdP azonosítóját (&amp;lt;code&amp;gt;NameQualifier&amp;lt;/code&amp;gt;) és természetesen magát az azonosítót ''kötelező'' szerepeltetni az alkalmazás számára átadott azonosítóban. Javasolt az egyes mezőket '!' karakterrel elválasztani egymástól.&lt;br /&gt;
&lt;br /&gt;
Az IdP-nek biztosítania kell, hogy egy felhasználó számára kiosztott azonosító valóban perzisztens legyen, tehát gondoskodnia kell az attribútum-értékek biztos tárolásáról - például egy megfelelő mentési tervvel üzemeltetett relációs adatbázisban. &lt;br /&gt;
&lt;br /&gt;
Az eduPersonTargetedID '''nem osztható ki újra'''.&lt;br /&gt;
&lt;br /&gt;
|implementation=mandatory&lt;br /&gt;
|syntax=Az attribútum értékének a SAML2 szabványban definiált NameID formátumúnak kell lennie; az azonosító (nem számítva az XML attribútumokat) legfeljebb 256 karakterből állhat.&lt;br /&gt;
|example=&lt;br /&gt;
Az IdP ilyen formában adja ki az azonosítót:&lt;br /&gt;
 &amp;lt;saml2:NameID xmlns:saml2=&amp;quot;urn:oasis:names:tc:SAML:2.0:assertion&amp;quot;&lt;br /&gt;
    Format=&amp;quot;urn:oasis:names:tc:SAML:2.0:nameid-format:persistent&amp;quot;&lt;br /&gt;
    NameQualifier=&amp;quot;https://idp.example.org/idp/shibboleth&amp;quot;&lt;br /&gt;
    SPNameQualifier=&amp;quot;https://sp.example.org/shibboleth&amp;quot;&amp;gt;&lt;br /&gt;
 84e411ea-7daa-4a57-bbf6-b5cc52981b73&lt;br /&gt;
 &amp;lt;/saml2:NameID&amp;gt;&lt;br /&gt;
Az alkalmazás ilyen formában kapja meg az azonosítót:&lt;br /&gt;
 https://idp.example.org/idp/shibboleth!https://sp.example.org/shibboleth!84e411ea-7daa-4a57-bbf6-b5cc52981b73&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonPrincipalName ====&lt;br /&gt;
{{AttributeDef|name=eduPersonPrincipalName&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonPrincipalName&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.6&lt;br /&gt;
|description='''Állandó''', '''nem célzott''', '''nem újra kiosztható''' egyedi azonosító&lt;br /&gt;
|implementation=mandatory&lt;br /&gt;
|assurer=institution&lt;br /&gt;
|semantics=&lt;br /&gt;
Formátum: &amp;lt;egyedi_lokális_azonosító&amp;gt;@&amp;lt;scope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahol&lt;br /&gt;
* '''&amp;lt;egyedi_lokális_azonosító&amp;gt;''': tetszőleges állandó azonosító, amely az intézményen belül egyértelműen azonosítja a felhasználót. Kézenfekvő megoldás a felhasználói azonosító ('''uid''') használata, azonban bármilyen más azonosító használható&lt;br /&gt;
* '''&amp;lt;scope&amp;gt;''': helyi biztonsági tartomány. A végződése kötelezően egy DNS domain, amely az IdP-t üzemeltető intézmény tulajdonában áll.&lt;br /&gt;
&lt;br /&gt;
'''Megjegyzés''': az '''eduPersonPrincipalName''' érzékeny személyes adat, hiszen sok esetben megegyezik a felhasználó e-mail címével. Intézményen belüli használata javasolt, intézményen kívül célszerű nem átlátszó, célzott azonosítót használni.&lt;br /&gt;
&lt;br /&gt;
Az eduPersonPrincipalName a föderációban '''nem osztható ki újra'''.&lt;br /&gt;
&lt;br /&gt;
Bizonyos alkalmazások nem támogatják a különleges karaktereket az azonosítókban, ezért a föderációban az eduPersonPrincipalName kizárólag alfanumerikus karaktereket, pont ('.'), kötőjel ('-') és alulvonás ('_') karaktereket tartalmazhat.&lt;br /&gt;
|example=gipsz.jakab@example.org&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifPersonOrgID ====&lt;br /&gt;
{{AttributeDef|name=niifPersonOrgID&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonPrincipalName&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.154&lt;br /&gt;
|description=Állandó egyedi azonosító intézményen belüli, ill. e-learning használatra&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|semantics=&lt;br /&gt;
Bizonyos esetekben adatvédelmi szempontok miatt szükség lehet arra, hogy a felhasználó intézményen belüli azonosítója (pl. Neptun kódja) és az egyéb alkalmazásokban használt &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; különböző legyen.&lt;br /&gt;
&lt;br /&gt;
Ezen attribútum intézmények közötti átadása csak abban az esetben javasolt, ha e-learning rendszerek miatt meg kell osztani a tanulmányi azonosítót.&lt;br /&gt;
}}&lt;br /&gt;
==== schacPersonalUniqueCode ====&lt;br /&gt;
{{AttributeDef|name=schacPersonalUniqueCode&lt;br /&gt;
|OID=1.3.6.1.4.1.25178.1.2.14&lt;br /&gt;
|description=Állandó egyedi azonosító interföderációs környezetben való használatra&lt;br /&gt;
|example=&amp;lt;code&amp;gt;urn:schac:personalUniqueCode:hu:bme.hu:Neptun:gmx3f0&amp;lt;/code&amp;gt;&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Felhasználói tulajdonságokat leíró attribútumok ===&lt;br /&gt;
&lt;br /&gt;
==== sn ====&lt;br /&gt;
{{AttributeDef|name=sn&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:sn&lt;br /&gt;
|OID=2.5.4.4&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=A felhasználó vezetékneve&lt;br /&gt;
|semantics=A felhasználó vezetékneve. Amennyiben több vezetékneve van a felhasználónak, akkor ezeket egyetlen értékben kell tárolni.&lt;br /&gt;
|example=&lt;br /&gt;
* Gipsz&lt;br /&gt;
* Gipszné Kiss&lt;br /&gt;
}}&lt;br /&gt;
==== givenName ====&lt;br /&gt;
{{AttributeDef|name=givenName&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|OID=2.5.4.42&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:givenName&lt;br /&gt;
|description=A felhasználó keresztneve&lt;br /&gt;
|semantics=Amennyiben több keresztneve van a felhasználónak, ezeket egyetlen értékben kell tárolni.&lt;br /&gt;
|example=&lt;br /&gt;
* Jakab&lt;br /&gt;
* Mária Lujza &lt;br /&gt;
}}&lt;br /&gt;
==== displayName ====&lt;br /&gt;
{{AttributeDef|name=displayName&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:displayname&lt;br /&gt;
|OID=2.16.840.1.113730.3.1.241&lt;br /&gt;
|implementation=recommended&lt;br /&gt;
|description=A felhasználó megjelenítendő neve&lt;br /&gt;
|semantics=A felhasználó neve abban a formában, ahogy a felhasználó, vagy a felhasználó intézménye meg kívánja jeleníteni.&lt;br /&gt;
|example=Gipsz Jakab Aladár&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== mail ====&lt;br /&gt;
{{AttributeDef|name=mail&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:mail&lt;br /&gt;
|OID=0.9.2342.19200300.100.1.3&lt;br /&gt;
|implementation=recommended&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|description=A felhasználó email címe&lt;br /&gt;
|values=Létező e-mail cím&lt;br /&gt;
|syntax=Lásd: [http://www.faqs.org/rfcs/rfc2822.html RFC 2822]&lt;br /&gt;
|example=gipsz.jakab@example.org&lt;br /&gt;
|semantics=A felhasználó értesítési e-mail címe. Az így átadott email címről az intézmény biztosítja, hogy&lt;br /&gt;
* azt az intézmény biztosítja a felhasználó részére (pl neptunkod@intemzeny.hu)&lt;br /&gt;
* vagy az intézmény a cím rögzítésekor ellenőrizte, hogy az a felhasználó tulajdonában van (pl egy megerősítő levél kiküldésével).&lt;br /&gt;
&lt;br /&gt;
Az attribútumban ellenőrizetlen, felhasználó által megadott email címet átadni tilos.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== preferredLanguage ====&lt;br /&gt;
{{AttributeDef|name=preferredLanguage&lt;br /&gt;
|OID=2.16.840.1.113730.3.1.39&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:preferredLanguage&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|values=RFC 2068 Language Tags szekcióban meghatározott formátumú nyelvkódok&lt;br /&gt;
|example=hu&lt;br /&gt;
|description=Előnyben részesített nyelv&lt;br /&gt;
|semantics=A felhasználó által elsődlegesen használni kívánt, általa előnyben részesített nyelv&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== schacDateOfBirth ====&lt;br /&gt;
{{AttributeDef|name=schacDateOfBirth&lt;br /&gt;
|OID=1.3.6.1.4.1.25178.1.2.3&lt;br /&gt;
|description=A felhasználó születési dátuma&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|example=19700101&lt;br /&gt;
|values=YYYYMMDD (RFC 3339 'full-date') formátumú dátum&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== schacYearOfBirth ====&lt;br /&gt;
{{AttributeDef|name=schacYearOfBirth&lt;br /&gt;
|OID=1.3.6.1.4.1.25178.1.0.2.3&lt;br /&gt;
|description=A felhasználó születési éve (amennyiben csak az évre van szükség, egyébként ajánlott a [[#schacDateOfBirth | schacDateOfBirth]] használata)&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|values=YYYY formátumú év&lt;br /&gt;
|example=1970&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== schacPersonalTitle ====&lt;br /&gt;
{{AttributeDef|name=schacPersonalTitle&lt;br /&gt;
|OID=1.3.6.1.4.1.25178.1.2.8&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=A felhasználó személyes megszólítása.&lt;br /&gt;
|semantics=A felhasználó nevéhez kapcsolódó megszólítás, mely a teljes név elé fűzhető. A címtárban tárolható a [[NIIFSchema#niifPersonPrefix|niifPersonPrefix]] attribútumban is.&lt;br /&gt;
|example=&lt;br /&gt;
* Dr.&lt;br /&gt;
* Prof.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifPersonMothersName ====&lt;br /&gt;
{{AttributeDef|name=niifPersonMothersName&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.157&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=Felhasználó anyja neve&lt;br /&gt;
|example=Kőkori Vilma&lt;br /&gt;
|semantics=A felhasználó anyjának születési neve a felhasználó hivatalos irataiban.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifPersonResidentalAddress ====&lt;br /&gt;
{{AttributeDef|name=niifPersonResidentalAddress&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.159&lt;br /&gt;
|description=A felhasználó állandó lakcíme&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|example=1111 Budapest, Villányi út 155.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== homePostalAddress ====&lt;br /&gt;
{{AttributeDef|name=homePostalAddress&lt;br /&gt;
|OID=0.9.2342.19200300.100.1.39&lt;br /&gt;
|description=A felhasználó ideiglenes lakcíme&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|example=1111 Budapest, Villányi út 155.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== telephoneNumber ====&lt;br /&gt;
{{AttributeDef|name=telephoneNumber&lt;br /&gt;
|OID=2.5.4.20&lt;br /&gt;
|description=A felhasználó vezetékes telefonszáma&lt;br /&gt;
|values=A telefonszámot az [https://www.comnap.aq/interoperability/ITU-T-REC-E.123-2001-02.pdf ITU-T E.123 szabvány] szerint kell tárolni. A melléket a &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; jellel elválasztva jelölhető.&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|example=&lt;br /&gt;
* +36 1 123 1234&lt;br /&gt;
* +36 1 123 1234 / 102&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== mobile ====&lt;br /&gt;
{{AttributeDef|name=mobile&lt;br /&gt;
|OID=0.9.2342.19200300.100.1.41&lt;br /&gt;
|description=A felhasználó mobilszáma&lt;br /&gt;
|values= A telefonszámot az [https://www.comnap.aq/interoperability/ITU-T-REC-E.123-2001-02.pdf ITU-T E.123 szabvány] szerint kell tárolni.&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|example= +36 30 123 1234&lt;br /&gt;
|implementation=optional&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonNickName ====&lt;br /&gt;
{{AttributeDef|name=eduPersonNickName&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.2&lt;br /&gt;
|description=A felhasználó beceneve&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|assurer=user&lt;br /&gt;
|example=&lt;br /&gt;
*gipszj&lt;br /&gt;
*the.man.who.was.bored.to.death.by.some.american.smartguys&lt;br /&gt;
|semantics=Az a becenév, amelyet a felhasználó általában használ (pl. online fórumokon). Nem egyedi, a hossza és a tartalma sem kötött, nem állandó, ezért az alkalmazásnak mindenképpen ellenőriznie kell, mielőtt - esetleg - lokális felhasználónévként figyelembe veszi.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== cn ====&lt;br /&gt;
{{AttributeDef|name=cn&lt;br /&gt;
|OID=2.5.4.3&lt;br /&gt;
|description=A felhasználó teljes neve&lt;br /&gt;
|semantics=A felhasználó vezetéknevének és keresztnevének valamilyen módon történő, szóközzel elválasztott összefűzése. Használata intézményenként és országonként eltérő. Jellemző, hogy több értékben különböző módokon előállított értékeket is tartalmaz. &lt;br /&gt;
&lt;br /&gt;
'''Helyette a [[#displayName|displayName]] használata javasolt.'''&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|example=&lt;br /&gt;
* Gipsz Jakab&lt;br /&gt;
* Kovács Áron;Kovacs Aron;Aron Kovacs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== jpegPhoto ====&lt;br /&gt;
{{AttributeDef|name=jpegPhoto&lt;br /&gt;
|OID=0.9.2342.19200300.100.1.60&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=Kis méretű fotó a felhasználóról JPEG formátumban&lt;br /&gt;
|sematics=&lt;br /&gt;
* Maximális méret: 320x320 pixel, 32 kB (???)&lt;br /&gt;
}}&lt;br /&gt;
==== labeledUri ====&lt;br /&gt;
{{AttributeDef|name=labeledUri&lt;br /&gt;
|OID=1.3.6.1.4.1.250.1.57&lt;br /&gt;
|description=Felhasználóhoz tartozó URI-k&lt;br /&gt;
|semantics=A felhasználó által megadott, vagy rá valamilyen formában jellemző URI-k (gyakran URL-ek) gyűjteménye, mint pl. a személyes honlapjának címe. Minden azonosítóhoz opcionálisan kapcsolható szöveges leírás.&lt;br /&gt;
|values=Az URL-t urlencode-olva kell tárolni (RFC 2079).&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|example=&lt;br /&gt;
*http://example.com/%7Euser/foo Foo page&lt;br /&gt;
*ftp://ftp.example.com&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Felhasználó és az intézmény viszonyát leíró attribútumok ===&lt;br /&gt;
&lt;br /&gt;
==== eduPersonScopedAffiliation ====&lt;br /&gt;
{{AttributeDef|name=eduPersonScopedAffiliation&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonScopedAffiliation&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.9&lt;br /&gt;
|description=Felhasználó és intézmény közti viszony leírása&lt;br /&gt;
|implementation=mandatory&lt;br /&gt;
|semantics=&lt;br /&gt;
'''&amp;lt;viszony&amp;gt;@&amp;lt;scope&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;viszony&amp;gt;''': a felhasználó és az intézmény közti viszony leírására az alábbi értékek választhatók&lt;br /&gt;
** ''student'': intézmény hallgatója&lt;br /&gt;
** ''faculty'': oktatási tevékenységet végez az intézményben &lt;br /&gt;
** ''staff'': nem oktatási tevékenységet végző alkalmazott (pl. a rendszergazda és a kertész is)&lt;br /&gt;
** ''employee'': alkalmazott (használata intézmények között nem javasolt)&lt;br /&gt;
** ''member'': azok a felhasználók, amelyek azáltal, hogy azonosította őket az IdP, rendelkeznek intézményhez kötődő általános jogosultságokkal. Jellemzően ide sorolhatók a ''student'', ''faculty'', ''staff'' viszonnyal rendelkezők.&lt;br /&gt;
** ''affiliate'': az intézmény azonosítja őket, de nem rendelkeznek általános jogosultságokkal&lt;br /&gt;
** ''alum'': öregdiák&lt;br /&gt;
** ''library-walk-in'': könyvtári tag&lt;br /&gt;
{{NOTE | lehetséges, hogy a föderációban használható értékek körét a későbbiekben szűkíteni fogjuk}}&lt;br /&gt;
* '''&amp;lt;scope&amp;gt;''': helyi biztonsági tartomány. A végződése kötelezően egy DNS domain, amely az IdP-t üzemeltető intézmény tulajdonában áll.&lt;br /&gt;
&lt;br /&gt;
Lásd még: http://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201310.html#eduPersonAffiliation &lt;br /&gt;
&lt;br /&gt;
[[EduPersonAffiliation|Egy lehetséges vizuális ábrázolás]], azonban a halmazok pontos meghatározása az intézmény feladata. &lt;br /&gt;
|assurer=inst&lt;br /&gt;
|values=A következő értékek egyike: {student,faculty,staff,employee,member,affiliate,alum,library-walk-in}, valamint a [[Scope|scope]]&lt;br /&gt;
|example= &lt;br /&gt;
* Hallgatók: ''student@example.org;member@example.org''&lt;br /&gt;
* Oktatók: ''faculty@example.org;employee@example.org;member@example.org''&lt;br /&gt;
* Nem alkalmazott oktató-hallgatók: ''student@example.org;faculty@example.org;member@example.org''&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonEntitlement ====&lt;br /&gt;
{{AttributeDef|name=eduPersonEntitlement&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonEntitlement&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.7&lt;br /&gt;
|implementation=recommended&lt;br /&gt;
|semantics=Azon erőforrások listája, melyet a felhasználó használhat. Sok erőforrást minden felhasználó elérhet, néhányat csak korlátozott kör - ez utóbbi esetben válik fontossá ez az attribútum&lt;br /&gt;
&lt;br /&gt;
{{INFO|Az eduPersonEntitlement attribútumnak csak azon értékeit szabad kiadni az SP-nek, amelyek rá vonatkoznak. Ennek meghatározása kézi adminisztráció esetén igen nehéz lehet, ezért erre célszerű valamilyen adminisztrációs felületet használni. (Sajnos jelenleg nem létezik ilyen alkalmazás.)}}&lt;br /&gt;
|description=A felhasználó által jogosan használt erőforrás(ok)&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=urn:geant:niif.hu:niif:entitlement:vhoadmin&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== schacHomeOrganizationType ====&lt;br /&gt;
{{AttributeDef|name=schacHomeOrganizationType&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:schacHomeOrganizationType&lt;br /&gt;
|OID=1.3.6.1.4.1.25178.1.2.10&lt;br /&gt;
|values=urn:schac:homeOrganizationType:hu:{university,nren,library,vho,school,business,other,test}&lt;br /&gt;
|implementation=mandatory&lt;br /&gt;
|description=Az intézmény jellege&lt;br /&gt;
|semantics=&lt;br /&gt;
* '''university''': Az Oktatási Minisztérium által elismert felsőoktatási intézmények (egyetemek és főiskolák)&lt;br /&gt;
* '''nren''': Nemzeti kutatási és felsőoktatási kutatói hálózat szolgáltatója&lt;br /&gt;
* '''library''': Könyvtárak&lt;br /&gt;
* '''vho''':  Virtuális azonosító szervezet egyének föderációs azonosítása céljára&lt;br /&gt;
* '''school''': Általános és középiskolák&lt;br /&gt;
* '''business''': Ipari vagy kereskedelmi intézmények&lt;br /&gt;
* '''other''': Egyéb&lt;br /&gt;
* '''test''': Teszt felhasználóról van szó&lt;br /&gt;
|numOfValues=single&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|syntax=URN&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== ou ====&lt;br /&gt;
{{AttributeDef|name=ou&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:ou&lt;br /&gt;
|OID=2.5.4.11&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=Az intézményen belüli egység teljes neve (organizationalUnit)&lt;br /&gt;
|semantics=Azon egység (tanszék, intézet, könyvtár, stb) neve, amelyhez a felhasználó tartozik.&lt;br /&gt;
|example=Automatizálási és alkalmazott informatikai tanszék&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonOrgUnitDN ====&lt;br /&gt;
{{AttributeDef|name=eduPersonOrgUnitDN&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonOrgUnitDN&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.4&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=A felhasználóhoz tartozó szervezeti egység azonosítója&lt;br /&gt;
|semantics=A felhasználóhoz tartozó szervezeti egység (pl. tanszék, intézet, könyvtár, ...) intézményen belüli egyedi, esetleg hierarchikusan képzett azonosítója.&lt;br /&gt;
Amennyiben az adott felhasználó több egységhez is besorolható, ez az attribútum több értéket is tartalmazhat.&lt;br /&gt;
|syntax=DN&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=&lt;br /&gt;
* ou=VIK,ou=Units,o=BME,c=hu&lt;br /&gt;
* ou=AAIT,ou=VIK,ou=Units,o=BME,c=hu&lt;br /&gt;
* ou=MIT,ou=VIK,ou=Units,o=BME,c=hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== eduPersonPrimaryOrgUnitDN ====&lt;br /&gt;
{{AttributeDef|name=eduPersonPrimaryOrgUnitDN&lt;br /&gt;
|URI=urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN&lt;br /&gt;
|OID=1.3.6.1.4.1.5923.1.1.1.8&lt;br /&gt;
|description=A felhasználóhoz hozzárendelhető elsődleges szervezeti egység azonosítója.&lt;br /&gt;
|semantics=Az [[#eduPersonOrgUnitDN]]-ben tárolt egység-azonosítók közül azon elem, amelyhez a felhasználó elsődlegesen köthető.&lt;br /&gt;
|values=Egy olyan azonosító, mely szerepel az [[#eduPersonOrgUnitDN]] értékei között.&lt;br /&gt;
|syntax=DN&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=ou=AAIT,ou=VIK,ou=Units,o=BME,c=hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Oktatásban használt attribútumok ===&lt;br /&gt;
==== niifEduPersonAttendedCourse ====&lt;br /&gt;
{{AttributeDef|name=niifPersonAttendedCourse&lt;br /&gt;
|URI=urn:geant:niif.hu:dir:attribute-def:niifEduPersonAttendedCourse&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.164&lt;br /&gt;
|description=Felhasználó által hallgatott tárgy kódja&lt;br /&gt;
|semantics=Azon tantárgyak kódja, amelyet a felhasználó az adott félévben hallgat. &lt;br /&gt;
&lt;br /&gt;
Oktatási intézmény esetén JAVASOLT az attribútumot implementálni és az intézményen belüli SP-k számára kiadni. Adatvédelmi szempontból JAVASOLT az értékeket úgy szűrni, hogy az SP csak a számára releváns tárgyak kódját kapja meg.&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|values=A tanulmányi rendszerben meghatározott tantárgykódok&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=&lt;br /&gt;
*VIMM1234&lt;br /&gt;
*VIMA4321&lt;br /&gt;
}}&lt;br /&gt;
==== niifEduPersonArchiveCourse ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonArchiveCourse&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.171&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=A felhasználó által valaha hallgatott kurzusok&lt;br /&gt;
|values=A tanulmányi rendszerben meghatározott tantárgykódok&lt;br /&gt;
|semantics=Azon tantárgyak kódja, amelyet a felhasználó valaha hallgatott az adott intézményben.&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifEduPersonHeldCourse ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonHeldCourse&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.172&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|description=A felhasználó által aktuálisan oktatott tárgyak&lt;br /&gt;
|values=A tanulmányi rendszerben meghatározott tantárgykódok&lt;br /&gt;
|semantics=Azon tantárgyak kódja, amelyet a felhasználó az adott félévben (esetleg előző félévben) oktatott.&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifEduPersonMajor ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonMajor&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.162&lt;br /&gt;
|description=A hallgató főszakja&lt;br /&gt;
|semantics=A hallgató főszakja - a [[http://web.mab.hu/joomla/index.php?option=com_content&amp;amp;view=article&amp;amp;id=87&amp;amp;Itemid=623&amp;amp;lang=hu mab.hu ]] oldalán található lista alapján&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=&lt;br /&gt;
* műszaki informatikus mérnök&lt;br /&gt;
* elméleti fizikus&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifEduPersonFaculty ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonFaculty&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.160&lt;br /&gt;
|description=Kar neve&lt;br /&gt;
|semantics=Teljes neve annak a karnak, amelyhez a hallgató tartozik&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example=Villamosmérnöki és Informatikai Kar&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== niifEduPersonFacultyDN ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonFacultyDN&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.161&lt;br /&gt;
|description=A hallgató karának DN-je&lt;br /&gt;
|semantics=Annak a karnak a DN-je, amelyhez a hallgató tartozik. Ajánlott a kezdőpont alatt található &amp;lt;code&amp;gt;ou=Units&amp;lt;/code&amp;gt; alá tenni az egyes karokat (lásd [[#eduPersonOrgUnitDN]])&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|syntax=DN&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
|example= ou=VIK,ou=Units,o=BME,c=hu&lt;br /&gt;
}}&lt;br /&gt;
==== niifEduPersonStudentCategory ====&lt;br /&gt;
{{AttributeDef|name=niifEduPersonStudentCategory&lt;br /&gt;
|OID=1.3.6.1.4.1.11914.0.1.174&lt;br /&gt;
|description=Tanuló/hallgató képzési szintjének meghatározása&lt;br /&gt;
|semantics=A hallgató képzési szintjének pontosabb meghatározása (az [[#eduPersonScopedAffiliation|eduPersonScopedAffiliation]] kiegészítése)&lt;br /&gt;
* '''bachelor''': bachelor képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)&lt;br /&gt;
* '''master''': master képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)&lt;br /&gt;
* '''doctor''': doktori képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)&lt;br /&gt;
* '''exchange-student''': vendéghallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)&lt;br /&gt;
* '''qualifying-studies''': előkészítős hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: member)&lt;br /&gt;
* '''open-university''': nyílt egyetemi képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: affiliate)&lt;br /&gt;
&lt;br /&gt;
Ha egy hallgató nem sorolható be egyik kategóriába sem (pl. nem bolognai rendszer szerint tanul), akkor az attribútum ne kapjon értéket!&lt;br /&gt;
|implementation=optional&lt;br /&gt;
|syntax=Directory String&lt;br /&gt;
|numOfValues=multi&lt;br /&gt;
|assurer=inst&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3432</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3432"/>
				<updated>2015-11-02T13:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Fontos tudnivaló Discovery Service használattal kapcsolatban */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX kiszolgálás a HREF-ben ==&lt;br /&gt;
Két MDX forrást üzemeltetünk:&lt;br /&gt;
&lt;br /&gt;
* http://mdx.eduid.hu - ezen keresztül az éles föderációs metadatában és az edugainben szereplő entitások metaadatai kérdezhetők le&lt;br /&gt;
* http://entities.eduid.hu - ezen keresztül az összes, beleértve a tesztentitásokat is&lt;br /&gt;
&lt;br /&gt;
Mindkét kiszolgáló ugyanazzal a kulccsal írja alá a lekért metaadat-állományt. &lt;br /&gt;
* A tanúsítvány letölthető innen: http://metadata.eduid.hu/current/mdx-test-signer-2015.crt &lt;br /&gt;
* SHA-1 lenyomata: &amp;lt;code&amp;gt;91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=== Fontos tudnivaló Discovery Service használattal kapcsolatban ===&lt;br /&gt;
Lévén az MDX-et használó SP-knél nem áll rendelkezésre folyamatosan az összes potenciális IdP listája, így a beépített Discovery Service-ek nem működnek. Ha MDX-et használunk, akkor párhuzamosan valamilyen külső Discvery Service-t kell használnunk. A HREF-ben a https://discovery.eduid.hu a központi Discovery Service. &lt;br /&gt;
&lt;br /&gt;
(De &amp;quot;titkos lehetőségként&amp;quot; maga az MDX kiszolgáló is biztosít Discovery Service felületet, ehhez akár Shibboleth SP-nél, akár simpleSAMLphp SP-nél a konfigurációban az alábbi URL-t kell megadni, mint Discovery Service: http://{mdx,entities}.eduid.hu/role/idp.ds )&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* A &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3431</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3431"/>
				<updated>2015-11-02T13:44:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX kiszolgálás a HREF-ben ==&lt;br /&gt;
Két MDX forrást üzemeltetünk:&lt;br /&gt;
&lt;br /&gt;
* http://mdx.eduid.hu - ezen keresztül az éles föderációs metadatában és az edugainben szereplő entitások metaadatai kérdezhetők le&lt;br /&gt;
* http://entities.eduid.hu - ezen keresztül az összes, beleértve a tesztentitásokat is&lt;br /&gt;
&lt;br /&gt;
Mindkét kiszolgáló ugyanazzal a kulccsal írja alá a lekért metaadat-állományt. &lt;br /&gt;
* A tanúsítvány letölthető innen: http://metadata.eduid.hu/current/mdx-test-signer-2015.crt &lt;br /&gt;
* SHA-1 lenyomata: &amp;lt;code&amp;gt;91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43&amp;lt;/code&amp;gt; . &lt;br /&gt;
&lt;br /&gt;
=== Fontos tudnivaló Discovery Service használattal kapcsolatban ===&lt;br /&gt;
Lévén az MDX-et használó SP-knél nem áll rendelkezésre folyamatosan az összes potenciális IdP listája, így a beépített Discovery Service-ek nem működnek. Ha MDX-et használunk, akkor párhuzamosan valamilyen külső Discvery Service-t kell használnunk. A HREF-ben a https://discovery.eduid.hu a központi Discovery Service.&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* A &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3426</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3426"/>
				<updated>2015-10-29T08:41:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Shibboleth SP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* A &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3425</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3425"/>
				<updated>2015-10-29T08:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crtt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
&lt;br /&gt;
* Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
* A &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3424</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3424"/>
				<updated>2015-10-29T08:18:43Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
1. Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
2. Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crtt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
1. Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
2. a &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3423</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3423"/>
				<updated>2015-10-29T08:18:20Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth SP ===&lt;br /&gt;
1. Le kell tölteni a /etc/shibboleth alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
2. Az alábbi blokkot be kell szúrni a &amp;lt;code&amp;gt;/etc/shibboleth/shibboleth2.xml&amp;lt;/code&amp;gt; fájlba&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MetadataProvider type=&amp;quot;Dynamic&amp;quot; ignoreTransport=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Subst&amp;gt;http://mdx.eduid.hu/entities/$entityID&amp;lt;/Subst&amp;gt;&lt;br /&gt;
      &amp;lt;MetadataFilter type=&amp;quot;Signature&amp;quot; certificate=&amp;quot;mdx-test-signer-2015.crtt&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shibboleth IdPv3 ===&lt;br /&gt;
1. Le kell tölteni a &amp;lt;code&amp;gt;${idp.home}/credentials/&amp;lt;/code&amp;gt; alá az aláíró tanúsítványát innen: http://metadata.eduid.hu/mdx-test-signer-2015.crt&lt;br /&gt;
2. a &amp;lt;code&amp;gt;conf/metadata-providers.xml&amp;lt;/code&amp;gt; fájlt kell szerkeszteni az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;MetadataProvider&lt;br /&gt;
     xmlns=&amp;quot;urn:mace:shibboleth:2.0:metadata&amp;quot;&lt;br /&gt;
     xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
     xsi:schemaLocation=&amp;quot;urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd&amp;quot;&lt;br /&gt;
     id=&amp;quot;dynamicMDQ&amp;quot; xsi:type=&amp;quot;DynamicHTTPMetadataProvider&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;!--&lt;br /&gt;
       Require a validUntil XML attribute on the EntityDescriptor element&lt;br /&gt;
       and make sure its value is no more than 14 days into the future&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;RequiredValidUntil&amp;quot; maxValidityInterval=&amp;quot;P14D&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- Verify the signature on the metadata file --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataFilter xsi:type=&amp;quot;SignatureValidation&amp;quot; requireSignedMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;
         certificateFile=&amp;quot;${idp.home}/credentials/mdx-signer.crt&amp;quot; /&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;lt;!-- The MetadataQueryProtocol element specifies the base URL for the query protocol. --&amp;gt;&lt;br /&gt;
     &amp;lt;MetadataQueryProtocol&amp;gt;http://mdx.eduid.hu/&amp;lt;/MetadataQueryProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/MetadataProvider&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MDX&amp;diff=3422</id>
		<title>MDX</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MDX&amp;diff=3422"/>
				<updated>2015-10-29T08:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Új oldal, tartalma: „Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlo…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). Az MDX kiszolgáló az alábbi szabvány szerint tudja visszaadni egy-egy entitás metaadatát: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/{urlencoded}$entityID&amp;lt;/code&amp;gt;, pl: &amp;lt;code&amp;gt;http://mdx.eduid.hu/entities/https%3A%2F%2Fdev.aai.niif.hu%2Fshibboleth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MDX használata kliens oldalon ==&lt;br /&gt;
=== SimpleSAMLphp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Az 1.14-es kiadású SimpleSAMLphp-ban lesz benne, mint kiadásban, de a legfrissebb, githubról letölthető változatban már benne van. Ezt kell használnunk, ha szeretnénk, hogy az üzemeltetett SimpleSAMLphp-nk MDX-es metadataforrásból dolgozzon.config/config.php metadatás részében kell elvégezni a beállításokat az alábbi módon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
'metadata.sources' =&amp;gt; array(&lt;br /&gt;
     array(&lt;br /&gt;
         'type' =&amp;gt; 'mdx',&lt;br /&gt;
         'server' =&amp;gt; 'http://mdx.eduid.hu',&lt;br /&gt;
         'cachedir' =&amp;gt; '/var/simplesamlphp/mdx-cache', //opcionális, de ajánlott&lt;br /&gt;
         'cachelength' =&amp;gt; 86400, //opcionális,&lt;br /&gt;
         'validateFingerprint' =&amp;gt; '91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43' //opcionális     &lt;br /&gt;
      )&lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3421</id>
		<title>HREF metadata specifikáció</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3421"/>
				<updated>2015-10-29T08:03:56Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.&lt;br /&gt;
&lt;br /&gt;
= Biztonsági megfontolások =&lt;br /&gt;
Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:&lt;br /&gt;
&lt;br /&gt;
* Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (&amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;) idejével, '''amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)'''&lt;br /&gt;
* Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt; paraméterében meghatározott ideig) tart.&lt;br /&gt;
* Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.&lt;br /&gt;
&lt;br /&gt;
= Metaadatban tárolt információk =&lt;br /&gt;
* Bizalom a metaadatban&lt;br /&gt;
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.&lt;br /&gt;
** a metaadat visszavonhatóságát a lejárati idő (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt;) biztosítja, ami jelenleg 3 nap.&lt;br /&gt;
** az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.&lt;br /&gt;
** az aláírási procedúrát a [[#Metaadat_aláírásának_módja]] fejezet írja le.&lt;br /&gt;
* Tanúsítványok&lt;br /&gt;
** kötelező legalább 1024 bites kulcspárt használni&lt;br /&gt;
** az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata&lt;br /&gt;
* További információk&lt;br /&gt;
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni&lt;br /&gt;
** kötelezően kitöltendőek az intézményi, adminisztratív információk (&amp;lt;code&amp;gt;Organization&amp;lt;/code&amp;gt; illetve &amp;lt;code&amp;gt;ContactPerson&amp;lt;/code&amp;gt; elemek)&lt;br /&gt;
** ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (&amp;lt;code&amp;gt;errorURL&amp;lt;/code&amp;gt; attribútum)&lt;br /&gt;
** SP-k esetén további kötelező elemek&lt;br /&gt;
*** &amp;lt;code&amp;gt;AttributeConsumingService&amp;lt;/code&amp;gt;, ami megadja a kért attribútumokat&lt;br /&gt;
**** &amp;lt;code&amp;gt;RequestedAttributes&amp;lt;/code&amp;gt; - itt az attribútum informális neve is szerepeljen&lt;br /&gt;
**** &amp;lt;code&amp;gt;ServiceName&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ServiceDescription&amp;lt;/code&amp;gt; az SP szolgáltatás neve és leírása&lt;br /&gt;
*** a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)&lt;br /&gt;
*** adatkezelési szabályzatra mutató URL (extension)&lt;br /&gt;
** IdP-k esetén&lt;br /&gt;
*** a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)&lt;br /&gt;
** lehetőség van további adatok megadására is&lt;br /&gt;
*** logó&lt;br /&gt;
*** gps koordináták, IP cím tartomány&lt;br /&gt;
*** különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e&lt;br /&gt;
&lt;br /&gt;
== Metaadat kiterjesztések használata ==&lt;br /&gt;
Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható [http://wiki.oasis-open.org/security/SAML2MetadataUI itt].&lt;br /&gt;
&lt;br /&gt;
A kiegészítő séma névtere: &amp;lt;code&amp;gt;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;lt;/code&amp;gt;. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! element név&lt;br /&gt;
! szemantika&lt;br /&gt;
! értékekre vonatkozó megkötések&lt;br /&gt;
|-&lt;br /&gt;
| GeolocationHint&lt;br /&gt;
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli&lt;br /&gt;
| 47.47359,19.052891&lt;br /&gt;
|-&lt;br /&gt;
| InformationURL&lt;br /&gt;
| az entitásról további információkat (pl. helpdesk) szolgáltató oldal.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PrivacyStatementURL&lt;br /&gt;
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)&lt;br /&gt;
| Engedélyezett formátumok: HTML, PDF&lt;br /&gt;
|-&lt;br /&gt;
| Logo&lt;br /&gt;
| Az IdP/SP logójának elérhetősége&lt;br /&gt;
| Formátummal kapcsolatban lásd [[#Logo]]&lt;br /&gt;
|-&lt;br /&gt;
| IPHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| CIDR, több érték is megadható&lt;br /&gt;
|-&lt;br /&gt;
| DomainHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| Több érték is megadható &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logo ===&lt;br /&gt;
* formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre&lt;br /&gt;
* méretezés&lt;br /&gt;
** javasolt oldalarány 1:1 vagy 16:9&lt;br /&gt;
** maximális méret 200x200px&lt;br /&gt;
** ajánlott egy 16x16px-es verziót is megadni &lt;br /&gt;
* attribútumok&lt;br /&gt;
** &amp;lt;code&amp;gt;xml:lang&amp;lt;/code&amp;gt;: lokalizációs információ&lt;br /&gt;
** &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt;: opcionális link&lt;br /&gt;
** &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;: opcionális magasság érték pixelben&lt;br /&gt;
** &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;: opcionális szélesség érték pixelben&lt;br /&gt;
&lt;br /&gt;
== Egy IdP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://idp.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;IDPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;shibmd:Scope&amp;gt;niif.hu&amp;lt;/shibmd:Scope&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:DiscoHints xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:GeolocationHint&amp;gt;47.518356,19.055437&amp;lt;/mdui:GeolocationHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;niif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;iif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:DiscoHints&amp;gt;&lt;br /&gt;
   &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
   &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
      &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
     &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
   &amp;lt;!-- endpoints, nameidformats --&amp;gt;&lt;br /&gt;
   &amp;lt;/IDPSSODescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Egy SP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://rr.aai.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:UIInfo xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:PrivacyStatementURL&amp;gt;https://rr.aai.niif.hu/privacy-policy&amp;lt;/mdui:PrivacyStatementURL&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:InformationURL&amp;gt;https://rr.aai.niif.hu/about&amp;lt;/mdui:InformationURL&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:UIInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;encryption&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;!-- endpoints --&amp;gt;&lt;br /&gt;
  &amp;lt;AttributeConsumingService index=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;en&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;hu&amp;quot;&amp;gt;Resource Registry - a föderáció adminisztrációs alkalmazása http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;en&amp;quot;&amp;gt;Resource Registry - federation administration tool http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;mail&amp;quot; Name=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;surname&amp;quot; Name=&amp;quot;urn:oid:2.5.4.4&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;givenName&amp;quot; Name=&amp;quot;urn:oid:2.5.4.42&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonPrincipalName&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.6&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;schacHomeOrganizationType&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.25178.1.2.10&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonScopedAffiliation&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.9&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/AttributeConsumingService&amp;gt;&lt;br /&gt;
 &amp;lt;/SPSSODescriptor&amp;gt;&lt;br /&gt;
 &amp;lt;Organization&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;hu&amp;quot;&amp;gt;http://www.niif.hu&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;en&amp;quot;&amp;gt;http://www.niif.hu/en&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
 &amp;lt;/Organization&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Metaadat aláírásának módja =&lt;br /&gt;
== Aláíró kulcs és tanúsítványok ==&lt;br /&gt;
* Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.&lt;br /&gt;
* Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).&lt;br /&gt;
&lt;br /&gt;
== Aláírási folyamat ==&lt;br /&gt;
* Aláíratlan metaadat frissítése&lt;br /&gt;
** az aláíratlan metaadat a https://rr.aai.niif.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.aai.niif.hu tanúsítványa explicit módon ellenőrzésre kerül.&lt;br /&gt;
** a letöltött metaadat formai ellenőrzése&lt;br /&gt;
** az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül ([https://listserv.niif.hu/mailman/listinfo/href-metadata-changes href-metadata-changes] nevű levelezőlistára)&lt;br /&gt;
* Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít&lt;br /&gt;
** amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek&lt;br /&gt;
&lt;br /&gt;
== Aláírás ellenőrzése explicit tanúsítvánnyal ==&lt;br /&gt;
A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg. &lt;br /&gt;
* Az explicit ellenőrzés esetén a &amp;lt;code&amp;gt;http://metadata.eduid.hu/current/&amp;lt;/code&amp;gt; URL-ről kell letölteni a metadata fájlokat.&lt;br /&gt;
* A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.&lt;br /&gt;
** DN-je &amp;lt;code&amp;gt;EMAILADDRESS=aai@niif.hu, CN=Metadata Signer, OU=eduID Federation Operator, O=NIIF Institute, C=HU&amp;lt;/code&amp;gt;&lt;br /&gt;
** SHA-1 &amp;lt;code&amp;gt;FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.&lt;br /&gt;
* A tanúsítványcsere koordinálása out-of-band módszerrel történik (a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlista segítségével).&lt;br /&gt;
&lt;br /&gt;
== Aláíró kulcs cseréje ==&lt;br /&gt;
* A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.&lt;br /&gt;
* A kulccsere koordinálása a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlistán keresztül történik.&lt;br /&gt;
* Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.&lt;br /&gt;
&lt;br /&gt;
= Metaadat elérése =&lt;br /&gt;
A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.&lt;br /&gt;
&lt;br /&gt;
A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:&lt;br /&gt;
* &amp;lt;code&amp;gt;href.xml&amp;lt;/code&amp;gt;: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások&lt;br /&gt;
* &amp;lt;code&amp;gt;href-test.xml&amp;lt;/code&amp;gt;: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.&lt;br /&gt;
* &amp;lt;code&amp;gt;href-edugain.xml&amp;lt;/code&amp;gt;: a HREF föderációból az [http://edugain.org eduGAIN] konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az [http://edugain.org eduGAIN] konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.&lt;br /&gt;
* &amp;lt;code&amp;gt;edugain.xml&amp;lt;/code&amp;gt;: az [http://edugain.org eduGAIN] konföderáció metaadata, a HREF aláíró kulccsal aláírva.&lt;br /&gt;
* intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.&lt;br /&gt;
&lt;br /&gt;
== MDX-alapú elérés ==&lt;br /&gt;
Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). &lt;br /&gt;
&lt;br /&gt;
A HREF föderációban teszt jelleggel működik és elérhető MDX-kiszolgáló: &amp;lt;code&amp;gt;http://mdx.eduid.hu&amp;lt;/code&amp;gt;. A megfelelő beállításokhoz [[MDX|itt]] érhető el segédlet.&lt;br /&gt;
&lt;br /&gt;
Az MDX kiszolgáló eltérő (nem fizikai) kulcsot és tanúsítványt használ. Ennek SHA-1 lenyomata:  &amp;lt;code&amp;gt;91:81:AD:2B:F1:C1:4E:47:93:A2:9D:49:34:B7:77:62:4F:2F:98:43&amp;lt;/code&amp;gt;. Jelenleg (2015. október) az MDX elérés még csak teszt jelleggel működik, az élesüzemre váltáskor a kulcs és a tanúsítvány változni fog. A jelenlegi tanúsítvány innen tölthető le: &amp;lt;code&amp;gt;http://metadata.eduid.hu/current/mdx-test-signer-2015.crt&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3420</id>
		<title>HREF metadata specifikáció</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3420"/>
				<updated>2015-10-29T07:58:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* MDX alapú elérése */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.&lt;br /&gt;
&lt;br /&gt;
= Biztonsági megfontolások =&lt;br /&gt;
Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:&lt;br /&gt;
&lt;br /&gt;
* Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (&amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;) idejével, '''amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)'''&lt;br /&gt;
* Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt; paraméterében meghatározott ideig) tart.&lt;br /&gt;
* Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.&lt;br /&gt;
&lt;br /&gt;
= Metaadatban tárolt információk =&lt;br /&gt;
* Bizalom a metaadatban&lt;br /&gt;
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.&lt;br /&gt;
** a metaadat visszavonhatóságát a lejárati idő (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt;) biztosítja, ami jelenleg 3 nap.&lt;br /&gt;
** az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.&lt;br /&gt;
** az aláírási procedúrát a [[#Metaadat_aláírásának_módja]] fejezet írja le.&lt;br /&gt;
* Tanúsítványok&lt;br /&gt;
** kötelező legalább 1024 bites kulcspárt használni&lt;br /&gt;
** az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata&lt;br /&gt;
* További információk&lt;br /&gt;
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni&lt;br /&gt;
** kötelezően kitöltendőek az intézményi, adminisztratív információk (&amp;lt;code&amp;gt;Organization&amp;lt;/code&amp;gt; illetve &amp;lt;code&amp;gt;ContactPerson&amp;lt;/code&amp;gt; elemek)&lt;br /&gt;
** ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (&amp;lt;code&amp;gt;errorURL&amp;lt;/code&amp;gt; attribútum)&lt;br /&gt;
** SP-k esetén további kötelező elemek&lt;br /&gt;
*** &amp;lt;code&amp;gt;AttributeConsumingService&amp;lt;/code&amp;gt;, ami megadja a kért attribútumokat&lt;br /&gt;
**** &amp;lt;code&amp;gt;RequestedAttributes&amp;lt;/code&amp;gt; - itt az attribútum informális neve is szerepeljen&lt;br /&gt;
**** &amp;lt;code&amp;gt;ServiceName&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ServiceDescription&amp;lt;/code&amp;gt; az SP szolgáltatás neve és leírása&lt;br /&gt;
*** a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)&lt;br /&gt;
*** adatkezelési szabályzatra mutató URL (extension)&lt;br /&gt;
** IdP-k esetén&lt;br /&gt;
*** a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)&lt;br /&gt;
** lehetőség van további adatok megadására is&lt;br /&gt;
*** logó&lt;br /&gt;
*** gps koordináták, IP cím tartomány&lt;br /&gt;
*** különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e&lt;br /&gt;
&lt;br /&gt;
== Metaadat kiterjesztések használata ==&lt;br /&gt;
Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható [http://wiki.oasis-open.org/security/SAML2MetadataUI itt].&lt;br /&gt;
&lt;br /&gt;
A kiegészítő séma névtere: &amp;lt;code&amp;gt;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;lt;/code&amp;gt;. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! element név&lt;br /&gt;
! szemantika&lt;br /&gt;
! értékekre vonatkozó megkötések&lt;br /&gt;
|-&lt;br /&gt;
| GeolocationHint&lt;br /&gt;
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli&lt;br /&gt;
| 47.47359,19.052891&lt;br /&gt;
|-&lt;br /&gt;
| InformationURL&lt;br /&gt;
| az entitásról további információkat (pl. helpdesk) szolgáltató oldal.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PrivacyStatementURL&lt;br /&gt;
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)&lt;br /&gt;
| Engedélyezett formátumok: HTML, PDF&lt;br /&gt;
|-&lt;br /&gt;
| Logo&lt;br /&gt;
| Az IdP/SP logójának elérhetősége&lt;br /&gt;
| Formátummal kapcsolatban lásd [[#Logo]]&lt;br /&gt;
|-&lt;br /&gt;
| IPHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| CIDR, több érték is megadható&lt;br /&gt;
|-&lt;br /&gt;
| DomainHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| Több érték is megadható &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logo ===&lt;br /&gt;
* formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre&lt;br /&gt;
* méretezés&lt;br /&gt;
** javasolt oldalarány 1:1 vagy 16:9&lt;br /&gt;
** maximális méret 200x200px&lt;br /&gt;
** ajánlott egy 16x16px-es verziót is megadni &lt;br /&gt;
* attribútumok&lt;br /&gt;
** &amp;lt;code&amp;gt;xml:lang&amp;lt;/code&amp;gt;: lokalizációs információ&lt;br /&gt;
** &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt;: opcionális link&lt;br /&gt;
** &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;: opcionális magasság érték pixelben&lt;br /&gt;
** &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;: opcionális szélesség érték pixelben&lt;br /&gt;
&lt;br /&gt;
== Egy IdP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://idp.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;IDPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;shibmd:Scope&amp;gt;niif.hu&amp;lt;/shibmd:Scope&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:DiscoHints xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:GeolocationHint&amp;gt;47.518356,19.055437&amp;lt;/mdui:GeolocationHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;niif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;iif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:DiscoHints&amp;gt;&lt;br /&gt;
   &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
   &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
      &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
     &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
   &amp;lt;!-- endpoints, nameidformats --&amp;gt;&lt;br /&gt;
   &amp;lt;/IDPSSODescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Egy SP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://rr.aai.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:UIInfo xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:PrivacyStatementURL&amp;gt;https://rr.aai.niif.hu/privacy-policy&amp;lt;/mdui:PrivacyStatementURL&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:InformationURL&amp;gt;https://rr.aai.niif.hu/about&amp;lt;/mdui:InformationURL&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:UIInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;encryption&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;!-- endpoints --&amp;gt;&lt;br /&gt;
  &amp;lt;AttributeConsumingService index=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;en&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;hu&amp;quot;&amp;gt;Resource Registry - a föderáció adminisztrációs alkalmazása http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;en&amp;quot;&amp;gt;Resource Registry - federation administration tool http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;mail&amp;quot; Name=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;surname&amp;quot; Name=&amp;quot;urn:oid:2.5.4.4&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;givenName&amp;quot; Name=&amp;quot;urn:oid:2.5.4.42&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonPrincipalName&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.6&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;schacHomeOrganizationType&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.25178.1.2.10&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonScopedAffiliation&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.9&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/AttributeConsumingService&amp;gt;&lt;br /&gt;
 &amp;lt;/SPSSODescriptor&amp;gt;&lt;br /&gt;
 &amp;lt;Organization&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;hu&amp;quot;&amp;gt;http://www.niif.hu&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;en&amp;quot;&amp;gt;http://www.niif.hu/en&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
 &amp;lt;/Organization&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Metaadat aláírásának módja =&lt;br /&gt;
== Aláíró kulcs és tanúsítványok ==&lt;br /&gt;
* Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.&lt;br /&gt;
* Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).&lt;br /&gt;
&lt;br /&gt;
== Aláírási folyamat ==&lt;br /&gt;
* Aláíratlan metaadat frissítése&lt;br /&gt;
** az aláíratlan metaadat a https://rr.aai.niif.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.aai.niif.hu tanúsítványa explicit módon ellenőrzésre kerül.&lt;br /&gt;
** a letöltött metaadat formai ellenőrzése&lt;br /&gt;
** az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül ([https://listserv.niif.hu/mailman/listinfo/href-metadata-changes href-metadata-changes] nevű levelezőlistára)&lt;br /&gt;
* Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít&lt;br /&gt;
** amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek&lt;br /&gt;
&lt;br /&gt;
== Aláírás ellenőrzése explicit tanúsítvánnyal ==&lt;br /&gt;
A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg. &lt;br /&gt;
* Az explicit ellenőrzés esetén a &amp;lt;code&amp;gt;http://metadata.eduid.hu/current/&amp;lt;/code&amp;gt; URL-ről kell letölteni a metadata fájlokat.&lt;br /&gt;
* A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.&lt;br /&gt;
** DN-je &amp;lt;code&amp;gt;EMAILADDRESS=aai@niif.hu, CN=Metadata Signer, OU=eduID Federation Operator, O=NIIF Institute, C=HU&amp;lt;/code&amp;gt;&lt;br /&gt;
** SHA-1 &amp;lt;code&amp;gt;FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.&lt;br /&gt;
* A tanúsítványcsere koordinálása out-of-band módszerrel történik (a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlista segítségével).&lt;br /&gt;
&lt;br /&gt;
== Aláíró kulcs cseréje ==&lt;br /&gt;
* A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.&lt;br /&gt;
* A kulccsere koordinálása a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlistán keresztül történik.&lt;br /&gt;
* Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.&lt;br /&gt;
&lt;br /&gt;
= Metaadat elérése =&lt;br /&gt;
A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.&lt;br /&gt;
&lt;br /&gt;
A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:&lt;br /&gt;
* &amp;lt;code&amp;gt;href.xml&amp;lt;/code&amp;gt;: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások&lt;br /&gt;
* &amp;lt;code&amp;gt;href-test.xml&amp;lt;/code&amp;gt;: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.&lt;br /&gt;
* &amp;lt;code&amp;gt;href-edugain.xml&amp;lt;/code&amp;gt;: a HREF föderációból az [http://edugain.org eduGAIN] konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az [http://edugain.org eduGAIN] konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.&lt;br /&gt;
* &amp;lt;code&amp;gt;edugain.xml&amp;lt;/code&amp;gt;: az [http://edugain.org eduGAIN] konföderáció metaadata, a HREF aláíró kulccsal aláírva.&lt;br /&gt;
* intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.&lt;br /&gt;
&lt;br /&gt;
== MDX-alapú elérés ==&lt;br /&gt;
Az MDX, azaz MetaDataeXchange protokolt erőforrás optimalizálás céljából találták ki, hogy ne kelljen egyes IdP-knek és SP-knek indokolatlanul nagy XML fájlokat feldolgozniuk és tárolniuk, mikor a felhasználóiknak jó eséllyel a fájlokban tárolt entitások töredékére van csak szükségük. Ezért az egyes entitásokat be lehet úgy állítani, hogy csak akkor töltsék le az adott entitás metaadatát, mikor arra szükség van (az első letöltés után természetesen helyben tároldóik a metaadat a &amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;-ben megadott ideig). &lt;br /&gt;
&lt;br /&gt;
A HREF föderációban teszt jelleggel működik és elérhető MDX-kiszolgáló: &amp;lt;code&amp;gt;http://mdx.eduid.hu&amp;lt;/code&amp;gt;. A megfelelő beállításokhoz [[MDX|itt]] érhető el segédlet.&lt;br /&gt;
&lt;br /&gt;
Az MDX kiszolgáló eltérő (nem fizikai) kulcsot és tanúsítványt használ.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3419</id>
		<title>HREF metadata specifikáció</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3419"/>
				<updated>2015-10-29T07:32:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Tanúsítványadatok frissítése&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.&lt;br /&gt;
&lt;br /&gt;
= Biztonsági megfontolások =&lt;br /&gt;
Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:&lt;br /&gt;
&lt;br /&gt;
* Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (&amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;) idejével, '''amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)'''&lt;br /&gt;
* Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt; paraméterében meghatározott ideig) tart.&lt;br /&gt;
* Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.&lt;br /&gt;
&lt;br /&gt;
= Metaadatban tárolt információk =&lt;br /&gt;
* Bizalom a metaadatban&lt;br /&gt;
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.&lt;br /&gt;
** a metaadat visszavonhatóságát a lejárati idő (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt;) biztosítja, ami jelenleg 3 nap.&lt;br /&gt;
** az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.&lt;br /&gt;
** az aláírási procedúrát a [[#Metaadat_aláírásának_módja]] fejezet írja le.&lt;br /&gt;
* Tanúsítványok&lt;br /&gt;
** kötelező legalább 1024 bites kulcspárt használni&lt;br /&gt;
** az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata&lt;br /&gt;
* További információk&lt;br /&gt;
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni&lt;br /&gt;
** kötelezően kitöltendőek az intézményi, adminisztratív információk (&amp;lt;code&amp;gt;Organization&amp;lt;/code&amp;gt; illetve &amp;lt;code&amp;gt;ContactPerson&amp;lt;/code&amp;gt; elemek)&lt;br /&gt;
** ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (&amp;lt;code&amp;gt;errorURL&amp;lt;/code&amp;gt; attribútum)&lt;br /&gt;
** SP-k esetén további kötelező elemek&lt;br /&gt;
*** &amp;lt;code&amp;gt;AttributeConsumingService&amp;lt;/code&amp;gt;, ami megadja a kért attribútumokat&lt;br /&gt;
**** &amp;lt;code&amp;gt;RequestedAttributes&amp;lt;/code&amp;gt; - itt az attribútum informális neve is szerepeljen&lt;br /&gt;
**** &amp;lt;code&amp;gt;ServiceName&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ServiceDescription&amp;lt;/code&amp;gt; az SP szolgáltatás neve és leírása&lt;br /&gt;
*** a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)&lt;br /&gt;
*** adatkezelési szabályzatra mutató URL (extension)&lt;br /&gt;
** IdP-k esetén&lt;br /&gt;
*** a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)&lt;br /&gt;
** lehetőség van további adatok megadására is&lt;br /&gt;
*** logó&lt;br /&gt;
*** gps koordináták, IP cím tartomány&lt;br /&gt;
*** különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e&lt;br /&gt;
&lt;br /&gt;
== Metaadat kiterjesztések használata ==&lt;br /&gt;
Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható [http://wiki.oasis-open.org/security/SAML2MetadataUI itt].&lt;br /&gt;
&lt;br /&gt;
A kiegészítő séma névtere: &amp;lt;code&amp;gt;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;lt;/code&amp;gt;. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! element név&lt;br /&gt;
! szemantika&lt;br /&gt;
! értékekre vonatkozó megkötések&lt;br /&gt;
|-&lt;br /&gt;
| GeolocationHint&lt;br /&gt;
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli&lt;br /&gt;
| 47.47359,19.052891&lt;br /&gt;
|-&lt;br /&gt;
| InformationURL&lt;br /&gt;
| az entitásról további információkat (pl. helpdesk) szolgáltató oldal.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PrivacyStatementURL&lt;br /&gt;
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)&lt;br /&gt;
| Engedélyezett formátumok: HTML, PDF&lt;br /&gt;
|-&lt;br /&gt;
| Logo&lt;br /&gt;
| Az IdP/SP logójának elérhetősége&lt;br /&gt;
| Formátummal kapcsolatban lásd [[#Logo]]&lt;br /&gt;
|-&lt;br /&gt;
| IPHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| CIDR, több érték is megadható&lt;br /&gt;
|-&lt;br /&gt;
| DomainHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| Több érték is megadható &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logo ===&lt;br /&gt;
* formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre&lt;br /&gt;
* méretezés&lt;br /&gt;
** javasolt oldalarány 1:1 vagy 16:9&lt;br /&gt;
** maximális méret 200x200px&lt;br /&gt;
** ajánlott egy 16x16px-es verziót is megadni &lt;br /&gt;
* attribútumok&lt;br /&gt;
** &amp;lt;code&amp;gt;xml:lang&amp;lt;/code&amp;gt;: lokalizációs információ&lt;br /&gt;
** &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt;: opcionális link&lt;br /&gt;
** &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;: opcionális magasság érték pixelben&lt;br /&gt;
** &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;: opcionális szélesség érték pixelben&lt;br /&gt;
&lt;br /&gt;
== Egy IdP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://idp.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;IDPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;shibmd:Scope&amp;gt;niif.hu&amp;lt;/shibmd:Scope&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:DiscoHints xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:GeolocationHint&amp;gt;47.518356,19.055437&amp;lt;/mdui:GeolocationHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;niif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;iif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:DiscoHints&amp;gt;&lt;br /&gt;
   &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
   &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
      &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
     &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
   &amp;lt;!-- endpoints, nameidformats --&amp;gt;&lt;br /&gt;
   &amp;lt;/IDPSSODescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Egy SP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://rr.aai.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:UIInfo xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:PrivacyStatementURL&amp;gt;https://rr.aai.niif.hu/privacy-policy&amp;lt;/mdui:PrivacyStatementURL&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:InformationURL&amp;gt;https://rr.aai.niif.hu/about&amp;lt;/mdui:InformationURL&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:UIInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;encryption&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;!-- endpoints --&amp;gt;&lt;br /&gt;
  &amp;lt;AttributeConsumingService index=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;en&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;hu&amp;quot;&amp;gt;Resource Registry - a föderáció adminisztrációs alkalmazása http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;en&amp;quot;&amp;gt;Resource Registry - federation administration tool http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;mail&amp;quot; Name=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;surname&amp;quot; Name=&amp;quot;urn:oid:2.5.4.4&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;givenName&amp;quot; Name=&amp;quot;urn:oid:2.5.4.42&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonPrincipalName&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.6&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;schacHomeOrganizationType&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.25178.1.2.10&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonScopedAffiliation&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.9&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/AttributeConsumingService&amp;gt;&lt;br /&gt;
 &amp;lt;/SPSSODescriptor&amp;gt;&lt;br /&gt;
 &amp;lt;Organization&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;hu&amp;quot;&amp;gt;http://www.niif.hu&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;en&amp;quot;&amp;gt;http://www.niif.hu/en&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
 &amp;lt;/Organization&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Metaadat aláírásának módja =&lt;br /&gt;
== Aláíró kulcs és tanúsítványok ==&lt;br /&gt;
* Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.&lt;br /&gt;
* Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).&lt;br /&gt;
&lt;br /&gt;
== Aláírási folyamat ==&lt;br /&gt;
* Aláíratlan metaadat frissítése&lt;br /&gt;
** az aláíratlan metaadat a https://rr.aai.niif.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.aai.niif.hu tanúsítványa explicit módon ellenőrzésre kerül.&lt;br /&gt;
** a letöltött metaadat formai ellenőrzése&lt;br /&gt;
** az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül ([https://listserv.niif.hu/mailman/listinfo/href-metadata-changes href-metadata-changes] nevű levelezőlistára)&lt;br /&gt;
* Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít&lt;br /&gt;
** amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek&lt;br /&gt;
&lt;br /&gt;
== Aláírás ellenőrzése explicit tanúsítvánnyal ==&lt;br /&gt;
A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg. &lt;br /&gt;
* Az explicit ellenőrzés esetén a &amp;lt;code&amp;gt;http://metadata.eduid.hu/current/&amp;lt;/code&amp;gt; URL-ről kell letölteni a metadata fájlokat.&lt;br /&gt;
* A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.&lt;br /&gt;
** DN-je &amp;lt;code&amp;gt;EMAILADDRESS=aai@niif.hu, CN=Metadata Signer, OU=eduID Federation Operator, O=NIIF Institute, C=HU&amp;lt;/code&amp;gt;&lt;br /&gt;
** SHA-1 &amp;lt;code&amp;gt;FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.&lt;br /&gt;
* A tanúsítványcsere koordinálása out-of-band módszerrel történik (a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlista segítségével).&lt;br /&gt;
&lt;br /&gt;
== Aláíró kulcs cseréje ==&lt;br /&gt;
* A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.&lt;br /&gt;
* A kulccsere koordinálása a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlistán keresztül történik.&lt;br /&gt;
* Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.&lt;br /&gt;
&lt;br /&gt;
= Metaadat elérése =&lt;br /&gt;
A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.&lt;br /&gt;
&lt;br /&gt;
A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:&lt;br /&gt;
* &amp;lt;code&amp;gt;href.xml&amp;lt;/code&amp;gt;: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások&lt;br /&gt;
* &amp;lt;code&amp;gt;href-test.xml&amp;lt;/code&amp;gt;: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.&lt;br /&gt;
* &amp;lt;code&amp;gt;href-edugain.xml&amp;lt;/code&amp;gt;: a HREF föderációból az [http://edugain.org eduGAIN] konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az [http://edugain.org eduGAIN] konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.&lt;br /&gt;
* &amp;lt;code&amp;gt;edugain.xml&amp;lt;/code&amp;gt;: az [http://edugain.org eduGAIN] konföderáció metaadata, a HREF aláíró kulccsal aláírva.&lt;br /&gt;
* intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3418</id>
		<title>HREF metadata specifikáció</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREF_metadata_specifik%C3%A1ci%C3%B3&amp;diff=3418"/>
				<updated>2015-10-29T07:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Metadata-nézetek már nincsenek és edugain-test metadata sincs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A föderációs metaadat célja, hogy a föderációban részt vevő intézmények illetve entitások technikai, bizalmi és adminisztratív adatait egy helyre gyűjtse. A metaadatok formátuma megfelel a SAML2 metaadat szabványnak.&lt;br /&gt;
&lt;br /&gt;
= Biztonsági megfontolások =&lt;br /&gt;
Mivel a metadata tartalmazza a föderációban részt vevő tagok és komponensek technikai információit, ezért a benne tárolt információkkal kapcsolatban figyelembe kell venni a következő biztonsági megfontolásokat:&lt;br /&gt;
&lt;br /&gt;
* Téves vagy kompromittálódott adatok eltávolítása esetén a sérülékenységi ablak megegyezik a metadata gyorstárazhatósági (&amp;lt;code&amp;gt;cacheDuration&amp;lt;/code&amp;gt;) idejével, '''amennyiben a támadó nem képes blokkolni a központi metaadatok elérhetőségét (DOS)'''&lt;br /&gt;
* Amennyiben a támadó képes blokkolni a központi metaadatok elérhetőségét, a sérülékenységi ablak a legutolsó letöltött metadata állomány érvényességéig (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt; paraméterében meghatározott ideig) tart.&lt;br /&gt;
* Amennyiben a metaadatok érvényességi ideje lejár, az entitás nem képes azonosítani a többi föderációs résztvevőt, ezért nem tud föderációs szolgáltatást (pl. IdP esetén azonosítási szolgáltatást) nyújtani.&lt;br /&gt;
&lt;br /&gt;
= Metaadatban tárolt információk =&lt;br /&gt;
* Bizalom a metaadatban&lt;br /&gt;
** a metaadat integritásvédelmét és hitelességét egy digitális aláírás biztosítja.&lt;br /&gt;
** a metaadat visszavonhatóságát a lejárati idő (&amp;lt;code&amp;gt;validUntil&amp;lt;/code&amp;gt;) biztosítja, ami jelenleg 3 nap.&lt;br /&gt;
** az egyes rendszerek gyorstárazhatják a metaadatot, de legalább naponta egyszer kötelesek a hiteles állományt frissíteni.&lt;br /&gt;
** az aláírási procedúrát a [[#Metaadat_aláírásának_módja]] fejezet írja le.&lt;br /&gt;
* Tanúsítványok&lt;br /&gt;
** kötelező legalább 1024 bites kulcspárt használni&lt;br /&gt;
** az entitások által használt tanúsítvánnyal kapcsolatban a föderáció nem tesz különleges megkötést, sőt: ajánlott hosszú lejáratú self-signed tanúsítványok használata&lt;br /&gt;
* További információk&lt;br /&gt;
** minden szöveges mezőt legalább két nyelven: magyarul és angolul ki kell tölteni&lt;br /&gt;
** kötelezően kitöltendőek az intézményi, adminisztratív információk (&amp;lt;code&amp;gt;Organization&amp;lt;/code&amp;gt; illetve &amp;lt;code&amp;gt;ContactPerson&amp;lt;/code&amp;gt; elemek)&lt;br /&gt;
** ajánlott megadni egy helpdesk URL-r, ahova hiba esetén a felhasználók fordulhatnak (&amp;lt;code&amp;gt;errorURL&amp;lt;/code&amp;gt; attribútum)&lt;br /&gt;
** SP-k esetén további kötelező elemek&lt;br /&gt;
*** &amp;lt;code&amp;gt;AttributeConsumingService&amp;lt;/code&amp;gt;, ami megadja a kért attribútumokat&lt;br /&gt;
**** &amp;lt;code&amp;gt;RequestedAttributes&amp;lt;/code&amp;gt; - itt az attribútum informális neve is szerepeljen&lt;br /&gt;
**** &amp;lt;code&amp;gt;ServiceName&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ServiceDescription&amp;lt;/code&amp;gt; az SP szolgáltatás neve és leírása&lt;br /&gt;
*** a szolgáltatás elérhetősége, amin a szolgáltatás bemutatkozik (extension)&lt;br /&gt;
*** adatkezelési szabályzatra mutató URL (extension)&lt;br /&gt;
** IdP-k esetén&lt;br /&gt;
*** a scope csak az adott intézmény kezelésében levő domain név lehet (Shibboleth extension)&lt;br /&gt;
** lehetőség van további adatok megadására is&lt;br /&gt;
*** logó&lt;br /&gt;
*** gps koordináták, IP cím tartomány&lt;br /&gt;
*** különböző tagek, például a szolgáltatás publikus-e, vagy épp bevezetés alatt áll-e&lt;br /&gt;
&lt;br /&gt;
== Metaadat kiterjesztések használata ==&lt;br /&gt;
Ezen kiegészítő adatok tárolására az internet2 szabványtervezetet készít, ennek a sémának a jelenlegi verziója megtalálható [http://wiki.oasis-open.org/security/SAML2MetadataUI itt].&lt;br /&gt;
&lt;br /&gt;
A kiegészítő séma névtere: &amp;lt;code&amp;gt;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;lt;/code&amp;gt;. Az alábbi táblázatban ezen névtérben definiált legfontosabb elemeket foglaljuk össze:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! element név&lt;br /&gt;
! szemantika&lt;br /&gt;
! értékekre vonatkozó megkötések&lt;br /&gt;
|-&lt;br /&gt;
| GeolocationHint&lt;br /&gt;
| szélesség és hosszúság érték, a + előjel az északi szélességet illetve keleti hosszúságot jelöli&lt;br /&gt;
| 47.47359,19.052891&lt;br /&gt;
|-&lt;br /&gt;
| InformationURL&lt;br /&gt;
| az entitásról további információkat (pl. helpdesk) szolgáltató oldal.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PrivacyStatementURL&lt;br /&gt;
| Az SP adatvédelmi nyilatkozátnak elérhetősége (URL)&lt;br /&gt;
| Engedélyezett formátumok: HTML, PDF&lt;br /&gt;
|-&lt;br /&gt;
| Logo&lt;br /&gt;
| Az IdP/SP logójának elérhetősége&lt;br /&gt;
| Formátummal kapcsolatban lásd [[#Logo]]&lt;br /&gt;
|-&lt;br /&gt;
| IPHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény hálózati tartománya(i). IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| CIDR, több érték is megadható&lt;br /&gt;
|-&lt;br /&gt;
| DomainHint&lt;br /&gt;
| (Csak az IdP-knél) az intézmény által felügyelt domain név. IdP felderítés esetén előválasztás lehetséges ennek alapján.&lt;br /&gt;
| Több érték is megadható &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logo ===&lt;br /&gt;
* formátum: URL egy transzparens hátterű PNG, vagy transzparens hátterű GIF képre&lt;br /&gt;
* méretezés&lt;br /&gt;
** javasolt oldalarány 1:1 vagy 16:9&lt;br /&gt;
** maximális méret 200x200px&lt;br /&gt;
** ajánlott egy 16x16px-es verziót is megadni &lt;br /&gt;
* attribútumok&lt;br /&gt;
** &amp;lt;code&amp;gt;xml:lang&amp;lt;/code&amp;gt;: lokalizációs információ&lt;br /&gt;
** &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt;: opcionális link&lt;br /&gt;
** &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;: opcionális magasság érték pixelben&lt;br /&gt;
** &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;: opcionális szélesség érték pixelben&lt;br /&gt;
&lt;br /&gt;
== Egy IdP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://idp.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;IDPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;shibmd:Scope&amp;gt;niif.hu&amp;lt;/shibmd:Scope&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:DiscoHints xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:GeolocationHint&amp;gt;47.518356,19.055437&amp;lt;/mdui:GeolocationHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;niif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:DomainHint&amp;gt;iif.hu&amp;lt;/mdui:DomainHint&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:DiscoHints&amp;gt;&lt;br /&gt;
   &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
   &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
      &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
     &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
   &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
   &amp;lt;!-- endpoints, nameidformats --&amp;gt;&lt;br /&gt;
   &amp;lt;/IDPSSODescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
  &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
   &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
  &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Egy SP példa ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;EntityDescriptor entityID=&amp;quot;https://rr.aai.niif.hu/shibboleth&amp;quot;&lt;br /&gt;
  xmlns:mdui=&amp;quot;urn:oasis:names:tc:SAML:2.0:metadata:ui&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SPSSODescriptor protocolSupportEnumeration=&amp;quot;urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Extensions&amp;gt;&lt;br /&gt;
    &amp;lt;mdui:UIInfo xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:PrivacyStatementURL&amp;gt;https://rr.aai.niif.hu/privacy-policy&amp;lt;/mdui:PrivacyStatementURL&amp;gt;&lt;br /&gt;
      &amp;lt;mdui:InformationURL&amp;gt;https://rr.aai.niif.hu/about&amp;lt;/mdui:InformationURL&amp;gt;&lt;br /&gt;
    &amp;lt;/mdui:UIInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/Extensions&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;signing&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;KeyDescriptor use=&amp;quot;encryption&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ds:KeyInfo&amp;gt;&lt;br /&gt;
    &amp;lt;ds:X509Data&amp;gt;&lt;br /&gt;
     &amp;lt;ds:X509Certificate&amp;gt;...&amp;lt;/ds:X509Certificate&amp;gt;&lt;br /&gt;
    &amp;lt;/ds:X509Data&amp;gt;&lt;br /&gt;
   &amp;lt;/ds:KeyInfo&amp;gt;&lt;br /&gt;
  &amp;lt;/KeyDescriptor&amp;gt;&lt;br /&gt;
  &amp;lt;!-- endpoints --&amp;gt;&lt;br /&gt;
  &amp;lt;AttributeConsumingService index=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceName xml:lang=&amp;quot;en&amp;quot;&amp;gt;HREF Resource Registry&amp;lt;/ServiceName&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;hu&amp;quot;&amp;gt;Resource Registry - a föderáció adminisztrációs alkalmazása http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;ServiceDescription xml:lang=&amp;quot;en&amp;quot;&amp;gt;Resource Registry - federation administration tool http://rr.aai.niif.hu/&amp;lt;/ServiceDescription&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;mail&amp;quot; Name=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;surname&amp;quot; Name=&amp;quot;urn:oid:2.5.4.4&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;givenName&amp;quot; Name=&amp;quot;urn:oid:2.5.4.42&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonPrincipalName&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.6&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;schacHomeOrganizationType&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.25178.1.2.10&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;RequestedAttribute FriendlyName=&amp;quot;eduPersonScopedAffiliation&amp;quot; Name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.9&amp;quot; isRequired=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/AttributeConsumingService&amp;gt;&lt;br /&gt;
 &amp;lt;/SPSSODescriptor&amp;gt;&lt;br /&gt;
 &amp;lt;Organization&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;hu&amp;quot;&amp;gt;NIIF - Nemzeti Információs Infrastruktúra Fejlesztési Intézet&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationDisplayName xml:lang=&amp;quot;en&amp;quot;&amp;gt;NIIF Institute - National Information Infrastructure Development&amp;lt;/OrganizationDisplayName&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;hu&amp;quot;&amp;gt;http://www.niif.hu&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
  &amp;lt;OrganizationURL xml:lang=&amp;quot;en&amp;quot;&amp;gt;http://www.niif.hu/en&amp;lt;/OrganizationURL&amp;gt;&lt;br /&gt;
 &amp;lt;/Organization&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;administrative&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;technical&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;ContactPerson contactType=&amp;quot;support&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;SurName&amp;gt;NIIF AAI&amp;lt;/SurName&amp;gt;&lt;br /&gt;
  &amp;lt;EmailAddress&amp;gt;aai@niif.hu&amp;lt;/EmailAddress&amp;gt;&lt;br /&gt;
 &amp;lt;/ContactPerson&amp;gt;&lt;br /&gt;
 &amp;lt;/EntityDescriptor&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Metaadat aláírásának módja =&lt;br /&gt;
== Aláíró kulcs és tanúsítványok ==&lt;br /&gt;
* Az aláíró kulcsot smart cardon, pin kóddal védve tároljuk.&lt;br /&gt;
* Az aláírás on-line történik, a kártya pin kódját az aláíró szoftver indításakor az AAI adminisztrátor adja meg, a jelszó nem kerül tárolásra az aláírást végző rendszeren (sem másutt).&lt;br /&gt;
&lt;br /&gt;
== Aláírási folyamat ==&lt;br /&gt;
* Aláíratlan metaadat frissítése&lt;br /&gt;
** az aláíratlan metaadat a https://rr.aai.niif.hu oldalról ütemezetten (5 perc) letöltésre kerül. A letöltés során az rr.aai.niif.hu tanúsítványa explicit módon ellenőrzésre kerül.&lt;br /&gt;
** a letöltött metaadat formai ellenőrzése&lt;br /&gt;
** az ellenőrzött entitások egy verziókövető rendszerbe kerülnek, az esetleges változásról e-mail értesítés készül ([https://listserv.niif.hu/mailman/listinfo/href-metadata-changes href-metadata-changes] nevű levelezőlistára)&lt;br /&gt;
* Az aláíró szoftver rendszeresen (1-2 percenként) ellenőrzi a metaadatot a verziókövető rendszerben, és változás esetén új aláírt metaadatokat készít&lt;br /&gt;
** amennyiben nincs változás, fix időközönként (naponta legalább egyszer) új aláírt állományok készülnek&lt;br /&gt;
&lt;br /&gt;
== Aláírás ellenőrzése explicit tanúsítvánnyal ==&lt;br /&gt;
A föderáció entitásai a föderációs metaadat hitelességéről a digitális aláírás ellenőrzésével győződhetnek meg. &lt;br /&gt;
* Az explicit ellenőrzés esetén a &amp;lt;code&amp;gt;http://metadata.eduid.hu/current/&amp;lt;/code&amp;gt; URL-ről kell letölteni a metadata fájlokat.&lt;br /&gt;
* A tanúsítvány a https://metadata.eduid.hu oldalról érhető el.&lt;br /&gt;
** DN-je &amp;lt;code&amp;gt;EMAILADDRESS=aai@niif.hu, CN=HREF Metadata Signer 2010, OU=AAI, O=NIIF Institute, O=NIIF CA, C=HU&amp;lt;/code&amp;gt;&lt;br /&gt;
** SHA-1 &amp;lt;code&amp;gt;09:C2:8B:09:AB:9E:C2:9B:A5:71:37:E7:36:C6:10:FF:96:9F:D7:FE&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ajánlott a tanúsítvány lejárati idejét figyelmen kívül hagyni.&lt;br /&gt;
* A tanúsítványcsere koordinálása out-of-band módszerrel történik (a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlista segítségével).&lt;br /&gt;
&lt;br /&gt;
== Aláíró kulcs cseréje ==&lt;br /&gt;
* A föderációs entitások számára ajánlott a tanúsítvány lejárati idejének figyelmen kívül hagyása.&lt;br /&gt;
* A kulccsere koordinálása a &amp;lt;code&amp;gt;href-tech&amp;lt;/code&amp;gt; levelezőlistán keresztül történik.&lt;br /&gt;
* Kulcs visszavonásakor (kompromittálódás gyanúja esetén) a régi aláíró kulcs azonnal eltávolításra kerül, kontrollált kulcscsere esetén az aláírás párhuzamosan történik a régi és az új kulccsal.&lt;br /&gt;
&lt;br /&gt;
= Metaadat elérése =&lt;br /&gt;
A HREF föderációban többféle metaadat-forrás áll rendelkezésre, melyeket a http://metadata.eduid.hu -ról lehet elérni. Fontos megemlíteni, hogy a metadata letöltésénél nem indokolt az SSL használata, ezért - amennyiben lehetséges -, érdemes a metadata URL-eket nem titkosított HTTP protokoll segítségével letölteni.&lt;br /&gt;
&lt;br /&gt;
A metadata elérés URL-je a következő: http://metadata.eduid.hu/${alairo_kulcs_kibocsatas_eve}/${metadata_forras}.xml. A metadata források jelenleg a következők lehetnek:&lt;br /&gt;
* &amp;lt;code&amp;gt;href.xml&amp;lt;/code&amp;gt;: az éles föderációban részt vevő, és a föderáció kritériumait teljesítő entitások&lt;br /&gt;
* &amp;lt;code&amp;gt;href-test.xml&amp;lt;/code&amp;gt;: a HREF föderáció tesztrendszerei. Bármely, föderációban részt vevő intézmény tehet be teszt-entitást ebbe a halmazba, ezért ezen metaadat-forrás csak tesztelési célra használható.&lt;br /&gt;
* &amp;lt;code&amp;gt;href-edugain.xml&amp;lt;/code&amp;gt;: a HREF föderációból az [http://edugain.org eduGAIN] konföderációba kiajánlott entitások. Ide csak olyan entitások kerülhetnek be, melyek megfelelnek a föderációs kritériumoknak, és képesek az [http://edugain.org eduGAIN] konföderációval való együttműködésre. Ezen entitások be kell hogy olvassák az eduGAIN metaadatot is.&lt;br /&gt;
* &amp;lt;code&amp;gt;edugain.xml&amp;lt;/code&amp;gt;: az [http://edugain.org eduGAIN] konföderáció metaadata, a HREF aláíró kulccsal aláírva.&lt;br /&gt;
* intézmény-specifikus metaadat fájlok, melyeket a föderáció kérésre biztosítja, tetszőleges entitások halmazba gyűjtésével.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=3206</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=3206"/>
				<updated>2015-06-30T09:02:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
&lt;br /&gt;
{{ATTENTION|Ahhoz, hogy az automatikus metadata frissítés gond nélkül működjön, legalább '''1.13.2'''-es verziójú simpleSAMLphp kell, vagy korábbi változatokon frissíteni kell a &amp;lt;code&amp;gt;/path/to/simplesamlphp/lib/xmlseclibs.php&amp;lt;/code&amp;gt; fájlt [http://goo.gl/ilRHkV erre a fájlra]! Bővebb információ ehhez kapcsolódóan [http://simplesamlphp.org/metaprocessing erre.]&lt;br /&gt;
&lt;br /&gt;
Ha az eduGAIN metaadatait is feldolgozzuk, akkor fontos, hogy néhány paramétert emeljük legalább az alábbi értékekre:&lt;br /&gt;
* maximum memória foglalás (&amp;lt;code&amp;gt;memory_limit&amp;lt;/code&amp;gt;): '''512MB'''&lt;br /&gt;
* maximum végrehajtási idő (&amp;lt;code&amp;gt;max_execution_time&amp;lt;/code&amp;gt;): '''120 sec'''}}&lt;br /&gt;
&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile'), // IdP esetén kell, itt van az önmagát leíró metadata&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük. Fontos, hogy egyúttal a config.php &amp;lt;code&amp;gt;authproc.idp&amp;lt;/code&amp;gt; részét kikommentezzük, nehogy az ottani sorszámokkal megadott default feladatok bekavarjanak.&lt;br /&gt;
&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
                80 =&amp;gt; 'core:AttributeLimit',&lt;br /&gt;
              ), // .authproc&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
        ),&lt;br /&gt;
        'sign.logout' =&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREFContract&amp;diff=3053</id>
		<title>HREFContract</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREFContract&amp;diff=3053"/>
				<updated>2015-04-22T07:43:31Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A HREF Föderáció nem jogi személy, így a szerződést formálisan a [[HREFGlossary#Föderációs Operátor|Föderációs Operátor]] és a [[HREFGlossary#Tag|Tag]] illetve a [[HREFGlossary#Partner|Partner]] kötik. A csatlakozáshoz szükséges egy egyoldalú szándéknyilatkozat aláírása is.&lt;br /&gt;
&lt;br /&gt;
A dokumentumok letölthetők [http://www.eduid.hu/hu/dokumentumok/ eduid.hu/dokumentumok] oldalról.&lt;br /&gt;
&lt;br /&gt;
A szerződés az alábbi dokumentumokra hivatkozik:&lt;br /&gt;
* [[HREFGlossary|Szószedet]]: a szerződésben és a vonatkozó dokumentumokban használt fogalmak meghatározása. [[HREFGlossaryEN|Glossary]]&lt;br /&gt;
* [[HREFPolicy|Alapelvek]]: a HREF Föderáció működésének alapvető szabályai [[HREFPolicyEN|Federation Policy]]&lt;br /&gt;
* Műszaki előírások: &lt;br /&gt;
** IdP műszaki követelmények; [[HREFIdPReq|IdP Operation Requirements]]&lt;br /&gt;
** SP műszaki követelmények; [[HREFSPReq|SP Operation Requirements]]&lt;br /&gt;
* [[FedOpServices|Szolgáltatási szint megállapodás]]: a Föderációs Operátor szolgáltatásai és ezek vállalt paraméterei. [[FedOpServicesEN|Service Level Agreement]]&lt;br /&gt;
* [[HREFAttributeSpec|Attribútum specifikáció]]: a felhasználói attribútumok cseréjét meghatározó leírás. [[HREFAttributeSpecEn|Attribute Specification]]&lt;br /&gt;
* [[HREFMetadataSpec|Metadata specifikáció]]: a metaadatok használatának és értelmezésének szabályai. [[HREFMetadataSpecificationEN|Metadata Specification]]&lt;br /&gt;
* [[HREFServices|Föderációs szolgáltatások]]: a föderáció Tagjai és Partnerei által a Föderációban üzemeltetett szolgáltatások. [[HREFServicesEN|Definition of Federated Services]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
A Föderáció működésével kapcsolatos egyéb dokumentumok, amelyek nem képezik a szerződés mellékleteit:&lt;br /&gt;
* [[Tagok Tanácsának Működése]]&lt;br /&gt;
* [[HREFIdPPolicy|Üzemeltetéssel kapcsolatos ajánlások]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREFJoin&amp;diff=3052</id>
		<title>HREFJoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREFJoin&amp;diff=3052"/>
				<updated>2015-04-22T04:02:53Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Az eduID föderációhoz való csatlakozás folyamata'''&lt;br /&gt;
&lt;br /&gt;
# A csatlakozni kívánó tag/partner jelzi csatlakozási szándékát a [[HREFGlossary#F.C3.B6der.C3.A1ci.C3.B3s_Oper.C3.A1tor|Föderációs Operátor]] felé.&lt;br /&gt;
# Mind jogilag, mind technikailag előkészül a csatlakozáshoz: [[HREFPolicy|Föderációs alapelvek]], [https://docs.google.com/document/d/1XkFqQx9npWVgftAU1b0cRoqiTNrhj9oqEWpMWaIJO6o/edit?hl=en_US Műszaki előírások IdP-k számára], [https://docs.google.com/document/d/1QZWwFqHm4VNyIn6GdKnOzyA0Xdg2uYgwlAkJA1ffpM8/edit?hl=en_US Műszaki előírások SP-k számára].&lt;br /&gt;
# Egyeztetés után elküldi az [http://www.eduid.hu/dokumentumok/ aláírt szerződést, ill. nyilatkozatot], és ezzel párhuzamosan elérhetővé teszi a csatlakozás előtti ellenőrzéskor [[HREFChecklist|átnézendő dokumentumokat]]. Különösen fontos, hogy megadja az azonosítható felhasználók számát és elérhetővé tegye az adatkezelési szabályzatát.&lt;br /&gt;
# A Föderációs Operátor elkészíti a Tag számára a szükséges HEXAA jogosultságokat&lt;br /&gt;
# A Föderációs Operátor elvégzi az előzetes ellenőrzést (a különálló és benyújtandó dokumentumokat és a Resource Registry-be felvitt adatokat), majd ennek eredményértől tájékoztatja a [[HREFGlossary#Tagok_Tan.C3.A1csa|Tagok Tanácsát]]&lt;br /&gt;
# Tagok Tanácsa dönt a csatlakozni kívánó tag/partner kérelméről&lt;br /&gt;
# A Föderációs Operátor - pozitív TT döntés esetén - aláírva visszaküldi a szerződést, és beteszi a föderációs éles [[HREFGlossary#Metaadatok|metaadatba]] az új entitást. Negatív válasz esetén a hiányosságok ismertetése mellett lehetőséget biztosít azok a pótlására, javítására.&lt;br /&gt;
&lt;br /&gt;
'''Azonosító szervezet (IdP) felvétele a föderációba'''&lt;br /&gt;
# A Föderációs Operátor az intézményi adminisztrátorral egyeztetve rögzíti a [[Resource_Registry#IdP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-be az IdP adatait. Egyúttal a Föderációs Operátor az IdP-t hozzáadja a föderációs tesztmetaadathoz, ezáltal az intézményi adminisztrátor, amennyiben helyesen konfigurálta az IdP-t, be fog tudni lépni a Resource Registrybe.&lt;br /&gt;
# A Tagok Tanácsa dönt az IdP felvételi kérelméről. Pozitív döntés esetén a Föderációs Operátor hozzáadja az éles föderációs metaadathoz az IdP-t.&lt;br /&gt;
&lt;br /&gt;
'''Intézményi (tagi) szolgáltatás (SP) felvétele a föderációba'''&lt;br /&gt;
# Egy intézményi adminisztrátor (akinek a HEXAA-ban megfelelő, a Resource Registryhez szükséges intézményi admin joggköre van) a [[Resource_Registry#SP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-ben rögzíti az SP minden szükséges adatát.&lt;br /&gt;
# Az SP a föderációs metaadatba a Föderációs Operátor számára történt jelézés után kerülhet. Technikailag a Föderációs Operátor engedélyezi a föderációs metaadatba történő megjelenést.&lt;br /&gt;
&lt;br /&gt;
'''Külső (partner) szolgáltatás (SP) felvétele a föderációba'''&lt;br /&gt;
# A Föderációs Operátor a [[Resource_Registry#SP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-ben rögzíti az SP minden szükséges adatát.&lt;br /&gt;
# A Tagok Tanácsa pozitív döntése után a Föderációs Operátor engedélyezi az új SP föderációs metaadatba történő megjelenését.&lt;br /&gt;
# Az SP-n a későbbiekben szükségessé váló módosításokat a Föderációs Operátor végzi el.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREFJoin&amp;diff=3051</id>
		<title>HREFJoin</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREFJoin&amp;diff=3051"/>
				<updated>2015-04-22T04:01:04Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Az eduID föderációhoz való csatlakozás folyamata'''&lt;br /&gt;
&lt;br /&gt;
# A csatlakozni kívánó tag/partner jelzi csatlakozási szándékát a [[HREFGlossary#F.C3.B6der.C3.A1ci.C3.B3s_Oper.C3.A1tor|Föderációs Operátor]] felé.&lt;br /&gt;
# Mind jogilag, mind technikailag előkészül a csatlakozáshoz: [[HREFPolicy|Föderációs alapelvek]], [https://docs.google.com/document/d/1XkFqQx9npWVgftAU1b0cRoqiTNrhj9oqEWpMWaIJO6o/edit?hl=en_US Műszaki előírások IdP-k számára], [https://docs.google.com/document/d/1QZWwFqHm4VNyIn6GdKnOzyA0Xdg2uYgwlAkJA1ffpM8/edit?hl=en_US Műszaki előírások SP-k számára].&lt;br /&gt;
# Egyeztetés után elküldi az [http://www.eduid.hu/dokumentumok/ aláírt szerződést, ill. nyilatkozatot], és ezzel párhuzamosan elérhetővé teszi a csatlakozás előtti ellenőrzéskor [[HREFChecklist|átnézendő dokumentumokat]].&lt;br /&gt;
# A Föderációs Operátor elkészíti a Tag számára a szükséges HEXAA jogosultságokat&lt;br /&gt;
# A Föderációs Operátor elvégzi az előzetes ellenőrzést (a különálló és benyújtandó dokumentumokat és a Resource Registry-be felvitt adatokat), majd ennek eredményértől tájékoztatja a [[HREFGlossary#Tagok_Tan.C3.A1csa|Tagok Tanácsát]]&lt;br /&gt;
# Tagok Tanácsa dönt a csatlakozni kívánó tag/partner kérelméről&lt;br /&gt;
# A Föderációs Operátor - pozitív TT döntés esetén - aláírva visszaküldi a szerződést, és beteszi a föderációs éles [[HREFGlossary#Metaadatok|metaadatba]] az új entitást. Negatív válasz esetén a hiányosságok ismertetése mellett lehetőséget biztosít azok a pótlására, javítására.&lt;br /&gt;
&lt;br /&gt;
'''Azonosító szervezet (IdP) felvétele a föderációba'''&lt;br /&gt;
# A Föderációs Operátor az intézményi adminisztrátorral egyeztetve rögzíti a [[Resource_Registry#IdP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-be az IdP adatait. Egyúttal a Föderációs Operátor az IdP-t hozzáadja a föderációs tesztmetaadathoz, ezáltal az intézményi adminisztrátor, amennyiben helyesen konfigurálta az IdP-t, be fog tudni lépni a Resource Registrybe.&lt;br /&gt;
# A Tagok Tanácsa dönt az IdP felvételi kérelméről. Pozitív döntés esetén a Föderációs Operátor hozzáadja az éles föderációs metaadathoz az IdP-t.&lt;br /&gt;
&lt;br /&gt;
'''Intézményi (tagi) szolgáltatás (SP) felvétele a föderációba'''&lt;br /&gt;
# Egy intézményi adminisztrátor (akinek a HEXAA-ban megfelelő, a Resource Registryhez szükséges intézményi admin joggköre van) a [[Resource_Registry#SP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-ben rögzíti az SP minden szükséges adatát.&lt;br /&gt;
# Az SP a föderációs metaadatba a Föderációs Operátor számára történt jelézés után kerülhet. Technikailag a Föderációs Operátor engedélyezi a föderációs metaadatba történő megjelenést.&lt;br /&gt;
&lt;br /&gt;
'''Külső (partner) szolgáltatás (SP) felvétele a föderációba'''&lt;br /&gt;
# A Föderációs Operátor a [[Resource_Registry#SP_regisztr.C3.A1ci.C3.B3|Resource Registry]]-ben rögzíti az SP minden szükséges adatát.&lt;br /&gt;
# A Tagok Tanácsa pozitív döntése után a Föderációs Operátor engedélyezi az új SP föderációs metaadatba történő megjelenését.&lt;br /&gt;
# Az SP-n a későbbiekben szükségessé váló módosításokat a Föderációs Operátor végzi el.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2961</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2961"/>
				<updated>2014-12-04T12:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Metadata beállítása (IdP és SP is) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
&lt;br /&gt;
{{ATTENTION|Ahhoz, hogy az automatikus metadata frissítés gond nélkül működjön, legalább 1.13.2-es verziójú simpleSAMLphp kell, vagy korábbi változatokon frissíteni kell a &amp;lt;code&amp;gt;/path/to/simplesamlphp/lib/xmlseclibs.php&amp;lt;/code&amp;gt; fájlt [http://goo.gl/ilRHkV erre a fájlra]! Bővebb információ ehhez kapcsolódóan [http://simplesamlphp.org/metaprocessing erre.]}}&lt;br /&gt;
&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                    'template' =&amp;gt; array(&lt;br /&gt;
                        'authproc' =&amp;gt; array(&lt;br /&gt;
                            51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
                        ),&lt;br /&gt;
                    ),&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile'), // IdP esetén kell, itt van az önmagát leíró metadata&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük. Fontos, hogy egyúttal a config.php &amp;lt;code&amp;gt;authproc.idp&amp;lt;/code&amp;gt; részét kikommentezzük, nehogy az ottani sorszámokkal megadott default feladatok bekavarjanak.&lt;br /&gt;
&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
                80 =&amp;gt; 'core:AttributeLimit',&lt;br /&gt;
              ), // .authproc&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
        ),&lt;br /&gt;
        'sign.logout' =&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2892</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2892"/>
				<updated>2014-08-08T07:34:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Metadata beállítása (IdP és SP is) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                    'template' =&amp;gt; array(&lt;br /&gt;
                        'authproc' =&amp;gt; array(&lt;br /&gt;
                            51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
                        ),&lt;br /&gt;
                    ),&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
==== Metarefresh webszerver nélkül ====&lt;br /&gt;
Sajnos a simpleSAMLphp a nagyon nagy metadata állományok webszerveren keresztüli hívással indított feldolgozásában nem jeleskedik, márpedig az eduGAIN nemzetközi konföderáció metaadata óriási, így érdemes a config-metarefresht parancssoros php-ként meghívni, így a webszerveren keresztül történő futtatás várható időtullépését kiegyszerűsíthetjük a képletből. Ehhez vegyünk fel két külön cronjobot. Az egyik letölti a metadata állományt. A másik pedig helyben elvégzi a feldolgozást.&lt;br /&gt;
&lt;br /&gt;
 5 * * * * www-data wget -nv -q http://metadata.eduid.hu/current/edugain.xml -O /tmp/hrefsigned_edugain.xml &lt;br /&gt;
 10 * * * * www-data /var/simplesamlphp/modules/metarefresh/bin/metarefresh.php -o=metadata/metarefresh-edugain /tmp/hrefsigned_edugain.xml&lt;br /&gt;
&lt;br /&gt;
A második parancs feltételezi hogy a simplesamlphp/metadata/metarefresh-edugain könyvtár létezik és a www-data által írható.&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük. Fontos, hogy egyúttal a config.php &amp;lt;code&amp;gt;authproc.idp&amp;lt;/code&amp;gt; részét kikommentezzük, nehogy az ottani sorszámokkal megadott default feladatok bekavarjanak.&lt;br /&gt;
&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
        ),&lt;br /&gt;
        'sign.logout' =&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2886</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2886"/>
				<updated>2014-07-03T07:25:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Attribútumok kezelése */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                    'template' =&amp;gt; array(&lt;br /&gt;
                        'authproc' =&amp;gt; array(&lt;br /&gt;
                            51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
                        ),&lt;br /&gt;
                    ),&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük. Fontos, hogy egyúttal a config.php &amp;lt;code&amp;gt;authproc.idp&amp;lt;/code&amp;gt; részét kikommentezzük, nehogy az ottani sorszámokkal megadott default feladatok bekavarjanak.&lt;br /&gt;
&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
        ),&lt;br /&gt;
        'sign.logout' =&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2885</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2885"/>
				<updated>2014-07-03T07:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Attribútumok kezelése */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                    'template' =&amp;gt; array(&lt;br /&gt;
                        'authproc' =&amp;gt; array(&lt;br /&gt;
                            51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
                        ),&lt;br /&gt;
                    ),&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük. Fontos, hogy egyúttal a config.php &amp;lt;code&amp;gt;authproc.idp&amp;lt;/code&amp;gt; részét kikommentezzük, nehogy az ottani sorszámokkal megadott default feladatok bekavarjanak.&lt;br /&gt;
&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'sign.logout' =&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2830</id>
		<title>SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SimpleSAMLphp&amp;diff=2830"/>
				<updated>2014-05-05T11:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Külső attribútumfilter-modulról szóló részt kukáztam, mert már irreleváns&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az alábbi lapon megkíséreljük összefoglalni a legfontosabb lépéseket, melyek általános esetben elegendőek ahhoz, hogy működő SimpleSAMLphp(SSP) alkalmazást állítsunk üzembe.&lt;br /&gt;
&lt;br /&gt;
==Telepítés==&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Ahhoz, hogy problémamentesen telepíthessük SSP alkalmazásunkat, az alábbi szoftverkomponenseknek kell működniük szerverünkön.&lt;br /&gt;
* PHP futtatására alkalmas webszerver&lt;br /&gt;
* PHP környezet (legalább 5.2.0 verzió)&lt;br /&gt;
* A következő PHP kiterjesztéseket engedélyezni kell&lt;br /&gt;
** &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pcre&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SPL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
** LDAP-ból történő autentikáció esetén: &amp;lt;code&amp;gt;ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
** Adatbázisból történő autentikáció esetén a megfelelő adatbázis-csatolót &amp;lt;code&amp;gt;mysql&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pgsql&amp;lt;/code&amp;gt;&lt;br /&gt;
** RADIUS szerveren keresztül történő autentikáció esetén: &amp;lt;code&amp;gt;radius&amp;lt;/code&amp;gt;&lt;br /&gt;
** Assertion-ök titkosítása esetén: &amp;lt;code&amp;gt;mcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
** Memcache használata esetén: &amp;lt;code&amp;gt;memcache&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Letöltés===&lt;br /&gt;
A legfrissebb változat letölthető [http://code.google.com/p/simplesamlphp/ http://code.google.com/p/simplesamlphp/] címről&lt;br /&gt;
&lt;br /&gt;
 cd /var&lt;br /&gt;
 tar xzf simplesamlphp-1.x.y.tar.gz&lt;br /&gt;
 mv simplesamlphp-1.x.y simplesamlphp&lt;br /&gt;
&lt;br /&gt;
Alapértelmezés szerint a &amp;lt;code&amp;gt;/var/simplesamlphp&amp;lt;/code&amp;gt; alatt szeretne majd működni, ez természetesen változtatható, de most maradunk az eredeti beállításoknál.&lt;br /&gt;
&lt;br /&gt;
===Apache konfigurálás===&lt;br /&gt;
&lt;br /&gt;
A webről csak a &amp;lt;code&amp;gt;/var/simplesamlphp/www&amp;lt;/code&amp;gt; könyvtárat kell elérni.&lt;br /&gt;
&lt;br /&gt;
 Alias /simplesaml /var/simplesamlphp/www&lt;br /&gt;
&lt;br /&gt;
===Alapbeállítások===&lt;br /&gt;
Mielőtt aktiváljuk valamelyik főszolgáltatását (IdP,SP...) a telepített alkalmazásnak, néhány beállítást meg kell adnunk a konfigurációs fájlban &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
* '''Az &amp;quot;admin&amp;quot; felhasználó jelszavát, mellyel webes felületen keresztül be tud lépni a települő SSP-be.'''&lt;br /&gt;
 'auth.adminpassword'        =&amp;gt; 'ujjelszotirdide',&lt;br /&gt;
* '''Titkosítási feladatokhoz szükséges &amp;quot;salt&amp;quot;, azaz véletlenszerűen összeálló karaktersorozat'''&lt;br /&gt;
 'secretsalt' =&amp;gt; 'randombytesinsertedhere',&lt;br /&gt;
A karaktersorozat előállításában segíthet az alábbi parancs: &lt;br /&gt;
 tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' &amp;lt;/dev/urandom | dd bs=32 count=1 2&amp;gt;/dev/null;echo&lt;br /&gt;
* '''Elérhetőségeket, amely adatok bekerülnek majd a generált metaadatba'''&lt;br /&gt;
 'technicalcontact_name'     =&amp;gt; 'Gipsz Jakab',&lt;br /&gt;
 'technicalcontact_email'    =&amp;gt; 'jakab.gipsz@example.org',&lt;br /&gt;
* '''Nyelv és időzóna adatok'''&lt;br /&gt;
 'language.default'      =&amp;gt; 'hu',&lt;br /&gt;
 'timezone' =&amp;gt; 'Europe/Budapest',&lt;br /&gt;
&lt;br /&gt;
===Telepítés kész===&lt;br /&gt;
Amennyiben elkészültünk a fenti lépésekkel, úgy a [https://service.example.org/simplesaml/ https://service.example.org/simplesaml/] címen elérjük a telepített SSP-nk webes adminfelületét, ahol megejthetjük a további beállítások nagy részét.&lt;br /&gt;
&lt;br /&gt;
==IdP beállítás==&lt;br /&gt;
===IdP funkció engedélyezése===&lt;br /&gt;
A &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk, s engedélyezni a saml20 idp lehetőséget.&lt;br /&gt;
 'enable.saml20-idp' =&amp;gt; true,&lt;br /&gt;
===Autentikáció LDAP alapon===&lt;br /&gt;
Meg kell adni, hogy az IdP milyen módon azonosítsa a felhasználót, amennyiben alapértelmezés szerint nem engedélyezett modult szeretnénk használni, úgy a megfelelő modult a &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; könyvtár alatt engedélyezni kell. Az alábbi példában az LDAP alapú azonosítást mutatjuk be, amely külön modult nem igényel, alapértelmezés szerint része a telepített alkalmazásnak.&lt;br /&gt;
&lt;br /&gt;
Ahhoz, hogy megadhassuk az LDAP-hoz tartozó beállításokat, a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlt kell szerkesztenünk. Az alábbi kódrészletet elegendő beszúrni, és az egyes változóknak a helyi LDAP-nak megfelelő adatokat értékül adni.&lt;br /&gt;
 'example-ldap' =&amp;gt; array(&lt;br /&gt;
    'ldap:LDAP',&lt;br /&gt;
 &lt;br /&gt;
    /* The hostname of the LDAP server. */&lt;br /&gt;
    'hostname' =&amp;gt; 'ldap.example.org',&lt;br /&gt;
 &lt;br /&gt;
    /* Whether SSL/TLS should be used when contacting the LDAP server. */&lt;br /&gt;
    'enable_tls' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * Which attributes should be retrieved from the LDAP server.&lt;br /&gt;
     * This can be an array of attribute names, or NULL, in which case&lt;br /&gt;
     * all attributes are fetched.&lt;br /&gt;
     */&lt;br /&gt;
    'attributes' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The pattern which should be used to create the users DN given the username.&lt;br /&gt;
     * %username% in this pattern will be replaced with the users username.&lt;br /&gt;
     *&lt;br /&gt;
     * This option is not used if the search.enable option is set to TRUE.&lt;br /&gt;
     */&lt;br /&gt;
    'dnpattern' =&amp;gt; 'uid=%username%,ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * As an alternative to specifying a pattern for the users DN, it is possible to&lt;br /&gt;
     * search for the username in a set of attributes. This is enabled by this option.&lt;br /&gt;
     */&lt;br /&gt;
    'search.enable' =&amp;gt; FALSE,&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The DN which will be used as a base for the search.&lt;br /&gt;
     * This can be a single string, in which case only that DN is searched, or an&lt;br /&gt;
     * array of strings, in which case they will be searched in the order given.&lt;br /&gt;
     */&lt;br /&gt;
    'search.base' =&amp;gt; 'ou=people,dc=example,dc=org',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The attribute(s) the username should match against.&lt;br /&gt;
     *&lt;br /&gt;
     * This is an array with one or more attribute names. Any of the attributes in&lt;br /&gt;
     * the array may match the value the username.&lt;br /&gt;
     */&lt;br /&gt;
    'search.attributes' =&amp;gt; array('uid', 'mail'),&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The username &amp;amp; password the simpleSAMLphp should bind to before searching. If&lt;br /&gt;
     * this is left as NULL, no bind will be performed before searching.&lt;br /&gt;
     */&lt;br /&gt;
    'search.username' =&amp;gt; NULL,&lt;br /&gt;
    'search.password' =&amp;gt; NULL,&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
===Metaadat alapok===&lt;br /&gt;
A beállítandó IdP alapvető paraméterei a &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlban állíthatók. Az alábbi kódrészlet egy minimális, de már működő példát mutat.&lt;br /&gt;
&lt;br /&gt;
 $metadata['__DYNAMIC:1__'] = array(&lt;br /&gt;
    /*&lt;br /&gt;
     * The hostname for this IdP. This makes it possible to run multiple&lt;br /&gt;
     * IdPs from the same configuration. '__DEFAULT__' means that this one&lt;br /&gt;
     * should be used by default.&lt;br /&gt;
     */&lt;br /&gt;
    'host' =&amp;gt; '__DEFAULT__',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The private key and certificate to use when signing responses.&lt;br /&gt;
     * These are stored in the cert-directory.&lt;br /&gt;
     */&lt;br /&gt;
    'privatekey' =&amp;gt; 'idp.example.org.key',&lt;br /&gt;
    'certificate' =&amp;gt; 'idp.example.org.crt',&lt;br /&gt;
 &lt;br /&gt;
    /*&lt;br /&gt;
     * The authentication source which should be used to authenticate the&lt;br /&gt;
     * user. This must match one of the entries in config/authsources.php.&lt;br /&gt;
     */&lt;br /&gt;
    'auth' =&amp;gt; 'example-ldap',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Teszteléshez is érdemes, éles használathoz pedig elengedhetetlen, hogy a csomagban érkezett tanúsítványt felülírjuk, ezt célszerű mihamarabb megtenni. Ehhez az alábbi parancs lehet segítségünkre.&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out idp.example.org.crt -keyout idp.example.org.key&lt;br /&gt;
A fingerprint az alábbi módon kérdezhető le a legegyszerűbben&lt;br /&gt;
 openssl x509 -fingerprint -noout -in idp.example.org.crt&lt;br /&gt;
&lt;br /&gt;
Megfelelő beállítások után a dinamikusan generált metadata a &amp;lt;code&amp;gt;/saml2/idp/metadata.php&amp;lt;/code&amp;gt; útvonalon érhető el.&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Legegyszerűbben a telepített SSP felületén tudjuk ellenőrizni, hogy a beállított autentikációs forrás működik-e. A felületen az Authentication fül alatt található egy 'Test authentication sources' link, amelyre kattintva látható minden beállított autentikációs forrás is, így a két alapértelmezett, teszt célokat szolgáló alatt a most beállított example-ldap névre hallgatónak is meg kell jelenni. (A közvetlen url erre az oldalra: simplesaml/module.php/core/authenticate.php) Ez utóbbira kattintva a beállított LDAP-ból autentikálva be kell tudnunk jelentkeznünk; siker esetén az LDAP-ból kinyerhető attribútumokat láthatjuk.&lt;br /&gt;
&lt;br /&gt;
==SP beállítás==&lt;br /&gt;
===Alapadatok===&lt;br /&gt;
A telepített alkalmazásunk által kezelt SP-ket a &amp;lt;code&amp;gt;config/authsources.php&amp;lt;/code&amp;gt; fájlban tudjuk beállítani.&lt;br /&gt;
&lt;br /&gt;
 'default-sp' =&amp;gt; array(&lt;br /&gt;
        'saml:SP',&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of this SP.&lt;br /&gt;
        // Can be NULL/unset, in which case an entity ID is generated based on the metadata URL.&lt;br /&gt;
        'entityID' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The entity ID of the IdP this should SP should contact.&lt;br /&gt;
        // Can be NULL/unset, in which case the user will be shown a list of available IdPs.&lt;br /&gt;
        'idp' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        // The URL to the discovery service.&lt;br /&gt;
        // Can be NULL/unset, in which case a builtin discovery service will be used.&lt;br /&gt;
        'discoURL' =&amp;gt; NULL,&lt;br /&gt;
 &lt;br /&gt;
        'privatekey' =&amp;gt; 'saml.pem',&lt;br /&gt;
        'certificate' =&amp;gt; 'saml.crt',&lt;br /&gt;
 &lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
A fenti beállítások alapján az SP entityID-ja megegyezik a metadata elérési útvonalával (szokásos megoldás SSP-nél), nem adunk meg alapértelmezett idp-t, ezáltal az SSP választási lehetőséget kínál fel számunkra, mikor az SP-re szeretnénk bejelentkezni, ill. most még Discovery Service URL-t sem adunk meg, hanem a beépítettet használjuk. Ez utóbbit majd a HREF-be történő integrációkor meg kell változtatni - lásd lejjebb.&lt;br /&gt;
&lt;br /&gt;
Az IdP beállításához hasonlóan itt is szükség lesz egy tanúsítvány generálására a &amp;lt;code&amp;gt;cert&amp;lt;/code&amp;gt; könyvtárba. Ehhez segítség lehet az alábbi parancs.&lt;br /&gt;
&lt;br /&gt;
 openssl req -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem&lt;br /&gt;
&lt;br /&gt;
===Tesztelés===&lt;br /&gt;
Amennyiben IdP is beállításra került, úgy a legcélszerűbb ezt összehangolni az SP-vel. Ehhez egyfelől a &amp;lt;code&amp;gt;metadata/saml20-idp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adni az IdP adatait, amely esetünkben az alábbiak szerint fest.&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/saml2/idp/metadata.php'] = array(&lt;br /&gt;
        'name' =&amp;gt; array(&lt;br /&gt;
                'en' =&amp;gt; 'TestSP'&lt;br /&gt;
        ),&lt;br /&gt;
        'SingleSignOnService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SSOService.php',&lt;br /&gt;
        'SingleLogoutService'  =&amp;gt; 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php',&lt;br /&gt;
        'certFingerprint'      =&amp;gt; 'afe71c28ef740bc87425be13a2263d37971da1f9'&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ehhez hasonlóan a &amp;lt;code&amp;gt;metadata/saml20-sp-remote.php&amp;lt;/code&amp;gt; fájlban meg kell adnunk az SP adatait. Teszteléshez az alábbiak elegendők:&lt;br /&gt;
&lt;br /&gt;
 $metadata['https://example.org/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (&lt;br /&gt;
  'AssertionConsumerService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',&lt;br /&gt;
  'SingleLogoutService' =&amp;gt; 'https://example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Ezek után az IdP tesztelésénél már említett oldalon a default-sp opciót kiválasztva, majd a legördülő menüben a TestSP-re kattintva be kell tudnunk jelentkezni az IdP-n keresztül. Ha működik, akkor az alapvető lépsekkel kész vagyunk, van egy működő SP-nk és egy működő IdP-nk.&lt;br /&gt;
&lt;br /&gt;
==HREF-integráció==&lt;br /&gt;
&lt;br /&gt;
===Metadata beállítása (IdP és SP is)===&lt;br /&gt;
* Az SSP-nél be kell állítani metaadat forrásként a központi metaadatot&lt;br /&gt;
:*Első lépésként engedélyezzük, hogy az SSP automatikusan frissíthesse a metaadatot, ill. az ezt elvégző két modult&lt;br /&gt;
 touch modules/metarefresh/enable&lt;br /&gt;
 cp modules/metarefresh/config-templates/*.php config/&lt;br /&gt;
 touch modules/cron/enable&lt;br /&gt;
 cp modules/cron/config-templates/*.php config/&lt;br /&gt;
&lt;br /&gt;
:*Létrehozunk egy könyvtárat, ahová letöltésre kerül az központi metaadat XML fájlja&lt;br /&gt;
 mkdir metadata/metarefresh-href&lt;br /&gt;
 chmod g+rw metadata/metarefresh-href&lt;br /&gt;
:*Ezek után be kell állítani a metaadat kokrét adatait a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlban&lt;br /&gt;
 $config = array(&lt;br /&gt;
    'sets' =&amp;gt; array(&lt;br /&gt;
        'hu' =&amp;gt; array(&lt;br /&gt;
            'cron'      =&amp;gt; array('hourly'),&lt;br /&gt;
            'sources'   =&amp;gt; array(&lt;br /&gt;
                array(&lt;br /&gt;
                    'src' =&amp;gt; 'http://metadata.eduid.hu/2011/href.xml',&lt;br /&gt;
                    'validateFingerprint' =&amp;gt; 'FE:AE:0B:E8:FB:59:ED:F7:CB:7F:69:DF:19:4F:8B:6D:C7:F6:96:66',&lt;br /&gt;
                    'template' =&amp;gt; array(&lt;br /&gt;
                        'authproc' =&amp;gt; array(&lt;br /&gt;
                            51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
                        ),&lt;br /&gt;
                    ),&lt;br /&gt;
                ),&lt;br /&gt;
            ),&lt;br /&gt;
            'expireAfter'       =&amp;gt; 60*60*24*4, // Maximum 4 days cache time.&lt;br /&gt;
            'outputDir'     =&amp;gt; 'metadata/metarefresh-href/',&lt;br /&gt;
            'outputFormat' =&amp;gt; 'flatfile',&lt;br /&gt;
        ),&lt;br /&gt;
    ),&lt;br /&gt;
 );&lt;br /&gt;
:*Be kell állítani, hogy az SSP az automata által generált fájlokból dolgozzon. Ehhez a &amp;lt;code&amp;gt;config/config.php&amp;lt;/code&amp;gt; fájlban keressük ki a &amp;lt;code&amp;gt;metadata.source&amp;lt;/code&amp;gt; szakaszt, és az alábbiak szerint szerkesszük át. Amennyiben nem csak a központi metaadatból szeretnénk dolgozni, úgy további sorokat is megadhatunk itt bemutatott mintájára.&lt;br /&gt;
 'metadata.sources' =&amp;gt; array(&lt;br /&gt;
    array('type' =&amp;gt; 'flatfile', 'directory' =&amp;gt; 'metadata/metarefresh-href'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
:*Végül le kell futtatni kézzel a cronjobot, amelyet az SSP webes felületén tudunk megtenni a Configuration fül alatt, a Cron module information page menüpontban. Ekkor létrejönnek a fájlok (majd óránként frissülnek is, ha beállítjuk cronjobként).&lt;br /&gt;
&lt;br /&gt;
===IdP===&lt;br /&gt;
Amennyiben van SSP alapú IdP-nk, melyet szeretnénk a föderáció részévé tenni, úgy a teendők a következők.&lt;br /&gt;
* (A jelenleg is formálódó adminisztratív teendőktől itt most eltekintünk)&lt;br /&gt;
* Kell küldeni egy levelet a [mailto:aai@niif.hu aai@niif.hu] címre, benne néhány mondat mellett az IdP metaadatának URL-jével (https://example.org/simplesamlphp/saml2/idp/metadata.php)&lt;br /&gt;
* Ha minden rendben megy, akkor az IdP bekerül a [[Resource_Registry]]-be, ezáltal a föderációs metaadatba is.&lt;br /&gt;
* Az előző pontban leírt módon be kell állítani a központi metadata feldolgozását.&lt;br /&gt;
* Amennyiben a föderációs metaadatban már szerepel a mi IdP-nk is, úgy a föderáció valamelyik, tesztelési célokat szolgáló SP-jénél ki is próbálhatjuk a bejelentkezést. &lt;br /&gt;
&lt;br /&gt;
:'''Fontos''', hogy a föderációs Discovery Service óránként generálja újra az IdP-k listáját, így ennyi idő mindenképp szükséges, hogy az új IdP megjelenjen itt, az egyes SP-k pedig két óránként töltik újra a metaadatot, így előfordulhat, hogy azonnal nem fog minden működni, de egy-két óra alatt várhatóan beindul. :)&lt;br /&gt;
&lt;br /&gt;
:Tesztelésre használható oldal: [https://wiki.aai.niif.hu/shibtest.php https://wiki.aai.niif.hu/shibtest.php]&lt;br /&gt;
&lt;br /&gt;
* Ahhoz, hogy a Resource Registry-be is be tudjunk lépni és az IdP további, a föderációra vonatkozó beállításait meg tudjuk ejteni, ehhez az IdP-nek ki kell adnia az alábbi attribútumokat:&lt;br /&gt;
** [[HREFAttributeSpec#mail|mail]] - ez belépés után, manuálisan is beállítható&lt;br /&gt;
** [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]&lt;br /&gt;
** [[HREFAttributeSpec#schacHomeOrganizationType|schacHomeOrganizationType]]&lt;br /&gt;
** [[HREFAttributeSpec#eduScopedAffiliation|eduPersonScopedAffiliation]]&lt;br /&gt;
&lt;br /&gt;
====Attribútumok kezelése====&lt;br /&gt;
Beállított IdP-nk alapértelmezés szerint azokat az attribútumokat adja ki, melyeket a metaadat alapján az SP kért (Lásd a metadatában a RequestedAttribute elemeket), és egyúttal alapból meg tudta szerezni a felhasználói adatbázisból, esetünkben az LDAP-ból. Mivel néhány attribútum nem szerepel az LDAP-ban, hanem az IdP-ben kell előállítani, így pár helyen módosítanunk kell az alapértelmezett konfiguráción.&lt;br /&gt;
&lt;br /&gt;
:1. Az &amp;lt;code&amp;gt;attributemap/name2oid.php&amp;lt;/code&amp;gt; fájlba az 's'-betűhöz szúrjuk be az alábbi sort:&lt;br /&gt;
 'schacHomeOrganizationType' =&amp;gt; 'urn:oid:1.3.6.1.4.1.25178.1.2.10',&lt;br /&gt;
:2. A &amp;lt;code&amp;gt;metadata/saml20-idp-hosted.php&amp;lt;/code&amp;gt; fájlba szerkesszük be az alábbi kódrészlet értelemszerűen módosított változatát. Az &amp;lt;code&amp;gt;'auth' =&amp;gt; 'example-ldap',&amp;lt;/code&amp;gt; sor alatt kezdjük.&lt;br /&gt;
 'AttributeNameFormat' =&amp;gt; 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',&lt;br /&gt;
 'userid.attribute' =&amp;gt; 'uid', // Itt adjuk meg, hogy mely, az LDAPból származó attribútum alapján fogja az IdP kiszámítani az eduPersonTargetedID-t&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
                10 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'uid' =&amp;gt; 'eduPersonPrincipalName'&lt;br /&gt;
                //Itt az 'uid' az az attribútum az LDAP-ban, amely a felhasználó azonosítóját tartalmazza, mert ebből képezzük az eduPersonPrincipalName-t.&lt;br /&gt;
                ),&lt;br /&gt;
                20 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'schacHomeOrganizationType' =&amp;gt; array('urn:schac:homeOrganizationType:hu:university')&lt;br /&gt;
                //Kötelező statikus attribútum az [[HREFAttributeSpec#schacHomeOrganizationType|intézmény jellegének]] megfelelően&lt;br /&gt;
                ),&lt;br /&gt;
                30 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonPrincipalName már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                40 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAlter',&lt;br /&gt;
                        'subject' =&amp;gt; 'eduPersonAffiliation',&lt;br /&gt;
                        'pattern' =&amp;gt; '/^.*$/',&lt;br /&gt;
                        'replacement' =&amp;gt; '${0}@intezmenydomain.hu',&lt;br /&gt;
                // Itt adjuk hozzá az intézményi scope-ot az eduPersonAffiliation már meglévő értékéhez&lt;br /&gt;
                ),&lt;br /&gt;
                50 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'eduPersonAffiliation' =&amp;gt; 'eduPersonScopedAffiliation'&lt;br /&gt;
                // Az LDAP-ból eduPersonAffiliation-ként érkező attribútumból föderációs elvárásoknak megfelelően eduPersonScopedAffiliationt készítünk&lt;br /&gt;
                ),&lt;br /&gt;
                60 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:AttributeAdd',&lt;br /&gt;
                        'eduPersonScopedAffiliation' =&amp;gt; array('member@intezmenydomain.hu')&lt;br /&gt;
                // Az eduPersonScopedAffiliation-ben tesztelés céljából kiadhatjuk member értéket, így ha LDAP-ból nem jön érték, akkor is láthatjuk, hogy működik az attribútum kiadás &lt;br /&gt;
                ),&lt;br /&gt;
                61 =&amp;gt; array(&lt;br /&gt;
                        'class' =&amp;gt; 'core:TargetedID',&lt;br /&gt;
                        'nameId' =&amp;gt; TRUE,&lt;br /&gt;
                ),&lt;br /&gt;
               // Itt állítjuk be, hogy az IdP előállítson és kiadhasson állandóazonosítóként eduPersonTargetedID-t, ha kérik&lt;br /&gt;
                70 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap',&lt;br /&gt;
                        'name2oid'&lt;br /&gt;
                // Az LDAP-os attribútum nevekből itt kreálunk szabványos urn:oid formátumúakat&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
       'simplesaml.nameidattribute' =&amp;gt; 'eduPersonPrincipalName',&lt;br /&gt;
       'attributeencodings' =&amp;gt; array(&lt;br /&gt;
               'urn:oid:1.3.6.1.4.1.5923.1.1.1.10' =&amp;gt; 'raw',&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
: További tudnivalók a [[Resource_Registry|Resource Registry-ről]], ill. a [[HREFAttributeSpec|Föderációs attribútum specifikációról]].&lt;br /&gt;
&lt;br /&gt;
* Ha minden rendben ment, akkor a Resource Registry-ben regisztrált IdP-hez tartozó adminisztrációs jogok átkerülnek az IdP technikai gazdájához, s ezzel a folyamat kész is.&lt;br /&gt;
&lt;br /&gt;
===SP===&lt;br /&gt;
Amennyiben IdP-t is beállítottunk, és be is tudunk lépni a Resource Registry-be, úgy nincs más dolgunk, mint az RR-ben új SP-t hozzáadni a föderációhoz, amely a megfelelő átfutási idő után a föderáció minden tagjánál látható is lesz.&lt;br /&gt;
&lt;br /&gt;
Ellenkező esetben (nincs IdP, és nem is tervezünk beállítani), akkor az IdP hozzáadásánál részletezett pontokon kell végig menni a metaadat betöltéséig, s a továbbiakat az említett e-mail címen megbeszélni.&lt;br /&gt;
&lt;br /&gt;
====Attribútum scopeok használata====&lt;br /&gt;
A HREF föderáció IdP-i ún. scopeolt attribútumokat is használnak. Ez a scopeolás azt jelenti, hogy minden egyes IdP csak a saját scopejában ad ki attribútumokat, és a Shibboleth SP-k ezt ellenőrzik is. A scope és az attribútum valódi értéke egy '@' karakterrel kerül elválasztásra (ilyen attribútumok jelenleg: [[HREFAttributeSpec#eduPersonAffiliation|eduPersonScopedAffiliation]] illetve [[HREFAttributeSpec#eduPersonPrincipalName|eduPersonPrincipalName]]).&lt;br /&gt;
&lt;br /&gt;
A SimpleSAMLphp alapértelmezett telepítése nem szűri a hibásan scopeolt értékeket. Kiegészítő modulként szűrésre használható az NIIF által fejlesztett [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-attributescope.git;a=summary attributescope modul], ami reményeink szerint rövid távon a hivatalos SimpleSAMLphp kiadás része lehet.&lt;br /&gt;
&lt;br /&gt;
: Az &amp;lt;code&amp;gt;attributescope&amp;lt;/code&amp;gt; modul használata esetén a következőképp kell módosítani a &amp;lt;code&amp;gt;config/config-metarefresh.php&amp;lt;/code&amp;gt; fájlt:&lt;br /&gt;
&lt;br /&gt;
 'template' =&amp;gt; array(&lt;br /&gt;
   'authproc' =&amp;gt; array(&lt;br /&gt;
     51 =&amp;gt; array('class' =&amp;gt; 'core:AttributeMap', 'oid2name'),&lt;br /&gt;
     55 =&amp;gt; array('class' =&amp;gt; 'attributescope:FilterAttributes'),&lt;br /&gt;
   ),&lt;br /&gt;
   'scopedattributes' =&amp;gt; array('eduPersonScopedAffiliation', 'eduPersonPrincipalName'),&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]] [[Category: simpleSAMLphp]] [[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2547</id>
		<title>Common-lib-terms</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2547"/>
				<updated>2013-05-06T09:04:51Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Meghatározás */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meghatározás==&lt;br /&gt;
A &amp;lt;code&amp;gt;common-lib-terms&amp;lt;/code&amp;gt; az &amp;lt;code&amp;gt;[[HREFAttributeSpec#eduPersonEntitlement|eduPersonEntitlement]]&amp;lt;/code&amp;gt; attribútum egy speciális jelentéssel felruházott értéke. A teljes attribútum érték a következő: &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt;. Ezen rögzített attribútumérték kiadását az egyes intézményekkel szerződéses viszonyban álló folyóirat-kiadók (pl. Ebscohost, Sciencedirect) várják el, amely érték az intézmény oktatóinak, kutatóinak és hallgatóinak járhat. (Ezek a &amp;lt;code&amp;gt;faculity, staff&amp;lt;/code&amp;gt; és  &amp;lt;code&amp;gt;student&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;[[HREFAttributeSpec#eduPersonScopedAffiliation|affiliation]]&amp;lt;/code&amp;gt; értékkel bíró felhasználók).&lt;br /&gt;
&lt;br /&gt;
További információ (angolul): http://middleware.internet2.edu/urn-mace/urn-mace-dir-entitlement.html&lt;br /&gt;
&lt;br /&gt;
==Technikai útmutató==&lt;br /&gt;
Az intézményi IdP attribútumszűrőjén egyfelől engedélyezni kell a megadott kiadókhoz tartozó SP-k számára az eduPersonEntitlement attribútum kiadását, másfelől be kell állítani, hogy a megadott affiliation értékkel rendelkező felhasználók megkapják a &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt; értéket az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútumban. &lt;br /&gt;
===Shibboleth IdP===&lt;br /&gt;
Shibboleth IdP-nél az &amp;lt;code&amp;gt;attribute-resolver.xml&amp;lt;/code&amp;gt;-ben kell kibővíteni az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; definícióját az alábbiak szerint. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;resolver:AttributeDefinition xsi:type=&amp;quot;Script&amp;quot; &lt;br /&gt;
                              xmlns=&amp;quot;urn:mace:shibboleth:2.0:resolver:ad&amp;quot; &lt;br /&gt;
                              id=&amp;quot;eduPersonEntitlement&amp;quot; &lt;br /&gt;
                              sourceAttributeID=&amp;quot;eduPersonEntitlement&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Dependency that provides the source attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;myLDAP&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;eduPersonAffiliation&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SAML 1 and 2 encoders for the attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML1String&amp;quot; &lt;br /&gt;
                           xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                           name=&amp;quot;urn:mace:dir:attribute-def:eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML2String&amp;quot; &lt;br /&gt;
                               xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                               name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.7&amp;quot; &lt;br /&gt;
                               friendlyName=&amp;quot;eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- The script, wrapped in a CDATA section so that special XML characters don't need to be removed --&amp;gt;&lt;br /&gt;
    &amp;lt;Script&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
         importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);         &lt;br /&gt;
         // Create attribute to be returned from definition        &lt;br /&gt;
         if (eduPersonEntitlement == null) eduPersonEntitlement = new BasicAttribute(&amp;quot;eduPersonEntitlement&amp;quot;);         &lt;br /&gt;
         if (eduPersonAffiliation.getValues().contains(&amp;quot;staff&amp;quot;) || eduPersonAffiliation.getValues().contains(&amp;quot;student&amp;quot;)) { &lt;br /&gt;
             eduPersonEntitlement.getValues().add(&amp;quot;urn:mace:dir:entitlement:common-lib-terms&amp;quot;); &lt;br /&gt;
         } &lt;br /&gt;
    ]]&amp;gt;&amp;lt;/Script&amp;gt;&lt;br /&gt;
&amp;lt;/resolver:AttributeDefinition&amp;gt;&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===simpleSAMLphp===&lt;br /&gt;
Be kell szúrni az attribútumgeneráló folyamatba egy tetszőleges sorszámmal, amely már ismeri a felhasználóhoz tartozó affiliation értéket.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
70 =&amp;gt; array(     &lt;br /&gt;
    'class' =&amp;gt; 'core:AttributeAlter',     &lt;br /&gt;
    'subject' =&amp;gt; 'affiliation',     &lt;br /&gt;
    'pattern' =&amp;gt; '/staff|student|faculity/',     &lt;br /&gt;
    'replacement' =&amp;gt; 'urn:mace:dir:entitlement:common-lib-terms',     &lt;br /&gt;
    'target' =&amp;gt; 'eduPersonEntitlement', &lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]]&lt;br /&gt;
[[Category: eduid]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2546</id>
		<title>Common-lib-terms</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2546"/>
				<updated>2013-05-06T09:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meghatározás==&lt;br /&gt;
A &amp;lt;code&amp;gt;common-lib-terms&amp;lt;/code&amp;gt; az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútum egy speciális jelentéssel felruházott értéke. A teljes attribútum érték a következő: &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt;. Ezen rögzített attribútumérték kiadását az egyes intézményekkel szerződéses viszonyban álló folyóirat-kiadók (pl. Ebscohost, Sciencedirect) várják el, amely érték az intézmény oktatóinak, kutatóinak és hallgatóinak járhat. (Ezek a &amp;lt;code&amp;gt;faculity, staff&amp;lt;/code&amp;gt; és  &amp;lt;code&amp;gt;student&amp;lt;/code&amp;gt; affiliation értékkel bíró felhasználók).&lt;br /&gt;
&lt;br /&gt;
További információ (angolul): http://middleware.internet2.edu/urn-mace/urn-mace-dir-entitlement.html&lt;br /&gt;
&lt;br /&gt;
==Technikai útmutató==&lt;br /&gt;
Az intézményi IdP attribútumszűrőjén egyfelől engedélyezni kell a megadott kiadókhoz tartozó SP-k számára az eduPersonEntitlement attribútum kiadását, másfelől be kell állítani, hogy a megadott affiliation értékkel rendelkező felhasználók megkapják a &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt; értéket az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútumban. &lt;br /&gt;
===Shibboleth IdP===&lt;br /&gt;
Shibboleth IdP-nél az &amp;lt;code&amp;gt;attribute-resolver.xml&amp;lt;/code&amp;gt;-ben kell kibővíteni az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; definícióját az alábbiak szerint. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;resolver:AttributeDefinition xsi:type=&amp;quot;Script&amp;quot; &lt;br /&gt;
                              xmlns=&amp;quot;urn:mace:shibboleth:2.0:resolver:ad&amp;quot; &lt;br /&gt;
                              id=&amp;quot;eduPersonEntitlement&amp;quot; &lt;br /&gt;
                              sourceAttributeID=&amp;quot;eduPersonEntitlement&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Dependency that provides the source attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;myLDAP&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;eduPersonAffiliation&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SAML 1 and 2 encoders for the attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML1String&amp;quot; &lt;br /&gt;
                           xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                           name=&amp;quot;urn:mace:dir:attribute-def:eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML2String&amp;quot; &lt;br /&gt;
                               xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                               name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.7&amp;quot; &lt;br /&gt;
                               friendlyName=&amp;quot;eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- The script, wrapped in a CDATA section so that special XML characters don't need to be removed --&amp;gt;&lt;br /&gt;
    &amp;lt;Script&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
         importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);         &lt;br /&gt;
         // Create attribute to be returned from definition        &lt;br /&gt;
         if (eduPersonEntitlement == null) eduPersonEntitlement = new BasicAttribute(&amp;quot;eduPersonEntitlement&amp;quot;);         &lt;br /&gt;
         if (eduPersonAffiliation.getValues().contains(&amp;quot;staff&amp;quot;) || eduPersonAffiliation.getValues().contains(&amp;quot;student&amp;quot;)) { &lt;br /&gt;
             eduPersonEntitlement.getValues().add(&amp;quot;urn:mace:dir:entitlement:common-lib-terms&amp;quot;); &lt;br /&gt;
         } &lt;br /&gt;
    ]]&amp;gt;&amp;lt;/Script&amp;gt;&lt;br /&gt;
&amp;lt;/resolver:AttributeDefinition&amp;gt;&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===simpleSAMLphp===&lt;br /&gt;
Be kell szúrni az attribútumgeneráló folyamatba egy tetszőleges sorszámmal, amely már ismeri a felhasználóhoz tartozó affiliation értéket.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
70 =&amp;gt; array(     &lt;br /&gt;
    'class' =&amp;gt; 'core:AttributeAlter',     &lt;br /&gt;
    'subject' =&amp;gt; 'affiliation',     &lt;br /&gt;
    'pattern' =&amp;gt; '/staff|student|faculity/',     &lt;br /&gt;
    'replacement' =&amp;gt; 'urn:mace:dir:entitlement:common-lib-terms',     &lt;br /&gt;
    'target' =&amp;gt; 'eduPersonEntitlement', &lt;br /&gt;
),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]]&lt;br /&gt;
[[Category: eduid]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2545</id>
		<title>Common-lib-terms</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Common-lib-terms&amp;diff=2545"/>
				<updated>2013-05-06T08:34:21Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Új oldal, tartalma: „==Meghatározás== A &amp;lt;code&amp;gt;common-lib-terms&amp;lt;/code&amp;gt; az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútum egy speciális jelentéssel felruházott értéke. A teljes attribú…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meghatározás==&lt;br /&gt;
A &amp;lt;code&amp;gt;common-lib-terms&amp;lt;/code&amp;gt; az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútum egy speciális jelentéssel felruházott értéke. A teljes attribútum érték a következő: &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt;. Ezen rögzített attribútumérték kiadását az egyes intézményekkel szerződéses viszonyban álló folyóirat-kiadók (pl. Ebscohost, Sciencedirect) várják el, amely érték az intézmény oktatóinak, kutatóinak és hallgatóinak járhat. (Ezek a &amp;lt;code&amp;gt;faculity, staff&amp;lt;/code&amp;gt; és  &amp;lt;code&amp;gt;student&amp;lt;/code&amp;gt; affiliation értékkel bíró felhasználók).&lt;br /&gt;
&lt;br /&gt;
További információ (angolul): http://middleware.internet2.edu/urn-mace/urn-mace-dir-entitlement.html&lt;br /&gt;
&lt;br /&gt;
==Technikai útmutató==&lt;br /&gt;
Az intézményi IdP attribútumszűrőjén egyfelől engedélyezni kell a megadott kiadókhoz tartozó SP-k számára az eduPersonEntitlement attribútum kiadását, másfelől be kell állítani, hogy a megadott affiliation értékkel rendelkező felhasználók megkapják a &amp;lt;code&amp;gt;urn:mace:dir:entitlement:common-lib-terms&amp;lt;/code&amp;gt; értéket az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; attribútumban. &lt;br /&gt;
===Shibboleth IdP===&lt;br /&gt;
Shibboleth IdP-nél az &amp;lt;code&amp;gt;attribute-resolver.xml&amp;lt;/code&amp;gt;-ben kell kibővíteni az &amp;lt;code&amp;gt;eduPersonEntitlement&amp;lt;/code&amp;gt; definícióját az alábbiak szerint. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;resolver:AttributeDefinition xsi:type=&amp;quot;Script&amp;quot; &lt;br /&gt;
                              xmlns=&amp;quot;urn:mace:shibboleth:2.0:resolver:ad&amp;quot; &lt;br /&gt;
                              id=&amp;quot;eduPersonEntitlement&amp;quot; &lt;br /&gt;
                              sourceAttributeID=&amp;quot;eduPersonEntitlement&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Dependency that provides the source attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;myLDAP&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:Dependency ref=&amp;quot;eduPersonAffiliation&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- SAML 1 and 2 encoders for the attribute. --&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML1String&amp;quot; &lt;br /&gt;
                           xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                           name=&amp;quot;urn:mace:dir:attribute-def:eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;resolver:AttributeEncoder xsi:type=&amp;quot;SAML2String&amp;quot; &lt;br /&gt;
                               xmlns=&amp;quot;urn:mace:shibboleth:2.0:attribute:encoder&amp;quot; &lt;br /&gt;
                               name=&amp;quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.7&amp;quot; &lt;br /&gt;
                               friendlyName=&amp;quot;eduPersonEntitlement&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;!-- The script, wrapped in a CDATA section so that special XML characters don't need to be removed --&amp;gt;&lt;br /&gt;
    &amp;lt;Script&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
         importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);         &lt;br /&gt;
         // Create attribute to be returned from definition        &lt;br /&gt;
         if (eduPersonEntitlement == null) eduPersonEntitlement = new BasicAttribute(&amp;quot;eduPersonEntitlement&amp;quot;);         &lt;br /&gt;
         if (eduPersonAffiliation.getValues().contains(&amp;quot;staff&amp;quot;) || eduPersonAffiliation.getValues().contains(&amp;quot;student&amp;quot;)) { &lt;br /&gt;
             eduPersonEntitlement.getValues().add(&amp;quot;urn:mace:dir:entitlement:common-lib-terms&amp;quot;); &lt;br /&gt;
         } &lt;br /&gt;
    ]]&amp;gt;&amp;lt;/Script&amp;gt;&lt;br /&gt;
&amp;lt;/resolver:AttributeDefinition&amp;gt;&lt;br /&gt;
&amp;lt;/source &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: AAI]]&lt;br /&gt;
[[Category: eduid]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_eduGAIN&amp;diff=2523</id>
		<title>Attribute Conversion for eduGAIN</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_eduGAIN&amp;diff=2523"/>
				<updated>2013-05-02T09:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JRA5 Attribute Conversion allows a Bridging Element administrator to define rules to transform attributes being released or received. The same logic can work in both Home and Remote Bridging Elements.&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[Image:JRA5Attributes_bigpicture.png|Attributes:The Big Attribute Picture]]&lt;br /&gt;
&lt;br /&gt;
Attributes are travelling on the wire in eduGAIN-defined format, ie. SAML. Naming attributes and defining their contents might be a standardization task of eduGAIN operators; however it should be possible for federations to agree on custom set of attributes ''beyond &amp;quot;eduGAIN commons&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
Attribute Conversion only adds attributes (or values) to the attribute set; use [[JRA5AttributeConversion#Attribute_Filtering | Attribute Filtering]] for filtering out unnecessary attributes. It also means that if no rules match an attribute, then it will go to the filter unmodified - so conversion works with a '''default by-pass policy'''.&lt;br /&gt;
&lt;br /&gt;
== Attribute conversion rule concepts==&lt;br /&gt;
Most of the rules are based on standard [http://en.wikipedia.org/wiki/Regular_expression regular expressions] and [http://en.wikipedia.org/wiki/Unified_Expression_Language Unified Expression Language]. &lt;br /&gt;
&lt;br /&gt;
Each rule works on the actual attribute set which is not necessarily the initial set, as each rule can alter the set (ie. by changing values or names, adding new attributes to the set). This means that the '''order of the rules is important'''.&lt;br /&gt;
&lt;br /&gt;
Every rule consists of two parts: condition and action. The condition element is used to determine whether this particular rule is to be processed or not. Thus, the rule action is only processed when all the conditions are met (a rule without any conditions is processed by default).&lt;br /&gt;
&lt;br /&gt;
The condition engine now only supports regular expression -based matching rules. There are three types of matching rules&lt;br /&gt;
* local federation peer's identifier (LocalProviderMatch)&lt;br /&gt;
* remote federation peer's identifier (RemoteProviderMatch)&lt;br /&gt;
* attribute values (AttributeMatch)&lt;br /&gt;
&lt;br /&gt;
The rule's action is to create new attributes (or to modify existing ones). Please refer to the detailed BasicRule, MergeRule, SplitRule documentation below.&lt;br /&gt;
&lt;br /&gt;
== Attribute conversion rule types ==&lt;br /&gt;
=== BasicRule ===&lt;br /&gt;
The Basic rule is the simplest attribute conversion rule type. It can create one attribute and optionally use one attribute and regular expressions to transform attribute values.&lt;br /&gt;
&lt;br /&gt;
Basic Rule can create static attributes. You can achieve this by omitting the Condition node. The &amp;lt;code&amp;gt;replaceValues&amp;lt;/code&amp;gt; parameter is true by default, so if you want to append values to (probably) existing attributes, you must declare it using &amp;lt;code&amp;gt;replaceValues=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt;. Also note that you can use multiple AttributeValue nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BasicRule&amp;gt;&lt;br /&gt;
  &amp;lt;Description&amp;gt;Create static attribute (or append to existing if attribute with this name already exists)&amp;lt;/Description&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;eduPersonScopedAffiliation&amp;quot; replaceValues=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;staff@niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;member@href.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next rule is using remote provider matching to determine whether the remote side has an identifier of 'urn:geant:edugain:be:' and any Hungarian domain appended to it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BasicRule&amp;gt;&lt;br /&gt;
  &amp;lt;Description&amp;gt;Create static attribute for some remote providers&amp;lt;/Description&amp;gt;&lt;br /&gt;
  &amp;lt;Condition&amp;gt;&lt;br /&gt;
    &amp;lt;RemoteProviderMatch&amp;gt;^urn:geant:edugain:be:[^:]+\.hu$&amp;lt;/RemoteProviderMatch&amp;gt;&lt;br /&gt;
  &amp;lt;/Condition&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;homeOrganization&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This example shows how to rename an attribute without converting its values. Note that you must use &amp;lt;code&amp;gt;AttributeMatch&amp;lt;/code&amp;gt; without regular expressions to achieve this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BasicRule&amp;gt;&lt;br /&gt;
  &amp;lt;Description&amp;gt;Rename attribute uid to edupersonPrincipalName&amp;lt;/Description&amp;gt;&lt;br /&gt;
  &amp;lt;Condition&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeMatch attributeName=&amp;quot;uid&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Condition&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;edupersonPrincipalName&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;${uid}&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next example demonstrates the use of regular expression matching groups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BasicRule&amp;gt;&lt;br /&gt;
  &amp;lt;Decription&amp;gt;Transform 'o=org,c=country'-style OrgDN to DNS-based homeOrganization&amp;lt;/Decription&amp;gt;&lt;br /&gt;
  &amp;lt;Condition&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeMatch attributeName=&amp;quot;edupersonOrgDN&amp;quot; id=&amp;quot;regex&amp;quot;&amp;gt;o=(.*),c=(.*)&amp;lt;/AttributeMatch&amp;gt;&lt;br /&gt;
  &amp;lt;/Condition&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;homeOrganization&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;${regex[1]}.${regex[2]}&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This last example needs some more explanation. When you want to reference the regular expression matching groups (enclosed by parentheses), you must define the reference name with the 'id' parameter of &amp;lt;code&amp;gt;AttributeMatch&amp;lt;/code&amp;gt;. Then, use &amp;lt;code&amp;gt;${id[0]}&amp;lt;/code&amp;gt; to refer to the whole regular expression match (ie. the whole attribute value), and &amp;lt;code&amp;gt;${id[N]}&amp;lt;/code&amp;gt; to refer to the Nth. matching group of the regular expression. &lt;br /&gt;
{{INFO_EN|You cannot reference regular expressions from another rule.}}&lt;br /&gt;
&lt;br /&gt;
=== MergeRule ===&lt;br /&gt;
The merge rule can merge two or more attributes into one. The attributes whose values you want to merge is declared using the InputAttribute node. You can also use the condition node, but only with &amp;lt;code&amp;gt;RemoteProviderMatch&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;LocalProviderMatch&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;AttributeMatch&amp;lt;/code&amp;gt; is ignored).&lt;br /&gt;
&lt;br /&gt;
This example shows how to combine two attribute values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;MergeRule&amp;gt;&lt;br /&gt;
  &amp;lt;Description&amp;gt;Merges the uid and homeOrganization to edupersonPrincipalName&amp;lt;/Description&amp;gt;&lt;br /&gt;
  &amp;lt;InputAttribute attributeName=&amp;quot;homeOrganization&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;InputAttribute attributeName=&amp;quot;uid&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;edupersonPrincipalName&amp;quot; replaceValues=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;${uid}@${homeOrganization}&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/MergeRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use regular expressions, as with '''BasicRule'''.&lt;br /&gt;
&lt;br /&gt;
=== SplitRule ===&lt;br /&gt;
The '''SplitRule''' is very similar to the '''MergeRule''', the only difference is that the '''SplitRule''' contains one &amp;lt;code&amp;gt;InputAttribute&amp;lt;/code&amp;gt; and more &amp;lt;code&amp;gt;Attribute&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;SplitRule&amp;gt;&lt;br /&gt;
  &amp;lt;Description&amp;gt;Split the edupersonScopedAffiliation to edupersonAffiliation and homeOrganization&amp;lt;/Description&amp;gt;&lt;br /&gt;
  &amp;lt;InputAttribute attributeName=&amp;quot;edupersonScopedAffiliation&amp;quot; id=&amp;quot;scopedAffiliation&amp;quot; &amp;gt;^([^@]+)@(.+)$&amp;lt;/InputAttribute&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;edupersonAffiliation&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;${scopedAffiliation[1]}&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;homeOrganization&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;${scopedAffiliation[2]}&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/SplitRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CustomRule ===&lt;br /&gt;
If you need to create new attributes from program (eg. appending generated identifiers), you can use the '''CustomRule''' type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CustomRule className=&amp;quot;org.test.MyCustomRuleImpl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Configuration&amp;gt;&lt;br /&gt;
    &amp;lt;!-- any xml here --&amp;gt;&lt;br /&gt;
  &amp;lt;/Configuration&amp;gt;&lt;br /&gt;
&amp;lt;/CustomRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''CustomRule''' class must implement the &amp;lt;code&amp;gt;net.geant.edugain.attributes.rules.Rule&amp;lt;/code&amp;gt; interface, configuration can be read with the DOM API. Please refer to the Attribute Converter JavaDOC, and see the test package as it contains a sample implementation.&lt;br /&gt;
&lt;br /&gt;
=== Negating matches ===&lt;br /&gt;
If your federation has ''optional'' attributes then sometimes it is desirable to process rules '''only if a particular attribute does not exist.''' Therefore it is possible to append a '''&amp;lt;code&amp;gt;negate&amp;lt;/code&amp;gt;''' boolean attribute (setting it to '''true''') to the &amp;lt;code&amp;gt;&amp;lt;*Match&amp;gt;&amp;lt;/code&amp;gt; nodes (inside the &amp;lt;code&amp;gt;&amp;lt;Condition&amp;gt;&amp;lt;/code&amp;gt; element) to revert the match. It means that the rule is only processed if there is no match for the given value.&lt;br /&gt;
&lt;br /&gt;
The following example creates &amp;lt;code&amp;gt;preferredLanguage&amp;lt;/code&amp;gt; only if it is not set by the IdP (or by the peer's home bridging element):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BasicRule&amp;gt;&lt;br /&gt;
  &amp;lt;Decription&amp;gt;Create preferredLanguage only if source has not supplied it&amp;lt;/Decription&amp;gt;&lt;br /&gt;
  &amp;lt;Condition&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeMatch attributeName=&amp;quot;preferredLanguage&amp;quot; negate=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Condition&amp;gt;&lt;br /&gt;
  &amp;lt;Attribute attributeName=&amp;quot;preferredLanguage&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;AttributeValue&amp;gt;hu, en-gb;q=0.8, en;q=0.7&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
  &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using attribute name mapper ==&lt;br /&gt;
For interoperability, SAML AttributeStatement carries attribute names with URN-style attribute naming scheme. For example, the 'mail' logical attribute name can be named as &amp;lt;code&amp;gt;'urn:mace:dir:attribute-def:mail'&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;'urn:oid:0.9.2342.19200300.100.1.3'&amp;lt;/code&amp;gt;. Shibboleth2 further encourages federations to use the latter form (ie. the LDAP oid).&lt;br /&gt;
&lt;br /&gt;
The eduGAIN Attribute Converter library comes with an attribute name mapping subsystem. With the help of the attribute name mapper, system administrators can '''write the attribute converter configuration independently of the currently used attribute name format in AttributeStatement'''.&lt;br /&gt;
&lt;br /&gt;
=== Attribute name mapper concepts ===&lt;br /&gt;
As the attribute conversion sits between two federations (and probably two attribute naming schemes), there are two types of physical attributes: the 'input' and 'output' attributes. Note that these notation is different in Home and Remote BEs: Home BE releases attributes to the eduGAIN federation, Remote BE releases attributes to the local federation. So the eduGAIN format is the''' 'output' attribute format of the Home BE, and the 'input' format of the Remote BE.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following example shows the difference between logical and physical attribute names.&lt;br /&gt;
&lt;br /&gt;
{| {{wikitable}}&lt;br /&gt;
|+ '''Input and output attribute names'''&lt;br /&gt;
! Physical input attribute name !! Logical attribute name !! Physical output attribute name&lt;br /&gt;
|-&lt;br /&gt;
|urn:mace:dir:attribute-def:mail&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| &amp;lt;center&amp;gt;'''mail'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| urn:mace:dir:attribute-def:mail&lt;br /&gt;
|-&lt;br /&gt;
|urn:oid:0.9.2342.19200300.100.1.3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration of the attribute name mapper ===&lt;br /&gt;
The configuration xml of the attribute name mapper consists of one or more AttributeDefinition nodes. Each AttributeDefinition node specifies one logical attribute name (called 'id') and one physical AttributeName - which is the physical 'output' attribute name format. You can also specify AttributeNamespace (for SAML1.0).&lt;br /&gt;
&lt;br /&gt;
The 'input' attribute names are configured using the 'Attribute' node. Note that the output name is also interpreted as input name, so it is not necessary to declare it twice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;AttributeDefinition&lt;br /&gt;
  Id=&amp;quot;mail&amp;quot;&lt;br /&gt;
  AttributeName=&amp;quot;urn:mace:dir:attribute-def:mail&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute AttributeName=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/AttributeDefinition&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using logical attribute names ===&lt;br /&gt;
When attribute name is referenced in a conversion rule, attribute mapper tries to interpret it as logical attribute name. Note that the logical attribute names are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
=== Using SAML1.1 Namespaces ===&lt;br /&gt;
EduGAIN Bridging Elements use SAML1.1 as communication protocol. SAML1.1 forces the use of Attribute NameSpace. You can specify the exact namespace in the attribute name mapping configuration using the 'AttributeNameSpace' attribute (with both the AttributeDefinition and Attribute nodes). When you use AttributeNameSpace, the input matching considers two attributes with the same name but different namespace different. The output attributes will contain the namespace information.&lt;br /&gt;
&lt;br /&gt;
== Attribute Filtering ==&lt;br /&gt;
=== Concepts ===&lt;br /&gt;
At Home BE, Filtering normally gets its incoming attribute set from Conversion; at Remote BE, it gets incoming attributes from the other bridging element.&lt;br /&gt;
&lt;br /&gt;
From a technical viewpoint, Attribute Filtering is just a Rule extension to Conversion, so you can use most of the features of Converter, especially regular expressions and matching conditions. One major difference is that '''only explicitly allowed attributes can pass through''', so you have to list all the attributes that you want to support in eduGAIN.&lt;br /&gt;
&lt;br /&gt;
Filter uses name mappers in the same way as Converter. So you should define your attributes there before you start using 'friendly' attribute names here.&lt;br /&gt;
=== Allowing and denying attributes ===&lt;br /&gt;
Three main rules of the filtering:&lt;br /&gt;
# Default action is to deny ALL attributes.&lt;br /&gt;
# You can allow/deny whole attributes or specific values of the attributes.&lt;br /&gt;
# The first rule decides. If you allowed something, you can not deny it later and vice versa. So start with the special rules and leave the generic rules to the end.&lt;br /&gt;
&lt;br /&gt;
You can allow an attribute by using &amp;lt;code&amp;gt;&amp;lt;AllowAttribute&amp;gt;&amp;lt;/code&amp;gt; element and deny it with &amp;lt;code&amp;gt;&amp;lt;DenyAttribute&amp;gt;&amp;lt;/code&amp;gt;. Each element can optionally have child elements &amp;lt;code&amp;gt;&amp;lt;AttributeValue&amp;gt;&amp;lt;/code&amp;gt;, which means that the action is only performed on certain values of the attribute.&lt;br /&gt;
&lt;br /&gt;
{{INFO_EN|An attribute is removed from the set if its last value is removed. It means that it's not possible to pass through attributes without at least one value.}}&lt;br /&gt;
=== Using conditions ===&lt;br /&gt;
You can use the &amp;lt;code&amp;gt;&amp;lt;Condition&amp;gt;&amp;lt;/code&amp;gt; node in a filter rule just like with converter. The syntax is the same. So if you omit the &amp;lt;code&amp;gt;Condition&amp;lt;/code&amp;gt; element then the rule is evaluated unconditionally.&lt;br /&gt;
&lt;br /&gt;
There is one slight difference: in FilterRule, '''AttributeMatch is always evaluated on the original input attribute set'''. It means that you can reference attributes in conditions even if they were allowed or denied before. (This is what you would normally expect, though.)&lt;br /&gt;
&lt;br /&gt;
You can allow or deny multiple attributes within one &amp;lt;code&amp;gt;&amp;lt;FilterRule&amp;gt;&amp;lt;/code&amp;gt;. Note that the rule only applies if all the conditions within its &amp;lt;code&amp;gt;&amp;lt;Condition&amp;gt;&amp;lt;/code&amp;gt; element evaluate to true.&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;AttributeFilter  xmlns='urn:geant:edugain:attribute-mangling:1.0'&lt;br /&gt;
   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'&lt;br /&gt;
   xsi:schemaLocation='urn:geant:edugain:attribute-mangling:1.0 AttributeMangling.xsd'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;FilterRule&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;Unconditional allowing and denying. The main rule is to deny ALL attributes.&amp;lt;/Description&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;mail&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;cn&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;eppn&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;DenyAttribute attributeName=&amp;quot;userPassword&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;DenyAttribute attributeName=&amp;quot;uid&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;DenyAttribute attributeName=&amp;quot;homeOrganization&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;schacHomeOrganization&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/FilterRule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;FilterRule&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;Use conditions - allow only specific attribute values&amp;lt;/Description&amp;gt;&lt;br /&gt;
       &amp;lt;Condition&amp;gt;&lt;br /&gt;
           &amp;lt;LocalProviderMatch&amp;gt;^urn:.*\.hu$&amp;lt;/LocalProviderMatch&amp;gt;&lt;br /&gt;
       &amp;lt;/Condition&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;eduPersonEntitlement&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;AttributeValue&amp;gt;^.*@.*\.hu$&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
       &amp;lt;/AllowAttribute&amp;gt;&lt;br /&gt;
   &amp;lt;/FilterRule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;FilterRule&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;Use conditions - reference any attribute&amp;lt;/Description&amp;gt;&lt;br /&gt;
       &amp;lt;Condition&amp;gt;&lt;br /&gt;
           &amp;lt;AttributeMatch attributeName=&amp;quot;homeOrganization&amp;quot;&amp;gt;niif.hu&amp;lt;/AttributeMatch&amp;gt;&lt;br /&gt;
       &amp;lt;/Condition&amp;gt;&lt;br /&gt;
       &amp;lt;AllowAttribute attributeName=&amp;quot;eduPersonEntitlement&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;AttributeValue&amp;gt;^.*@niif\.hu$&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
       &amp;lt;/AllowAttribute&amp;gt;&lt;br /&gt;
   &amp;lt;/FilterRule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/AttributeFilter&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Integration ==&lt;br /&gt;
You can integrate Attribute Conversion and Filtering into your Bridging Element by using these java code snippets. (Of course, edugain.jar and converter.jar need to be placed on the classpath.)&lt;br /&gt;
&lt;br /&gt;
=== Initialization time ===&lt;br /&gt;
This code needs to be invoked in BE initialization time (and not in runtime, as XML configuration parsing is a time-consuming process).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  // get a reference to the AttributeConverterFactory singleton object&lt;br /&gt;
  AttributeConverterFactory factory = AttributeConverterFactory.getInstance();&lt;br /&gt;
  // set the configuration file paths (which paths can be set in web.xml for example)&lt;br /&gt;
  factory.setAttributeConverterFilePath(&amp;quot;path-to-converter.xml&amp;quot;);&lt;br /&gt;
  factory.setAttributeFilterFilePath(&amp;quot;path-to-filter.xml&amp;quot;);&lt;br /&gt;
  factory.setAttributeNameMapperFilePath(&amp;quot;path-to-namemapper.xml&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  // create converter and filter objects&lt;br /&gt;
  try {&lt;br /&gt;
    AttributeConverter converter = factory.createAttributeConverter();&lt;br /&gt;
    AttributeFilter filter = factory.createAttributeFilter();&lt;br /&gt;
  } catch (ConfigurationException ex) {&lt;br /&gt;
    // handle configuration errors (missing files, not valid xmls and more issues)&lt;br /&gt;
    log.error(ex);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Runtime ===&lt;br /&gt;
This code is invoked in BE runtime. You should have a List of AttributeValues, which was either received from the IdP or from the H-BE. You will get the output attribute set after invoking &amp;lt;code&amp;gt;process()&amp;lt;/code&amp;gt; method. Note that &amp;lt;code&amp;gt;process()&amp;lt;/code&amp;gt; takes two more arguments: &amp;lt;code&amp;gt;remote&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt;. These represent the local and remote peers that your BE bridges together. Use of these identifiers is optional, you can pass &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{ATTENTION_EN|If you do not pass &amp;lt;code&amp;gt;local&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;remote&amp;lt;/code&amp;gt; then rules containing &amp;lt;code&amp;gt;LocalProviderMatch&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RemoteProviderMatch&amp;lt;/code&amp;gt; will '''NOT''' be executed.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  String remote = &amp;quot;remote-federation-peer-identifier&amp;quot;;&lt;br /&gt;
  String local = &amp;quot;local-federation-peer-identifier&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  // get Attributes from the assertion&lt;br /&gt;
  List&amp;lt;AttributeValues&amp;gt; input = ...;&lt;br /&gt;
&lt;br /&gt;
  // Call converter and filter in order.&lt;br /&gt;
  // Home BE should call converter first, remote BE should call filter first.&lt;br /&gt;
  if (isHomeBE) {&lt;br /&gt;
    List&amp;lt;AttributeValues&amp;gt; output = converter.process(input, remote, local);&lt;br /&gt;
    output = filter.process(output, remote, local);&lt;br /&gt;
  } else {&lt;br /&gt;
    List&amp;lt;AttributeValues&amp;gt; output = filter.process(input, remote, local);&lt;br /&gt;
    output = converter.process(output, remote, local);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // process output here, create new assertion, etc.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
=== XMLTest.sh ===&lt;br /&gt;
Attribute conversion library comes with XML-based test framework. The test can be invoked by the &amp;lt;code&amp;gt;net.geant.edugain.attributes.xmltest.AttributeConverterTest&amp;lt;/code&amp;gt; main class. There is the '''&amp;lt;code&amp;gt;XMLTest.sh&amp;lt;/code&amp;gt;''' script attached to the project, which makes it easy to execute the testing framework.&lt;br /&gt;
&lt;br /&gt;
 $ ./XMLTest.sh&lt;br /&gt;
 &lt;br /&gt;
 Attribute Converter Test usage&lt;br /&gt;
 &lt;br /&gt;
 java AttributeConverterTest&lt;br /&gt;
   [-debug]&lt;br /&gt;
   [-converterconfig AttributeConverter.xml]&lt;br /&gt;
   [-filteringconfig AttributeFilter.xml]&lt;br /&gt;
   [-attributenameconfig AttributeNameMapping.xml]&lt;br /&gt;
   [-output output.xml]&lt;br /&gt;
   input.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Example test configuration ====&lt;br /&gt;
The &amp;lt;code&amp;gt;xmltest/&amp;lt;/code&amp;gt; directory contains the following examples&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;AttributeNameMapper.xml&amp;lt;/code&amp;gt;'''  converter name mapper configuration&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;AttributeMapper&lt;br /&gt;
   xmlns='urn:geant:edugain:attribute-mapper:1.0'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;AttributeDefinition &lt;br /&gt;
    Id=&amp;quot;mail&amp;quot; &lt;br /&gt;
    AttributeName=&amp;quot;urn:mace:dir:attribute-def:mail&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Attribute AttributeName=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/AttributeDefinition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;AttributeDefinition&lt;br /&gt;
    Id=&amp;quot;edupersonAffiliation&amp;quot;&lt;br /&gt;
    AttributeName=&amp;quot;urn:mace:dir:attribute-def:eduPersonAffiliation&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;AttributeDefinition&lt;br /&gt;
    Id=&amp;quot;homeOrganization&amp;quot;&lt;br /&gt;
    AttributeName=&amp;quot;urn:mace:dir:attribute-def:homeOrganization&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;AttributeDefinition&lt;br /&gt;
    Id=&amp;quot;cn&amp;quot;&lt;br /&gt;
    AttributeName=&amp;quot;urn:mace:dir:attribute-def:cn&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Attribute AttributeName=&amp;quot;urn:oid:2.5.4.3&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/AttributeDefinition&amp;gt;&lt;br /&gt;
&amp;lt;/AttributeMapper&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;AttributeConverter.xml&amp;lt;/code&amp;gt;''' converter configuration&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;AttributeConverter  &lt;br /&gt;
   xmlns='urn:geant:edugain:attribute-mangling:1.0'&amp;gt;&lt;br /&gt;
    &amp;lt;BasicRule&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;Create static attribute&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Attribute attributeName=&amp;quot;eduPersonAffiliation&amp;quot; replaceValues=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;AttributeValue&amp;gt;staff@niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
    &amp;lt;BasicRule&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;Create static attribute for some remote providers&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Condition&amp;gt;&lt;br /&gt;
            &amp;lt;RemoteProviderMatch&amp;gt;^urn:geant:edugain:be:[^:]+\.hu$&amp;lt;/RemoteProviderMatch&amp;gt;&lt;br /&gt;
        &amp;lt;/Condition&amp;gt;&lt;br /&gt;
        &amp;lt;Attribute attributeName=&amp;quot;homeOrganization&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;AttributeValue&amp;gt;niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/BasicRule&amp;gt;&lt;br /&gt;
    &amp;lt;MergeRule&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;Merges the common name to the email address(es)&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;InputAttribute attributeName=&amp;quot;cn&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;InputAttribute attributeName=&amp;quot;mail&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;Attribute attributeName=&amp;quot;mail&amp;quot; replaceValues=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;AttributeValue&amp;gt;${cn} &amp;amp;lt;${mail}&amp;amp;gt;&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/MergeRule&amp;gt;&lt;br /&gt;
&amp;lt;/AttributeConverter&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;code&amp;gt;AttributeTest.xml&amp;lt;/code&amp;gt;''' test input xml&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;AttributeTest&lt;br /&gt;
   xmlns='urn:geant:edugain:attribute-test:1.0'&lt;br /&gt;
   Remote=&amp;quot;urn:geant:edugain:be:niif.hu&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;adam.lantos@niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;hege@niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:mace:dir:attribute-def:eduPersonAffiliation&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;staff&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:oid:2.5.4.3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;Adam Lantos&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
&amp;lt;/AttributeTest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Output of the example ====&lt;br /&gt;
&lt;br /&gt;
 $ ./XMLTest.sh \&lt;br /&gt;
   -converterconfig xmltest/AttributeConverter.xml \&lt;br /&gt;
   -attributenameconfig xmltest/AttributeNameMapper.xml \&lt;br /&gt;
   xmltest/AttributeTest.xml &lt;br /&gt;
 &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (80) : Creating new rule: class net.geant.edugain.attributes.rules.BasicRule &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (81) : Rule Description: Create static attribute &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (80) : Creating new rule: class net.geant.edugain.attributes.rules.BasicRule &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (81) : Rule Description: Create static attribute for some remote providers &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (80) : Creating new rule: class net.geant.edugain.attributes.rules.MergeRule &lt;br /&gt;
 AttributeConverter.&amp;lt;init&amp;gt; (81) : Rule Description: Merges the common name to the email address(es) &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;AttributeTest xmlns=&amp;quot;urn:geant:edugain:attribute-test:1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:mace:dir:attribute-def:eduPersonAffiliation&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;staff&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;staff@niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:mace:dir:attribute-def:mail&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;Adam Lantos &amp;amp;amp;lt;adam.lantos@niif.hu&amp;amp;amp;gt;&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;Adam Lantos &amp;amp;amp;lt;hege@niif.hu&amp;amp;amp;gt;&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:mace:dir:attribute-def:homeOrganization&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;niif.hu&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
    &amp;lt;Attribute AttributeName=&amp;quot;urn:mace:dir:attribute-def:cn&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;AttributeValue&amp;gt;Adam Lantos&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
    &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
 &amp;lt;/AttributeTest&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Real-life examples ===&lt;br /&gt;
{{TODO_EN|Please post your BE configuration here.}}&lt;br /&gt;
==== Hungarnet ====&lt;br /&gt;
===== Home =====&lt;br /&gt;
===== Remote =====&lt;br /&gt;
&lt;br /&gt;
[[Kategória: english]]&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_simpleSAMLphp&amp;diff=2522</id>
		<title>Attribute Conversion for simpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_simpleSAMLphp&amp;diff=2522"/>
				<updated>2013-05-02T09:18:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the features of Attribute Conversion and Filtering library for simpleSAMLphp&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[http://edugain.org eduGAIN] uses Bridging Elements for interconnecting federations. To provide attribute translation and filtering services, an [[Attribute_Conversion_for_eduGAIN | attribute 'mangling' library]] was developed for the Java-based bridging elements. As [http://rnd.feide.no/simplesamlphp/ simpleSAMLphp] can also be used as an eduGAIN bridging element, the conversion and filtering library was ported to PHP.&lt;br /&gt;
&lt;br /&gt;
'''Beyond eduGAIN, you can use this module for every IdP or SP operating mode (shib13 SP/IdP, saml2 SP/IdP) of simpleSAMLphp in order to provide more powerful attribute conversion and filtering capabilities.'''&lt;br /&gt;
&lt;br /&gt;
== Download and support ==&lt;br /&gt;
You can download the module from [https://www.aai.niif.hu/ssp-attributes here]. The module is in beta stage, it needs broader community review. It is not yet recommended for production environments.&lt;br /&gt;
&lt;br /&gt;
If you have any questions regarding the module, please write to '''aai _aT_ niif _dOt hu''.&lt;br /&gt;
&lt;br /&gt;
For changelogs please visit the [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-edugain project repository].&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
=== eduGAIN ===&lt;br /&gt;
This library is intended to be configuration-compatible with the [http://edugain.org eduGAIN] [[Attribute_Conversion_for_eduGAIN]] Java library. The module can read the eduGAIN converter and filter engine XML configuration files and should operate the same way as the Java one.&lt;br /&gt;
=== Configuration files ===&lt;br /&gt;
The eduGAIN attribute converter and filter module defines its own XML schema for attribute conversion and attribute filtering purposes. See the [[Attribute_Conversion_for_eduGAIN]] page for more information on attribute rules.&lt;br /&gt;
&lt;br /&gt;
== Using the module ==&lt;br /&gt;
This module has a working name &amp;lt;code&amp;gt;edugain&amp;lt;/code&amp;gt;. As this module only addresses the attribute translation part of the 'eduGAIN-problem', it might be renamed later.&lt;br /&gt;
=== Enabling the simpleSAMLphp module ===&lt;br /&gt;
This module depends on the '''xsl''' php extensions (more specifically, the ''XSLTProcessor'' class), so make sure it is properly configured.&lt;br /&gt;
&lt;br /&gt;
The module can be enabled by creating an empty file named &amp;lt;code&amp;gt;modules/edugain/default-enable&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== simpleSAMLphp module configuration ===&lt;br /&gt;
EduGAIN is available for simpleSAMLphp as an authentication processing filter: ''edugain:Attributes''. The Attributes processing filter takes the following configuration properties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
   50 =&amp;gt; array(&lt;br /&gt;
    'class' =&amp;gt; 'edugain:Attributes',&lt;br /&gt;
    'mode' =&amp;gt; 'idp',&lt;br /&gt;
    'converterconfig' =&amp;gt; '/path/to/AttributeConverter.xml',&lt;br /&gt;
    'filterconfig' =&amp;gt; '/path/to/AttributeFilter.xml',&lt;br /&gt;
    'cache' =&amp;gt; true&lt;br /&gt;
   )&lt;br /&gt;
 )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;Configuration parameters for the module&lt;br /&gt;
* '''class''' (required): defines the eduGAIN filter for simpleSAMLphp.&lt;br /&gt;
* '''mode''' (required): configures the way this module operates (&amp;lt;code&amp;gt;idp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sp&amp;lt;/code&amp;gt;). See [[#Operating_modes | below for more information on operating modes]]&lt;br /&gt;
* '''converterconfig''' (optional): configures the path of the attribute converter configuration xml file.&lt;br /&gt;
* '''filterconfig''' (optional): configures the path of the attribute filter configuration xml file.&lt;br /&gt;
* '''cache''' (optional, default: true): enables or disables the internal configuration cache. See the [[#Configuration_cache]] section below for more.&lt;br /&gt;
&lt;br /&gt;
{{INFO_EN|If either &amp;lt;code&amp;gt;converterconfig&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;filterconfig&amp;lt;/code&amp;gt; is omitted, than the relevant part of the module (conversion or filtering respectively) is disabled. Note that '''disabling filter means you let all the attributes through'''. }}&lt;br /&gt;
&lt;br /&gt;
== Operating modes ==&lt;br /&gt;
EduGAIN module can operate in two modes, '''idp''' or '''sp'''. This mode affects two behaviors: the conversion-filtering order, and the provider matching.&lt;br /&gt;
&lt;br /&gt;
* in '''idp''' mode, attribute filter is run '''after''' conversion, and the RemoteProvider match is done against the SP (or R-BE in eduGAIN bridged environment) which initiated the SSO session .&lt;br /&gt;
* in '''sp''' mode, attribute filter is run '''before''' conversion, and the RemoteProvider match is done against the IdP (or H-BE in eduGAIN bridged environment) which released the attributes to our simpleSAMLphp SP.&lt;br /&gt;
&lt;br /&gt;
== Configuration file ==&lt;br /&gt;
The simpleSAMLphp eduGAIN module reads the eduGAIN XML configuration format and transforms it into php arrays using XSL transformation. The submodules (''edugain:SplitMerge'' and ''edugain:Filter'') are configured automatically by the edugain:Attributes class.&lt;br /&gt;
&lt;br /&gt;
PHP configuration interface for these filters are not supported at the moment and may be subject to change, so please use the XML configuration.&lt;br /&gt;
&lt;br /&gt;
=== Configuration cache ===&lt;br /&gt;
The XML reading is very time-consuming but conversion and filtering rules should be evaluated on every request. Because of that, the eduGAIN module can cache the XML configuration into a serialized PHP array, which is stored locally in a directory named &amp;lt;code&amp;gt;cache&amp;lt;/code&amp;gt;. If the XML file is not updated since the last cache file generation then the cache is used and the XML parsing part is skipped. Cache file name is computed according to the following:&lt;br /&gt;
 md5(full_configuration_file_path).cache.php&lt;br /&gt;
&lt;br /&gt;
{{INFO_EN|Enabling the cache is strongly recommended in production environments.}}&lt;br /&gt;
&lt;br /&gt;
== Differences between the Java and the PHP implementations ==&lt;br /&gt;
* There is no '''CustomRule''' for attribute conversion. One can use simpleSAMLphp authentication processing filter API to implement arbitrary conversion rules.&lt;br /&gt;
* '''LocalProvider''' matching is unsupported in simpleSAMLphp. Unfortunately when simpleSAMLphp is in bridging mode (using the SP module to protect an IdP), the IdP processing filters do not see the peer entity of the SP module. However, you can achieve the correct behavior by putting one ''edugain:Attributes'' processing filter in the SP configuration and use '''RemoteProvider''' matches to filter and convert attributes there.&lt;br /&gt;
* You don't need to use a separate attribute name mapper, because simpleSAMLphp contains built-in '''name2oid''','''oid2name''', '''name2urn''' and '''urn2name''' methods, which provide the same functionality.&lt;br /&gt;
* Regular expressions are somewhat different in PHP. The eduGAIN module uses perl-compatible regular expressions (see [http://hu.php.net/manual/en/function.preg-match.php preg_match documentation] for details).&lt;br /&gt;
&lt;br /&gt;
[[Kategória: AAI]]&lt;br /&gt;
[[Kategória: english]]&lt;br /&gt;
[[Kategória: simplesamlphp]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_simpleSAMLphp&amp;diff=2521</id>
		<title>Attribute Conversion for simpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Attribute_Conversion_for_simpleSAMLphp&amp;diff=2521"/>
				<updated>2013-05-02T09:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the features of Attribute Conversion and Filtering library for simpleSAMLphp&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[http://edugain.org eduGAIN] uses Bridging Elements for interconnecting federations. To provide attribute translation and filtering services, an [[Attribute_Conversion_for_eduGAIN | attribute 'mangling' library]] was developed for the Java-based bridging elements. As [http://rnd.feide.no/simplesamlphp/ simpleSAMLphp] can also be used as an eduGAIN bridging element, the conversion and filtering library was ported to PHP.&lt;br /&gt;
&lt;br /&gt;
'''Beyond eduGAIN, you can use this module for every IdP or SP operating mode (shib13 SP/IdP, saml2 SP/IdP) of simpleSAMLphp in order to provide more powerful attribute conversion and filtering capabilities.'''&lt;br /&gt;
&lt;br /&gt;
== Download and support ==&lt;br /&gt;
You can download the module from [https://www.aai.niif.hu/ssp-attributes here]. The module is in beta stage, it needs broader community review. It is not yet recommended for production environments.&lt;br /&gt;
&lt;br /&gt;
If you have any questions regarding the module, please write to '''aai _aT_ niif _dOt hu''.&lt;br /&gt;
&lt;br /&gt;
For changelogs please visit the [https://repo.niif.hu/gitweb/gitweb.cgi?p=simplesamlphp-edugain project repository].&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
=== eduGAIN ===&lt;br /&gt;
This library is intended to be configuration-compatible with the [http://edugain.org eduGAIN] [[Attribute_Conversion_for_eduGAIN]] Java library. The module can read the eduGAIN converter and filter engine XML configuration files and should operate the same way as the Java one.&lt;br /&gt;
=== Configuration files ===&lt;br /&gt;
The eduGAIN attribute converter and filter module defines its own XML schema for attribute conversion and attribute filtering purposes. See the [[Attribute_Conversion_for_eduGAIN]] page for more information on attribute rules.&lt;br /&gt;
&lt;br /&gt;
== Using the module ==&lt;br /&gt;
This module has a working name &amp;lt;code&amp;gt;edugain&amp;lt;/code&amp;gt;. As this module only addresses the attribute translation part of the 'eduGAIN-problem', it might be renamed later.&lt;br /&gt;
=== Enabling the simpleSAMLphp module ===&lt;br /&gt;
This module depends on the '''xsl''' php extensions (more specifically, the ''XSLTProcessor'' class), so make sure it is properly configured.&lt;br /&gt;
&lt;br /&gt;
The module can be enabled by creating an empty file named &amp;lt;code&amp;gt;modules/edugain/default-enable&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== simpleSAMLphp module configuration ===&lt;br /&gt;
EduGAIN is available for simpleSAMLphp as an authentication processing filter: ''edugain:Attributes''. The Attributes processing filter takes the following configuration properties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 'authproc' =&amp;gt; array(&lt;br /&gt;
   50 =&amp;gt; array(&lt;br /&gt;
    'class' =&amp;gt; 'edugain:Attributes',&lt;br /&gt;
    'mode' =&amp;gt; 'idp',&lt;br /&gt;
    'converterconfig' =&amp;gt; '/path/to/AttributeConverter.xml',&lt;br /&gt;
    'filterconfig' =&amp;gt; '/path/to/AttributeFilter.xml',&lt;br /&gt;
    'cache' =&amp;gt; true&lt;br /&gt;
   )&lt;br /&gt;
 )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;Configuration parameters for the module&lt;br /&gt;
* '''class''' (required): defines the eduGAIN filter for simpleSAMLphp.&lt;br /&gt;
* '''mode''' (required): configures the way this module operates (&amp;lt;code&amp;gt;idp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sp&amp;lt;/code&amp;gt;). See [[#Operating_modes | below for more information on operating modes]]&lt;br /&gt;
* '''converterconfig''' (optional): configures the path of the attribute converter configuration xml file.&lt;br /&gt;
* '''filterconfig''' (optional): configures the path of the attribute filter configuration xml file.&lt;br /&gt;
* '''cache''' (optional, default: true): enables or disables the internal configuration cache. See the [[#Configuration_cache]] section below for more.&lt;br /&gt;
&lt;br /&gt;
{{INFO_EN|If either &amp;lt;code&amp;gt;converterconfig&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;filterconfig&amp;lt;/code&amp;gt; is omitted, than the relevant part of the module (conversion or filtering respectively) is disabled. Note that '''disabling filter means you let all the attributes through'''. }}&lt;br /&gt;
&lt;br /&gt;
== Operating modes ==&lt;br /&gt;
EduGAIN module can operate in two modes, '''idp''' or '''sp'''. This mode affects two behaviors: the conversion-filtering order, and the provider matching.&lt;br /&gt;
&lt;br /&gt;
* in '''idp''' mode, attribute filter is run '''after''' conversion, and the RemoteProvider match is done against the SP (or R-BE in eduGAIN bridged environment) which initiated the SSO session .&lt;br /&gt;
* in '''sp''' mode, attribute filter is run '''before''' conversion, and the RemoteProvider match is done against the IdP (or H-BE in eduGAIN bridged environment) which released the attributes to our simpleSAMLphp SP.&lt;br /&gt;
&lt;br /&gt;
== Configuration file ==&lt;br /&gt;
The simpleSAMLphp eduGAIN module reads the eduGAIN XML configuration format and transforms it into php arrays using XSL transformation. The submodules (''edugain:SplitMerge'' and ''edugain:Filter'') are configured automatically by the edugain:Attributes class.&lt;br /&gt;
&lt;br /&gt;
PHP configuration interface for these filters are not supported at the moment and may be subject to change, so please use the XML configuration.&lt;br /&gt;
&lt;br /&gt;
=== Configuration cache ===&lt;br /&gt;
The XML reading is very time-consuming but conversion and filtering rules should be evaluated on every request. Because of that, the eduGAIN module can cache the XML configuration into a serialized PHP array, which is stored locally in a directory named &amp;lt;code&amp;gt;cache&amp;lt;/code&amp;gt;. If the XML file is not updated since the last cache file generation then the cache is used and the XML parsing part is skipped. Cache file name is computed according to the following:&lt;br /&gt;
 md5(full_configuration_file_path).cache.php&lt;br /&gt;
&lt;br /&gt;
{{INFO_EN|Enabling the cache is strongly recommended in production environments.}}&lt;br /&gt;
&lt;br /&gt;
== Differences between the Java and the PHP implementations ==&lt;br /&gt;
* There is no '''CustomRule''' for attribute conversion. One can use simpleSAMLphp authentication processing filter API to implement arbitrary conversion rules.&lt;br /&gt;
* '''LocalProvider''' matching is unsupported in simpleSAMLphp. Unfortunately when simpleSAMLphp is in bridging mode (using the SP module to protect an IdP), the IdP processing filters do not see the peer entity of the SP module. However, you can achieve the correct behavior by putting one ''edugain:Attributes'' processing filter in the SP configuration and use '''RemoteProvider''' matches to filter and convert attributes there.&lt;br /&gt;
* You don't need to use a separate attribute name mapper, because simpleSAMLphp contains built-in '''name2oid''','''oid2name''', '''name2urn''' and '''urn2name''' methods, which provide the same functionality.&lt;br /&gt;
* Regular expressions are somewhat different in PHP. The eduGAIN module uses perl-compatible regular expressions (see [http://hu.php.net/manual/en/function.preg-match.php preg_match documentation] for details).&lt;br /&gt;
&lt;br /&gt;
[[Kategória: AAI]]&lt;br /&gt;
[[Kategória: english]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AttributePushPull&amp;diff=2520</id>
		<title>AttributePushPull</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AttributePushPull&amp;diff=2520"/>
				<updated>2013-05-02T09:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Egy IdP és egy SP között az attribútumok átadása ''push'' és ''pull'' modell szerint történhet.&lt;br /&gt;
&lt;br /&gt;
== Attribute Pull ==&lt;br /&gt;
'''Attribute Pull''' esetén a folyamat az alábbi:&lt;br /&gt;
# IdP azonosítja a felhasználót (ill. feldolgozza az autentikációs kérést)&lt;br /&gt;
# IdP autentikációs [[Assertion|igazolást]] állít ki és elküldi az SP-nek&lt;br /&gt;
# SP attribútum kérést (AttributeRequest) küld az IdP-nek&lt;br /&gt;
# IdP attribútum [[Assertion|igazolást]] állít ki, mely a felhasználó attribútumait tartalmazza, majd ezt visszaküldi az SP-nek&lt;br /&gt;
&lt;br /&gt;
== Attribute Push ==&lt;br /&gt;
'''Attribute Push''' használata esetén az IdP által küldött első válaszba beágyazva szerepelnek az attribútumok, ezért az SP részéről nincs szükség további kérésekre, a folyamat tehát a következő módon zajlik:&lt;br /&gt;
# IdP azonosítja a felhasználót (ill. feldolgozza az autentikációs kérést)&lt;br /&gt;
# IdP autentikációs '''és attribútum''' [[Assertion|igazolást]] állít ki és ezeket egyetlen válaszként elküldi az SP-nek&lt;br /&gt;
&lt;br /&gt;
== Alkalmazási terület ==&lt;br /&gt;
Shibboleth esetén [[SAMLBrowserPOST | Browser/POST]] profil használata esetén a ''pull'' modell, míg [[SAMLBrowserArtifact | Browser/Artifact]] profil esetén a ''push'' modell az alapértelmezett, ám ez felülbírálható.&lt;br /&gt;
&lt;br /&gt;
Bizonyos föderációs megvalósítások (pl. a [[SimpleSAMLphp]]) csak a ''push'' modellt támogatják, mivel ennek implementációja egyszerűbb. &lt;br /&gt;
&lt;br /&gt;
{{INFO|Nagyméretű attribútumok használata esetén a válasz mérete is elég nagy lehet, ezért ez [[SAMLBrowserPOST | POST]] profil esetén esetleg kényelmetlenséget (lassú működést) okozhat.}}&lt;br /&gt;
&lt;br /&gt;
[[Kategória: Meghatározások]]&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=ArpFilterProposal&amp;diff=2519</id>
		<title>ArpFilterProposal</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=ArpFilterProposal&amp;diff=2519"/>
				<updated>2013-05-02T09:15:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Trash}}&lt;br /&gt;
== ArpFilter before the profile servlet - support for other authentication modules ==&lt;br /&gt;
&lt;br /&gt;
ArpFilter and ArpViewer works great, but there is one big problem with ArpFilter: it only supports REMOTE_USER -based authentication. Shibboleth2 IdP comes with username and password module, which can be extended to use with any JAAS-compliant Login module. Unfortunately, current ArpFilter design can not work with this module.&lt;br /&gt;
&lt;br /&gt;
So I made some research to find out how to bring ArpFilter and Shibboleth IdP's internal authentication modules together. My motivation was to support the shipped UserPassword authentication and many of the features that Shibboleth IdP has (forceAuthn, isPassive).&lt;br /&gt;
&lt;br /&gt;
I found out that ArpFilter only depends on Shibboleth's LoginContext. This LoginContext is created by the profile handler code and interpreted by the authentication engine (and authentication modules) - then, after authentication succeeds, the profile handler processes the LoginContext and issues the response to the SP that requested it.&lt;br /&gt;
&lt;br /&gt;
So my idea is simple: why ArpFilter is put before the authentication servlets instead of the profile handler servlet?&lt;br /&gt;
&lt;br /&gt;
I got ArpFilter work before the profile servlet, but not quite sure whether my solution works in all use cases where it should do. I have tested it with SAML2 requests and UserPassword authentication and it seemed to work. Even the PreviousSession authentication handler did with no additional need of PreviousSessionServlet.&lt;br /&gt;
&lt;br /&gt;
Of course I made some modifications to the original ArpFilter code, but not too much. Basically, it just looks for LoginContext and makes sure the profile servlet gets the LoginContext, even if ArpFilter is called.&lt;br /&gt;
&lt;br /&gt;
The code logic is the following:&lt;br /&gt;
* Ensure that the request is made to the profile servlet.&lt;br /&gt;
* Try to get LoginContext from session.&lt;br /&gt;
** If LoginContext is found in the session, transfer it back to the request scope and remove it from the session.&lt;br /&gt;
* Try to get LoginContext from request scope.&lt;br /&gt;
** If no LoginContext found, proceed to the profile servlet and exit.&lt;br /&gt;
** Else process the request as usual, and find username in the IdP session.&lt;br /&gt;
* In the case when ArpFilter decides to hand over the control to the ArpViewer application, save the LoginContext back to Session.&lt;br /&gt;
&lt;br /&gt;
I needed one more little modification to web.xml: remove filters from /Authn/ servlets and put the ArpFilter in front of the ProfileHandlerServlet (and include the 'forward' dispatcher here, because the profile handler servlet gets the second request from the authentication engine with servlet forward - when the authentication is succeeded).&lt;br /&gt;
[[Kategória: AAI]][[Kategória: english]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=ArpFilterProposal&amp;diff=2518</id>
		<title>ArpFilterProposal</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=ArpFilterProposal&amp;diff=2518"/>
				<updated>2013-05-02T09:15:29Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Trash}}&lt;br /&gt;
== ArpFilter before the profile servlet - support for other authentication modules ==&lt;br /&gt;
&lt;br /&gt;
ArpFilter and ArpViewer works great, but there is one big problem with ArpFilter: it only supports REMOTE_USER -based authentication. Shibboleth2 IdP comes with username and password module, which can be extended to use with any JAAS-compliant Login module. Unfortunately, current ArpFilter design can not work with this module.&lt;br /&gt;
&lt;br /&gt;
So I made some research to find out how to bring ArpFilter and Shibboleth IdP's internal authentication modules together. My motivation was to support the shipped UserPassword authentication and many of the features that Shibboleth IdP has (forceAuthn, isPassive).&lt;br /&gt;
&lt;br /&gt;
I found out that ArpFilter only depends on Shibboleth's LoginContext. This LoginContext is created by the profile handler code and interpreted by the authentication engine (and authentication modules) - then, after authentication succeeds, the profile handler processes the LoginContext and issues the response to the SP that requested it.&lt;br /&gt;
&lt;br /&gt;
So my idea is simple: why ArpFilter is put before the authentication servlets instead of the profile handler servlet?&lt;br /&gt;
&lt;br /&gt;
I got ArpFilter work before the profile servlet, but not quite sure whether my solution works in all use cases where it should do. I have tested it with SAML2 requests and UserPassword authentication and it seemed to work. Even the PreviousSession authentication handler did with no additional need of PreviousSessionServlet.&lt;br /&gt;
&lt;br /&gt;
Of course I made some modifications to the original ArpFilter code, but not too much. Basically, it just looks for LoginContext and makes sure the profile servlet gets the LoginContext, even if ArpFilter is called.&lt;br /&gt;
&lt;br /&gt;
The code logic is the following:&lt;br /&gt;
* Ensure that the request is made to the profile servlet.&lt;br /&gt;
* Try to get LoginContext from session.&lt;br /&gt;
** If LoginContext is found in the session, transfer it back to the request scope and remove it from the session.&lt;br /&gt;
* Try to get LoginContext from request scope.&lt;br /&gt;
** If no LoginContext found, proceed to the profile servlet and exit.&lt;br /&gt;
** Else process the request as usual, and find username in the IdP session.&lt;br /&gt;
* In the case when ArpFilter decides to hand over the control to the ArpViewer application, save the LoginContext back to Session.&lt;br /&gt;
&lt;br /&gt;
I needed one more little modification to web.xml: remove filters from /Authn/ servlets and put the ArpFilter in front of the ProfileHandlerServlet (and include the 'forward' dispatcher here, because the profile handler servlet gets the second request from the authentication engine with servlet forward - when the authentication is succeeded).&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=ArchiveOverFilesender&amp;diff=2517</id>
		<title>ArchiveOverFilesender</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=ArchiveOverFilesender&amp;diff=2517"/>
				<updated>2013-05-02T09:14:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Az archiver aszinkron módon működik, így közvetlenül a böngészőből nem tölthetünk fel archiválandó file-okat, azonban van arra lehetőség, hogy a '''[https://filesender.niif.hu/ Filesender]''' szolgáltatását használva a desktop gépünkről archiváljunk adatokat.&lt;br /&gt;
&lt;br /&gt;
Az ötlet nagyon egyszerű: &lt;br /&gt;
# Feltöltjük az állományt a filesenderre&lt;br /&gt;
# Saját magunknak elküldjük a file-t&lt;br /&gt;
# Levélben megkapjuk a file letöltési URL-jét. Ezt kimásoljuk.&lt;br /&gt;
# Az archiváláshoz a '?' karakter elé be kell szúrni: download.php.&lt;br /&gt;
# A mentéshez mindenképpen file nevet kell megadni.&lt;br /&gt;
&lt;br /&gt;
[[Image:Filesender2.png]]&lt;br /&gt;
&lt;br /&gt;
Ennyi. :)&lt;br /&gt;
[[Kategória: Arhiver]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Alkalmaz%C3%A1sok_samliz%C3%A1l%C3%A1st_seg%C3%ADt%C5%91_teszt_IdP_simplesamlPHP_seg%C3%ADts%C3%A9g%C3%A9vel&amp;diff=2516</id>
		<title>Alkalmazások samlizálást segítő teszt IdP simplesamlPHP segítségével</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Alkalmaz%C3%A1sok_samliz%C3%A1l%C3%A1st_seg%C3%ADt%C5%91_teszt_IdP_simplesamlPHP_seg%C3%ADts%C3%A9g%C3%A9vel&amp;diff=2516"/>
				<updated>2013-05-02T09:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Telepítünk egy SSP egyedet valamelyik szerverünkre.&lt;br /&gt;
&lt;br /&gt;
2. Engedélyezzük a '''userpass''' auth forrás modult.&lt;br /&gt;
 touch modules/exampleauth/enable&lt;br /&gt;
&lt;br /&gt;
3. Elrendezzük a metadatákat.&lt;br /&gt;
&lt;br /&gt;
4. Az authsources.php file-t valahogy így alakítjuk ki:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 $config = array(&lt;br /&gt;
 &lt;br /&gt;
        // This is a authentication source which handles admin authentication.&lt;br /&gt;
        'admin' =&amp;gt; array(&lt;br /&gt;
                // The default is to use core:AdminPassword, but it can be replaced with&lt;br /&gt;
                // any authentication source.&lt;br /&gt;
  &lt;br /&gt;
                'core:AdminPassword',&lt;br /&gt;
        ),&lt;br /&gt;
        &lt;br /&gt;
        'multi' =&amp;gt; array(&lt;br /&gt;
            'multiauth:MultiAuth',&lt;br /&gt;
 &lt;br /&gt;
            /*&lt;br /&gt;
             * The available authentication sources.&lt;br /&gt;
             * They must be defined in this authsources.php file.&lt;br /&gt;
             */&lt;br /&gt;
            'sources' =&amp;gt; array('projekt1', 'projekt2'),&lt;br /&gt;
        ),&lt;br /&gt;
        'projekt1' =&amp;gt; array(&lt;br /&gt;
                'exampleauth:UserPass',&lt;br /&gt;
                'tesztuser1:tesztuser1' =&amp;gt; array(&lt;br /&gt;
                        'eduPersonPrincipalName' =&amp;gt; array('tesztuser1@example.com'),&lt;br /&gt;
                        'uid' =&amp;gt; array('tesztuser1'),&lt;br /&gt;
                        'cn' =&amp;gt; &amp;quot;Nemecsek Ernő&amp;quot;,&lt;br /&gt;
                        'sn' =&amp;gt; &amp;quot;Nemecsek&amp;quot;,&lt;br /&gt;
                        'givenName' =&amp;gt; &amp;quot;Ernő&amp;quot;,&lt;br /&gt;
                        'mail' =&amp;gt; &amp;quot;devnull@example.com&amp;quot;,&lt;br /&gt;
                        'homePostalAddress' =&amp;gt; &amp;quot;1234 Budapest, Nincsisilyen utca 2.&amp;quot;,&lt;br /&gt;
                        'schacDateOfBirth' =&amp;gt; &amp;quot;19751221&amp;quot;,&lt;br /&gt;
                        'schacPlaceOfBirth' =&amp;gt; &amp;quot;Budapest&amp;quot;,&lt;br /&gt;
                        'niifPersonMothersName' =&amp;gt; &amp;quot;Törőcsik Mari&amp;quot;,&lt;br /&gt;
                        'niifPersonResidentalAddress' =&amp;gt; &amp;quot;3456 Nagyabajom, Mitírjakide utca 2.&amp;quot;,&lt;br /&gt;
                ),&lt;br /&gt;
                'tesztuser2:tesztuser2' =&amp;gt; array(&lt;br /&gt;
                        'eduPersonPrincipalName' =&amp;gt; array('tesztuser2@example.com'),&lt;br /&gt;
                        'uid' =&amp;gt; array('tesztuser2'),&lt;br /&gt;
                        'cn' =&amp;gt; &amp;quot;Nemecsek Ernő 2&amp;quot;,&lt;br /&gt;
                        'sn' =&amp;gt; &amp;quot;Nemecsek&amp;quot;,&lt;br /&gt;
                        'givenName' =&amp;gt; &amp;quot;Ernő&amp;quot;,&lt;br /&gt;
                        'mail' =&amp;gt; &amp;quot;devnull@example.com&amp;quot;,&lt;br /&gt;
                        'homePostalAddress' =&amp;gt; &amp;quot;1234 Budapest, Nincsisilyen utca 2.&amp;quot;,&lt;br /&gt;
                        'schacDateOfBirth' =&amp;gt; &amp;quot;19751221&amp;quot;,&lt;br /&gt;
                        'schacPlaceOfBirth' =&amp;gt; &amp;quot;Budapest&amp;quot;,&lt;br /&gt;
                        'niifPersonMothersName' =&amp;gt; &amp;quot;Törőcsik Mari&amp;quot;,&lt;br /&gt;
                        'niifPersonResidentalAddress' =&amp;gt; &amp;quot;3456 Nagyabajom, Mitírjakide utca 2.&amp;quot;,&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
       'projekt2' =&amp;gt; array(&lt;br /&gt;
                'exampleauth:UserPass',&lt;br /&gt;
                'tesztuser1:tesztuser1' =&amp;gt; array(&lt;br /&gt;
                        'eduPersonPrincipalName' =&amp;gt; array('tesztuser1@example.com'),&lt;br /&gt;
                        'uid' =&amp;gt; array('tesztuser1'),&lt;br /&gt;
                        'cn' =&amp;gt; &amp;quot;Nemecsek Ernő&amp;quot;,&lt;br /&gt;
                        'sn' =&amp;gt; &amp;quot;Nemecsek&amp;quot;,&lt;br /&gt;
                        'givenName' =&amp;gt; &amp;quot;Ernő&amp;quot;,&lt;br /&gt;
                        'mail' =&amp;gt; &amp;quot;devnull@example.com&amp;quot;,&lt;br /&gt;
                        'homePostalAddress' =&amp;gt; &amp;quot;1234 Budapest, Nincsisilyen utca 2.&amp;quot;,&lt;br /&gt;
                        'schacDateOfBirth' =&amp;gt; &amp;quot;19751221&amp;quot;,&lt;br /&gt;
                        'schacPlaceOfBirth' =&amp;gt; &amp;quot;Budapest&amp;quot;,&lt;br /&gt;
                        'niifPersonMothersName' =&amp;gt; &amp;quot;Törőcsik Mari&amp;quot;,&lt;br /&gt;
                        'niifPersonResidentalAddress' =&amp;gt; &amp;quot;3456 Nagyabajom, Mitírjakide utca 2.&amp;quot;,&lt;br /&gt;
                ),&lt;br /&gt;
                'tesztuser2:tesztuser2' =&amp;gt; array(&lt;br /&gt;
                        'eduPersonPrincipalName' =&amp;gt; array('tesztuser2@example.com'),&lt;br /&gt;
                        'uid' =&amp;gt; array('tesztuser2'),&lt;br /&gt;
                        'cn' =&amp;gt; &amp;quot;Nemecsek Ernő 2&amp;quot;,&lt;br /&gt;
                        'sn' =&amp;gt; &amp;quot;Nemecsek&amp;quot;,&lt;br /&gt;
                        'givenName' =&amp;gt; &amp;quot;Ernő&amp;quot;,&lt;br /&gt;
                        'mail' =&amp;gt; &amp;quot;devnull@example.com&amp;quot;,&lt;br /&gt;
                        'homePostalAddress' =&amp;gt; &amp;quot;1234 Budapest, Nincsisilyen utca 2.&amp;quot;,&lt;br /&gt;
                        'schacDateOfBirth' =&amp;gt; &amp;quot;19751221&amp;quot;,&lt;br /&gt;
                        'schacPlaceOfBirth' =&amp;gt; &amp;quot;Budapest&amp;quot;,&lt;br /&gt;
                        'niifPersonMothersName' =&amp;gt; &amp;quot;Törőcsik Mari&amp;quot;,&lt;br /&gt;
                        'niifPersonResidentalAddress' =&amp;gt; &amp;quot;3456 Nagyabajom, Mitírjakide utca 2.&amp;quot;,&lt;br /&gt;
                ),&lt;br /&gt;
        ),&lt;br /&gt;
 );&lt;br /&gt;
[[Kategória: AAI]][[Kategória: HOWTO]][[Kategória: simplesamlphp]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AAI_%C3%A9s_Shibboleth_(2007.11.07)&amp;diff=2515</id>
		<title>AAI és Shibboleth (2007.11.07)</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AAI_%C3%A9s_Shibboleth_(2007.11.07)&amp;diff=2515"/>
				<updated>2013-05-02T09:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elhangzott a 2007-es HBONE Workshopon&lt;br /&gt;
&lt;br /&gt;
; Letöltés&lt;br /&gt;
* [[Média: Hbone2007_shib.odp | OpenOffice formátum]]&lt;br /&gt;
* [[Média: Hbone2007_shib.pdf | PDF formátum]]&lt;br /&gt;
&lt;br /&gt;
[[Kategória: Publikációk]]&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AboutEduID.hu&amp;diff=2514</id>
		<title>AboutEduID.hu</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AboutEduID.hu&amp;diff=2514"/>
				<updated>2013-05-02T09:11:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Purpose of this document ==&lt;br /&gt;
This document is a collection of the information specified in several specific documents written in Hungarian. Since only Hungarian educational and research institutions are expected to be Federation Members (ie. operate an Identity Provider), this document focuses on rules what are relevant to (international) Federation Partners.&lt;br /&gt;
&lt;br /&gt;
== About the federation ==&lt;br /&gt;
Hungarian Research and Educational Federation ('''HREF''') is a SAML2-based Identity Federation of Hungarian higher education and research institutions, public collections and other content providers. For the end-users, the federation aims to be transparent, therefore the login procedure is communicated as '''''eduID login'''''.&lt;br /&gt;
=== Contacts ===&lt;br /&gt;
The Federation is operated by [http://www.niif.hu NIIF Institute] as a Federation Operator. Questions, concerns or any kind of requests about the Federation should be directed to any of the following addresses:&lt;br /&gt;
* '''aai@niif.hu'''&lt;br /&gt;
* '''Kristof Bajnok''', ''NIIF Institute''&lt;br /&gt;
:18-22 Victor H. str&lt;br /&gt;
:H-1132 Budapest&lt;br /&gt;
:Hungary&lt;br /&gt;
&lt;br /&gt;
News and information about the federation is published at http://eduid.hu (Hungarian only)&lt;br /&gt;
=== Policy and principles of interoperation ===&lt;br /&gt;
==== Basic principles ====&lt;br /&gt;
# The aim of the Federation is to allow the use of services of its Members and Partners, where authorisation is based on the user information originating from the users' Home Institutions.&lt;br /&gt;
# Home Institutions must only authenticate users having a known affiliation to them.&lt;br /&gt;
# IdPs and SPs must not give false or misleading information about themselves.&lt;br /&gt;
# User information provided by IdPs should be as accurate as possible. SPs must take into account that parts of the received information may be at the discretion of the user.&lt;br /&gt;
# User credentials (i.e. passwords) stored by IdPs must be protected and verified only through secure procedures.&lt;br /&gt;
# SPs must request only the user attributes which are absolutely necessary for their operation.&lt;br /&gt;
# SPs must not ask users for their federation passwords.&lt;br /&gt;
# SPs must handle personal data according to the local privacy laws.&lt;br /&gt;
# IdPs and SPs must cooperate in the investigation of possible abuse/fraud.&lt;br /&gt;
# IT systems running IdPs and SPs must be operated with due diligence.&lt;br /&gt;
==== Data protection ====&lt;br /&gt;
* Prior joining the federation, every entity needs to publish the Data Protection Policy under which it operates. This policy must be kept up-to-date.&lt;br /&gt;
* Whenever the Data Protection Policy changes, the Federation Operator must be notified.&lt;br /&gt;
* Transfer of personal data is only allowed when either&lt;br /&gt;
** authorised by law, or&lt;br /&gt;
** the user expressed his or her consent on the data transfer.&lt;br /&gt;
&lt;br /&gt;
==== Rules of membership ====&lt;br /&gt;
The Federation is operated by the Federation Operator, that also operates the national research network. Further participants are ''Members'' and ''Partners'' that must have a signed contract with the Operator.&lt;br /&gt;
# The following institutions may be '''Members''' of the federation:&lt;br /&gt;
#* Institutions of the higher education;&lt;br /&gt;
#* Institutions of the Hungarian Research Academy and other research institutions;&lt;br /&gt;
#* Institutions of secondary education;&lt;br /&gt;
#* Public collections. &lt;br /&gt;
# Any organisation might join as a '''Partner'''.&lt;br /&gt;
# All Members and Partners of the Federation might provide services.&lt;br /&gt;
# A Partner might participate in the meeting of the Members' Board as an observer, without having rights to vote.&lt;br /&gt;
# Only Members are entitled to&lt;br /&gt;
#* supply user identity information to the federation&lt;br /&gt;
#* send representatives into the Members' Board with a right to vote.&lt;br /&gt;
&lt;br /&gt;
=== Governance ===&lt;br /&gt;
The governance body of the federation is the '''Members' Board (MB)'''. Every Federation Member may send one representative person to the Members' Board, who has one vote.&lt;br /&gt;
&lt;br /&gt;
The working language of the MB is Hungarian. The Board publishes its decisions and guidelines at http://eduid.hu/dokumentumok in Hungarian, although whenever the topic is of interest of any international Partner, it shall be translated to English and the administrative contacts shall be notified.&lt;br /&gt;
&lt;br /&gt;
MB is authorised to&lt;br /&gt;
* accept new Federation documents or modify existing ones,&lt;br /&gt;
* accept application of new Members and Partners&lt;br /&gt;
&lt;br /&gt;
Partners may also send representatives for MB meetings, without voting rights.&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
The Federation itself is not a legal entity, Members and Partners establish a legal connection to the Federation Operator. Any legal claims between Members and/or Partners shall be directed to the organisation operating the Identity Provider or the Service Provider.&lt;br /&gt;
&lt;br /&gt;
The Service Agreement between the Federation Operator and Partner is available '''[http://www.eduid.hu/wp-content/uploads/2012/08/href-contract-partner.doc here]'''.&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
=== Operational requirements ===&lt;br /&gt;
* [[HREFSPReq|SP Operational Requirements]]&lt;br /&gt;
* [[HREFIdPReq|IdP Operational Requirements]]&lt;br /&gt;
&lt;br /&gt;
=== Attributes ===&lt;br /&gt;
[[HREFAttributeSpecEN | Attribute Specification]] is maintained in a separate document.&lt;br /&gt;
&lt;br /&gt;
As a brief summary, the following attributes are ''mandatory'' or ''recommended'':&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Mandatory attributes&lt;br /&gt;
! Recommended attributes&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonPrincipalName&lt;br /&gt;
|displayName&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonTargetedID&lt;br /&gt;
|mail&lt;br /&gt;
|-&lt;br /&gt;
|eduPersonScopedAffiliation&lt;br /&gt;
|eduPersonEntitlement&lt;br /&gt;
|-&lt;br /&gt;
|schacHomeOrganizationType&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
IdPs may implement other attributes.&lt;br /&gt;
&lt;br /&gt;
=== Metadata ===&lt;br /&gt;
[[HREFMetadataSpecEN | Metadata Specification]] is maintained in a separate document.&lt;br /&gt;
&lt;br /&gt;
== How to join ==&lt;br /&gt;
=== Production federation ===&lt;br /&gt;
In order to join the production federation as a Partner, you need to send the following information:&lt;br /&gt;
* SP metadata URL (HTTPS preferred)&lt;br /&gt;
* Name of the SP&lt;br /&gt;
* Brief description of the service&lt;br /&gt;
* Service URL&lt;br /&gt;
* Privacy policy URL&lt;br /&gt;
* Administrative and technical contact names and mail addresses (non-personal preferred)&lt;br /&gt;
* Required and optional attributes&lt;br /&gt;
* Logo URL (optional)&lt;br /&gt;
* Helpdesk URL (optional)&lt;br /&gt;
&lt;br /&gt;
This information should be sent to the Federation Operator (see [[#Contacts|above]]) in email. Two copies of the signed Service Agreement (available at http://eduid.hu/documents) should be sent by traditional post, one copy will be returned after counter-signing.&lt;br /&gt;
&lt;br /&gt;
After the application has been reviewed by the Federation Operator, it is forwarded to the Members' Board. It usually takes 3-5 working days for the Board to accept the application, after which the entity metadata is be added to the production federation metadata.&lt;br /&gt;
&lt;br /&gt;
=== Testing metadata ===&lt;br /&gt;
It is recommended that a new SP should be registered to the testing federation at first, which is much easier and a fully online process.&lt;br /&gt;
&lt;br /&gt;
The following information is necessary to enter into the testing metadata:&lt;br /&gt;
* SP metadata URL (HTTPS preferred)&lt;br /&gt;
* Name of the SP&lt;br /&gt;
* Administrative and technical contact names and mail addresses (non-personal preferred)&lt;br /&gt;
* Required and optional attributes&lt;br /&gt;
&lt;br /&gt;
You can ask for test accounts in our Virtual Home Organization. During testing, you might want to use the production federation metadata, because the VHO is present in both metadata files.&lt;br /&gt;
&lt;br /&gt;
You do not need to re-register your entity to proceed to the production federation. If we have all the necessary information, the starting of the joining process is at your discretion.&lt;br /&gt;
[[Kategória: AAI]][[Kategória: eduid]][[Kategória: english]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AAIInterop-OpenSSOShib2&amp;diff=2513</id>
		<title>AAIInterop-OpenSSOShib2</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AAIInterop-OpenSSOShib2&amp;diff=2513"/>
				<updated>2013-05-02T09:09:53Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TRASH}}&lt;br /&gt;
= OpenSSO IdP - Shibboleth2 SP Interoperabilitás =&lt;br /&gt;
* IdP: [[Kép:Maszat-opensso-idp.xml]]&lt;br /&gt;
* SP: [[Kép:Papigw-shibboleth2-sp.xml]]&lt;br /&gt;
&lt;br /&gt;
== SAML2.0 Single Sign on ==&lt;br /&gt;
* SP oldali SAML2 bindingot támogató AttributeConsumerService-ek:&lt;br /&gt;
** 1: /SAML2/POST urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST&lt;br /&gt;
** 2: /SAML2/POST-SimpleSign urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign&lt;br /&gt;
** 3: /SAML2/Artifact urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact&lt;br /&gt;
** 4: /SAML2/ECP urn:oasis:names:tc:SAML:2.0:bindings:PAOS&lt;br /&gt;
&lt;br /&gt;
=== HTTP-Post ===&lt;br /&gt;
* Működik&lt;br /&gt;
* https://papigw.aai.niif.hu/saml2interop/opensso-post/&lt;br /&gt;
* SP oldalon&lt;br /&gt;
  &amp;lt;SessionInitiator type=&amp;quot;Chaining&amp;quot; Location=&amp;quot;/Login&amp;quot; id=&amp;quot;maszat-opensso-post&amp;quot;&lt;br /&gt;
     relayState=&amp;quot;cookie&amp;quot; entityID=&amp;quot;https://idp.sch.bme.hu/niif-teszt&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;SessionInitiator type=&amp;quot;SAML2&amp;quot; defaultACSIndex=&amp;quot;1&amp;quot; template=&amp;quot;bindingTemplate.html&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/SessionInitiator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTTP-Artifact ===&lt;br /&gt;
* Az OpenSSO nem figyel arra hogy az SP milyen AttributeConsumerService-t kér, így az IDP oldalon kell konfigurálni az SP tulajdonságait úgy, hogy az alapbeállítás ne a POST legyen.&lt;br /&gt;
* TODO - Trust management a back-channel kommunikációnál a tanusítványt ismernie kell az SP-nek.&lt;br /&gt;
* JVM beállítása a kliens tanúsítvány használatához - https://opensso.dev.java.net/issues/show_bug.cgi?id=1409&lt;br /&gt;
&lt;br /&gt;
=== Attribute push ===&lt;br /&gt;
* Gyári buildekkel nem működik, ugyanis az OpenSSO urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified formátumban küldi az attribútumokat, amiket a Shibboleth2 SP nem fogad el.&lt;br /&gt;
* Saját patch használata esetén bekonfigurálható az uri típusú NameFormat is, azzal működik probléma nélkül.&lt;br /&gt;
** https://opensso.dev.java.net/issues/show_bug.cgi?id=2775&lt;br /&gt;
&lt;br /&gt;
=== Attribute pull ===&lt;br /&gt;
* Az OpenSSO-ban nem lehet kikapcsolni az attribute push-t. FIXME&lt;br /&gt;
&lt;br /&gt;
=== NameIDFormat ===&lt;br /&gt;
* A Shibboleth2 SP által generált metaadatba kézzel be kell illeszteni a NameIDFormat node-ot&lt;br /&gt;
* Az OpenSSO támogatja a perzisztens és a tranziens SAML2 azonosítót is.&lt;br /&gt;
&lt;br /&gt;
== SAML2.0 Single Log out ==&lt;br /&gt;
* A shibboleth2 nem támogatja (még) a Single Log-out protokollt, lásd: https://wiki.shibboleth.net/confluence/display/SHIB2/SLOIssues&lt;br /&gt;
&lt;br /&gt;
== Metaadat problémák ==&lt;br /&gt;
* A Shibboleth2 SP metaadatból el kell távolítani az &amp;lt;md:Extensions&amp;gt; node-ot az összes gyerekelemével együtt.&lt;br /&gt;
** Erre nagyon figyelni kell, mert összeomlik tőle az OpenSSO, és csak címtár-módosítással ('hibás' metaadat törlése) állítható helyre.&lt;br /&gt;
** Sajnos nem triviális javítani ezt a viselkedést...&lt;br /&gt;
* A metaadatba ágyazott certificate esetén csak a &amp;lt;ds:X509Certificate&amp;gt; node szerepelhet, semmi más&lt;br /&gt;
** Ehhez írtam patch-et ami ezt javítja. &lt;br /&gt;
** https://opensso.dev.java.net/issues/show_bug.cgi?id=2985&lt;br /&gt;
&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AAIGettingStarted&amp;diff=2512</id>
		<title>AAIGettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AAIGettingStarted&amp;diff=2512"/>
				<updated>2013-05-02T09:09:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Először az szükséges, hogy nagyjából megértsd, miért használunk '''Autentikációs és Autorizációs Infrastruktúrákat''', egyátalán, mit is jelent ez a manapság divatos fogalom. Jelenleg a bevezető jellegű [[Publikációk | publikációkból]] lehet talán legjobban megérteni ezt. Nagyon fontos tisztában lenni azzal, hogy mit jelent a [[Föderáció]] fogalma.&lt;br /&gt;
# Ezek után jó, ha tisztában vagy a [[Shibboleth]] szoftverben használt eljárásokkal (profile-okkal). &amp;lt;small&amp;gt;(Sajnos, amíg a [[Shibboleth]] lap csak csonk, addig leginkább az [[Publikációk | előadásokból]] érdemes tájékozódni.)&amp;lt;/small&amp;gt;&lt;br /&gt;
# Következő lépésként [[Shibboleth IdP]]-t érdemes telepíteni és konfigurálni. Kipróbálni jelenleg csak a [http://testshib.org Testshib.org] webhellyel lehet automatikusan, de előbb-utóbb lesz ilyen szolgáltatás az NIIF-ben is. &lt;br /&gt;
# Ha rákaptál a Single Sign-on &amp;quot;ízére&amp;quot;, érdemes nekifogni a [[Shibboleth SP]] telepítésnek is.&lt;br /&gt;
# Ha a teszt alkalmazások (mint például a [[Shibenv]]) működnek (és az [[ShibIdPARP | attribútumok átadásával]] sincs probléma, akkor érdemes nekiállni az éles alkalmazások Shibboleth-esítésének.&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Alkalmaz%C3%A1sok_illeszt%C3%A9se&amp;diff=2511</id>
		<title>Alkalmazások illesztése</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Alkalmaz%C3%A1sok_illeszt%C3%A9se&amp;diff=2511"/>
				<updated>2013-05-02T09:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: [[DrupalShibbolethReadme | Drupal shib_auth module]] (angolul / in English)&lt;br /&gt;
: [[DrupalShibboleth | Drupal illesztése Shibboleth-hez]] (elavult)&lt;br /&gt;
: [[MediaWikiShibboleth | MediaWiki illesztése Shibboleth-hez]]&lt;br /&gt;
: [[WebmailShibboleth | Webmail szoftverek illesztése Shibboleth-hez]]&lt;br /&gt;
: [http://moinmo.in/ShibbolethSupport Moinmoin illesztése Shibboleth]&lt;br /&gt;
: [[Libraries | Könyvtári rendszerek illesztése]]&lt;br /&gt;
[[Kategória: Összefoglaló lapok]]&lt;br /&gt;
[[Kategória: AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AAIInterop-Shib2SimpleSAMLphp&amp;diff=2510</id>
		<title>AAIInterop-Shib2SimpleSAMLphp</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AAIInterop-Shib2SimpleSAMLphp&amp;diff=2510"/>
				<updated>2013-05-02T09:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TRASH}}&lt;br /&gt;
= Shibboleth2 IdP - SimpleSAMLphp SP Interoperabilitás =&lt;br /&gt;
* IdP: [[Kép:Papigw-shibboleth2-idp.xml|https://papigw.aai.niif.hu/idp/shibboleth]]&lt;br /&gt;
* SP: [[Kép:Papigw-simplesaml-saml2-sp.xml]]&lt;br /&gt;
&lt;br /&gt;
== SAML2.0 Single Sign on ==&lt;br /&gt;
&lt;br /&gt;
=== HTTP-Post ===&lt;br /&gt;
* Működik&lt;br /&gt;
* A SimpleSAMLphp nem támogatja a NameID titkosítását, csak az egész assertion titkosítását (FIXME)&lt;br /&gt;
** ezért be kell állítani hogy a NameID-t ne titkosítsa az IdP, ugyanígy kényszeríteni kell az Attribute Push használatát is&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;RelyingParty id=&amp;quot;https://papigw.aai.niif.hu/simplesaml&amp;quot;&lt;br /&gt;
    provider=&amp;quot;https://papigw.aai.niif.hu/idp/shibboleth&amp;quot;&lt;br /&gt;
    defaultSigningCredentialRef=&amp;quot;IdPCredential&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ProfileConfiguration xsi:type=&amp;quot;saml:SAML2SSOProfile&amp;quot; &lt;br /&gt;
       encryptNameIds=&amp;quot;never&amp;quot; includeAttributeStatement=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/RelyingParty&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A SimpleSAMLphp SP metaadatába kézzel kell beletenni az aláíró és titkosító publikus kulcsokat, mivel a kiexportált metaadat ezeket nem tartalmazza (ráadásul a php-s konfigurációban szereplő certificate/privatekey paramétereket nem lehet  abszolut elérési úttal hivatkozni, mindenképp a cert/ könyvtárban kell lenniük)&lt;br /&gt;
&lt;br /&gt;
=== HTTP-Artifact ===&lt;br /&gt;
* A SimpleSAMLphp nem támogatja a HTTP-Artifact bindingot (és általában a SOAP-ot használó bindingokat)&lt;br /&gt;
&lt;br /&gt;
=== Attribute push ===&lt;br /&gt;
* Működik&lt;br /&gt;
&lt;br /&gt;
=== Attribute pull ===&lt;br /&gt;
* A SimpleSAMLphp nem támogatja az AttributeRequest protokollt (a SOAP binding miatt)&lt;br /&gt;
&lt;br /&gt;
=== NameIDFormat ===&lt;br /&gt;
* Általában urn:oasis:names:tc:SAML:2.0:nameid-format:transient&lt;br /&gt;
&lt;br /&gt;
== SAML2.0 Single Log out ==&lt;br /&gt;
* A SimpleSAMLphp támogatná az SLO-t, de a shibboleth2 IdP nem. A metaadatnál panaszkodik is hogy a Shibboleth metadata nem tartalmaz SingleLogoutService-t.&lt;br /&gt;
&lt;br /&gt;
[[Category:AAI]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=MediaWiki:Geshi.css&amp;diff=2477</id>
		<title>MediaWiki:Geshi.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=MediaWiki:Geshi.css&amp;diff=2477"/>
				<updated>2013-04-24T12:58:53Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Új oldal, tartalma: „/* Az itt elhelyezett CSS-t fogja alkalmazni a GeSHi szintaxiskiemelő */             tt, code, pre {     font-size: 1.25em; }”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Az itt elhelyezett CSS-t fogja alkalmazni a GeSHi szintaxiskiemelő */&lt;br /&gt;
           &lt;br /&gt;
tt, code, pre {&lt;br /&gt;
    font-size: 1.25em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=JoiningEduGAIN&amp;diff=2456</id>
		<title>JoiningEduGAIN</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=JoiningEduGAIN&amp;diff=2456"/>
				<updated>2013-03-28T15:01:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: Új oldal, tartalma: „'''Hogyan csatlakozhat egy IdP az EduGAIN-hez?'''   A folyamat három lépésből áll:  1. Írni kell az aai@niif.hu-nak, hogy a föderációs operátor publikálja az Id…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Hogyan csatlakozhat egy IdP az EduGAIN-hez?''' &lt;br /&gt;
&lt;br /&gt;
A folyamat három lépésből áll:&lt;br /&gt;
&lt;br /&gt;
1. Írni kell az aai@niif.hu-nak, hogy a föderációs operátor publikálja az IdP-t az EduGAIN metadatába.&lt;br /&gt;
&lt;br /&gt;
2. Be kell konfigurálni a következő metadata URL-t: http://metadata.eduid.hu/current/edugain.xml . Az aláírókulcs megegyezik&lt;br /&gt;
a többi metadata setet aláíró kulccsal (https://metadata.eduid.hu/href-metadata-signer-2011.crt) Félreértések elkerülése végett a magyar entitások az újra aláírt eduGAIN metaadatok között nem szerepelnek, hogy ne legyen duplikáció.&lt;br /&gt;
&lt;br /&gt;
3. Be kell állítani, hogy az SP-k kötelező attribútumait az IdP elküldje. SimpleSAMLphp esetén az attribute filter könnyen jöhet a metadatából, Shibboleth IdP esetén célszerű az alábbi automatikusan frissülő filtert beállítani: https://metadata.eduid.hu/edugain-attribute-filter/2011/edugain.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ezek után már csak várni kell, hogy az SP-k frissítsék a metaadataikat.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=AAI&amp;diff=2447</id>
		<title>AAI</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=AAI&amp;diff=2447"/>
				<updated>2013-03-22T10:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Meghatározások ===&lt;br /&gt;
&lt;br /&gt;
* [[Föderáció]]&lt;br /&gt;
* [[Pont-pont bizalmi kapcsolati modell]]&lt;br /&gt;
* [[Metadata]]&lt;br /&gt;
* [[Föderációs modellek]]&lt;br /&gt;
* [[WAYF | Home Location Service]]&lt;br /&gt;
* [[Shibboleth]]&lt;br /&gt;
* [[AAIGettingStarted | Hogy kezdjem?]]&lt;br /&gt;
&lt;br /&gt;
===Föderációs alapinfrastruktúrák (IdP-k, SP-k)===&lt;br /&gt;
Tapasztalatok alapján IdP esetén egyszerűsége miatt talán jobb választás a simpleSAMLphp, SP esetén Shibboleth ill. simpleSAMLphp egyaránt megfelelő választás /etc/ssl/certs/adminmail.sulinet.hu.crtmind beállítási, mind üzemeltetési szempontból.&lt;br /&gt;
* Shibboleth IdP: [[Shib2IdpInstall|Telepítés, beállítás]], [[Shibboleth2 IdP|Egyéb leírások]]&lt;br /&gt;
* Shibboleth SP: [[ShibSP_QuickStart|Kezdőlépések]], [[Shibboleth2 SP|Egyéb leírások]]&lt;br /&gt;
* simpleSAMLphp IdP és SP: [[SSP_QuickStart|Kezdőlépések]]&lt;br /&gt;
&lt;br /&gt;
===HREF/eduID föderációhoz kapcsolódó tudnivalók===&lt;br /&gt;
* [[HREFContract]]: A föderációhoz kapcsolódó dokumentációk gyűjtőlapja&lt;br /&gt;
* [[HREFAttributeSpec]]: A föderációban használható attribútumok specifikációja&lt;br /&gt;
* [[HREFMetadataSpec]]: A föderációban használt metadata specifikációja&lt;br /&gt;
* [[Resource_Registry]]: A föderáció adminisztrációs felületének leírása&lt;br /&gt;
* Hivatalos metadata: [http://metadata.eduid.hu/current/ http://metadata.eduid.hu/current/]&lt;br /&gt;
* [https://listserv.niif.hu/mailman/listinfo/href-tech HREF-Tech levelezőlista]&lt;br /&gt;
&lt;br /&gt;
===További föderációs megoldások===&lt;br /&gt;
* [[Shibboleth2 DiscoveryService]]: Shibboleth 2.0 SAML-kompatibilis Discovery Service&lt;br /&gt;
* [[OpenSSO]]: Nehézsúlyú Java hozzáférés-szabályozást és federációt megvalósító rendszer&lt;br /&gt;
* [[OpenID]]: Széles körben támogatott, de nem SAML-alapú federációt megvalósító rendszer&lt;br /&gt;
* [[GoogleAuth]]: Google, mint [[OpenID]] szabványú IdP&lt;br /&gt;
* [[mod_mellon]]: SP megoldás apache modulban. A SAML2 motort a [http://lasso.entrouvert.org Lasso] valósítja meg. [http://docs.feide.no/fs-0050]&lt;br /&gt;
* [[oiosaml.java]]: Java SP megoldás, amit a Dán állam is használ. [http://www.softwareborsen.dk/projekter/softwarecenter/brugerstyring/oio-saml-java]&lt;br /&gt;
* [[UApprove]]: Shibboleth 2.1.x IdP-hez illeszthető &amp;quot;consent-modul&amp;quot; beállításának leírása&lt;br /&gt;
* [[Shibboleth troubleshooting]]: Shibboleth hibaelhárítás&lt;br /&gt;
&lt;br /&gt;
===Kiegészítő tudnivalók===&lt;br /&gt;
* [[Alkalmazások illesztése]]: Néhány alkalmazás Shibboleth-illesztésének leírása&lt;br /&gt;
* [[Interoperabilitás mátrix]]: Shibboleth, OpenSSO, simpleSAMLphp együttműködési mátrix&lt;br /&gt;
* [[Eszközök]]: Hasznos eszközök föderációk üzemeltetéséhez, használatához&lt;br /&gt;
&lt;br /&gt;
* [[Publikációk]]&lt;br /&gt;
&lt;br /&gt;
[[Kategória: Összefoglaló lapok]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREFChecklist&amp;diff=2425</id>
		<title>HREFChecklist</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREFChecklist&amp;diff=2425"/>
				<updated>2013-03-11T09:53:15Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: /* Előzetes ellenőrzés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Előzetes ellenőrzés=&lt;br /&gt;
Az alábbi listán haladunk végig egy-egy csatlakozási kérelem beérkeztekor, és ennek eredményének figyelembe vételével hozza meg a Tagok Tanácsa a döntést a felvételről.&lt;br /&gt;
&lt;br /&gt;
* Adatkezelés&lt;br /&gt;
** Van-e adatkezelési szabályzat?&lt;br /&gt;
** A felhasználókról szóló, intézmény által ismert adatok forrása, karbantartásának módja dokumentált-e? ('''TAG''')&lt;br /&gt;
** Elérhetők-e a fenti dokumentumok? A hivatkozásnak a metadata állományban kell szerepelnie.&lt;br /&gt;
** Ezek megfelelnek-e a [[HREFPolicy|Föderációs alapelvek]]-ben foglaltaknak?&lt;br /&gt;
&lt;br /&gt;
* Műszaki követelmények&lt;br /&gt;
** Az intézmény teljesíti-e a Műszaki előírásokat leírtakat? ( [https://docs.google.com/document/d/1XkFqQx9npWVgftAU1b0cRoqiTNrhj9oqEWpMWaIJO6o/edit?hl=en_US Műszaki előírások IdP-k számára], [https://docs.google.com/document/d/1QZWwFqHm4VNyIn6GdKnOzyA0Xdg2uYgwlAkJA1ffpM8/edit?hl=en_US Műszaki előírások SP-k számára])&lt;br /&gt;
** Van-e kijelölt ember, aki a föderációs ügyekért felelős, technikailag be tud avatkozni (be tud-e lépni a Resource Registry-be és a saját IdP-jét adminisztrálni is tudja)?&lt;br /&gt;
** Van-e jól beállított naplózási mechanizmus?&lt;br /&gt;
** Megfelelőek-e az entitás által használt kulcsok?&lt;br /&gt;
** Megfelelőek-e az entitás által támogatott SAML-profilok?&lt;br /&gt;
** Az attribútumspecifikációnak megfelelő-e az attribútumok használata?&lt;br /&gt;
** Ajánlásoktól eltéréseket dokumentálni&lt;br /&gt;
&lt;br /&gt;
* Egyéb&lt;br /&gt;
** Hány felhasználót tud az IdP azonosítani?&lt;br /&gt;
** Elvárt, hogy az entitás technikai kapcsolattartója iratkozzon fel a [https://listserv.niif.hu/mailman/listinfo/href-tech href-tech] levelezőlistára, az entitás adminisztratív kapcsolattartója pedig a [https://listserv.niif.hu/mailman/listinfo/href-admin href-admin] levelezőlistára.&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=HREFChecklist&amp;diff=2424</id>
		<title>HREFChecklist</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=HREFChecklist&amp;diff=2424"/>
				<updated>2013-03-11T09:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Előzetes ellenőrzés=&lt;br /&gt;
Az alábbi listán haladunk végig egy-egy csatlakozási kérelem beérkeztekor, és ennek eredményének figyelembe vételével hozza meg a Tagok Tanácsa a döntést a felvételről.&lt;br /&gt;
&lt;br /&gt;
* Adatkezelés&lt;br /&gt;
** Van-e adatkezelési szabályzat?&lt;br /&gt;
** A felhasználókról szóló, intézmény által ismert adatok forrása, karbantartásának módja dokumentált-e? ('''TAG''')&lt;br /&gt;
** Elérhetők-e a fenti dokumentumok? A hivatkozásnak a metadata állományban kell szerepelnie.&lt;br /&gt;
** Ezek megfelelnek-e a [[HREFPolicy|Föderációs alapelvek]]-ben foglaltaknak?&lt;br /&gt;
&lt;br /&gt;
* Műszaki követelmények&lt;br /&gt;
** Az intézmény teljesíti-e a Műszaki előírásokat leírtakat? ( [https://docs.google.com/document/d/1XkFqQx9npWVgftAU1b0cRoqiTNrhj9oqEWpMWaIJO6o/edit?hl=en_US Műszaki előírások IdP-k számára], [https://docs.google.com/document/d/1QZWwFqHm4VNyIn6GdKnOzyA0Xdg2uYgwlAkJA1ffpM8/edit?hl=en_US Műszaki előírások SP-k számára])&lt;br /&gt;
** Van-e kijelölt ember, aki a föderációs ügyekért felelős, technikailag be tud avatkozni (be tud-e lépni a Resource Registry-be és a saját IdP-jét adminisztrálni is tudja)?&lt;br /&gt;
** Van-e jól beállított naplózási mechanizmus?&lt;br /&gt;
** Megfelelőek-e az entitás által használt kulcsok?&lt;br /&gt;
** Megfelelőek-e az entitás által támogatott SAML-profilok?&lt;br /&gt;
** Az attribútumspecifikációnak megfelelő-e az attribútumok használata?&lt;br /&gt;
** Ajánlásoktól eltéréseket dokumentálni&lt;br /&gt;
&lt;br /&gt;
* Egyéb&lt;br /&gt;
** Hány felhasználót tud az IdP azonosítani?&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=VVC&amp;diff=2423</id>
		<title>VVC</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=VVC&amp;diff=2423"/>
				<updated>2013-02-25T14:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VVC (Voice Video Collaboration) = &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== VoIP ==&lt;br /&gt;
# [[SIP_WS|SIP WorkShop]]&lt;br /&gt;
# [[Regulation|Magyar Szabályozás]]&lt;br /&gt;
# [[VoIP_links|Linkek]]&lt;br /&gt;
&lt;br /&gt;
==  Videokonferencia ==&lt;br /&gt;
&lt;br /&gt;
=== Dokumentumok | Documents ===&lt;br /&gt;
&lt;br /&gt;
* [[freegk|Free gatekeeper]] ([[en-freegk|in English]])&lt;br /&gt;
* [[vegpont-beallitasok|Végpontok beállítása]] (only in Hungarian)&lt;br /&gt;
* [[tuzfal|Tűzfal konfigurációs információk]] | ([[en-firewall|Security Settings]])&lt;br /&gt;
* [[niifgk|NIIF gatekeeper hálózat]] | ([[en-niifgk|NIIF Gatekeeper Network]])&lt;br /&gt;
* [[h323-standards|H.323 Standards]] (English only)&lt;br /&gt;
&lt;br /&gt;
=== Videókonferencia FAQ (Gyakran Ismételt Kérdések) ===&lt;br /&gt;
&lt;br /&gt;
Az angol nyelvű verzióhoz kattintson [[faqen|ide]] (for English FAQ please click [[faqen|here]]).&lt;br /&gt;
&lt;br /&gt;
==== Hibabejelentés ====&lt;br /&gt;
&lt;br /&gt;
A központi szolgáltatásokkal (MCU, foglalási rendszer, felvétel, stb.) kapcsolatos műszaki problémák esetén segítséget kérhet a [mailto:video-admin@niif.hu video-admin@niif.hu] e-mail címen vagy sürgősségi esetben a +36 1 450 3095 (általános NIIF hibabejelentés). Közvetlen technikai segítséget az Ön intézményénél kijelölt videokonferencia  [https://vvc.niif.hu/vidkonf/vidkonf_list felelőstől] kaphat.&lt;br /&gt;
&lt;br /&gt;
==== Fontos linkek ====&lt;br /&gt;
&lt;br /&gt;
* [https://vvc.niif.hu/mcu_booking MCU foglalási rendszer]&lt;br /&gt;
* [https://vvc.niif.hu/vidkonf/vidkonf_list Videokonferencia eszközök listája]&lt;br /&gt;
* [https://webconf.niif.hu/ Desktop videokonferencia rendszer] (további információ: [https://vvc.niif.hu/node/111 Leírás és igénylés])&lt;br /&gt;
* [http://videotorium.hu/ Videotorium] (felsőoktatási-kutatási videomegosztó oldal)&lt;br /&gt;
&lt;br /&gt;
==== Kiemelt oldalak ====&lt;br /&gt;
&lt;br /&gt;
# [[hu-faq-firststeps|Milyen végpontokat tudok felhívni?]]&lt;br /&gt;
# [[hu-faq-dial|Hogyan tudok felhívni egy másik videokonferencia berendezést?]]&lt;br /&gt;
# [[hu-faq-vcorg|Hogyan kell megszervezni egy videokonferenciát? Hogyan veszem fel a kapcsolatot egy távoli végpont üzemeltetőjével?]]&lt;br /&gt;
# [[hu-faq-niifmcu|Hogyan használhatom az NIIF MCU szolgáltatását?]]&lt;br /&gt;
# [[hu-faq-pstndialin|Hogy tudok telefonról videokonferenciákhoz csatlakozni?]]&lt;br /&gt;
# [[hu-faq-niifvcr|Hogyan használhatom a videokonferencia felvétel szolgáltatást?]]&lt;br /&gt;
# [[Tuzfal|H.323 és tűzfalak - hogyan bírjam működésre?]]&lt;br /&gt;
&lt;br /&gt;
==== Tesztelés, tipikus hibák és elhárításuk ====&lt;br /&gt;
&lt;br /&gt;
# [[hu-faq-qprobs|A kép minősége rossz (akadozik, lefagy). Hogyan ellenőrizhetem a minősegi ill. átviteli paramétereket?]]&lt;br /&gt;
# [[hu-faq-testvc|Hogyan tesztelhetem a videokonferencia berendezés hálózati kapcsolatát?]]&lt;br /&gt;
# [[hu-faq-testgds|Hogyan tudom ellenőrizni a külföldi (GDS) konnektivitást?]]&lt;br /&gt;
&lt;br /&gt;
==== Információs oldalak ====&lt;br /&gt;
&lt;br /&gt;
# [[hu-faq-h323|Mi a H.323?]]&lt;br /&gt;
# [[hu-faq-gk|Mi a gatekeeper?]]&lt;br /&gt;
# [[hu-faq-mcu|Mi az MCU? Mikor van szükségem MCU-ra?]]&lt;br /&gt;
# [[hu-faq-gds|Mi a GDS?]]&lt;br /&gt;
# [[hu-faq-res|Milyen felbontásban kerül átvitelre a kép egy videokonferenciában? Mi a CIF, 4CIF és HD?]]&lt;br /&gt;
# [[hu-faq-vcodecs|Mi a különbség a videokonferencia esetén használt video kódoló algoritmusok között?]]&lt;br /&gt;
# [[hu-faq-datarate|Mekkora adatsebességet használjak?]]&lt;br /&gt;
&lt;br /&gt;
==== Polycom ViewStation FX és VSX 7000 tippek ====&lt;br /&gt;
&lt;br /&gt;
# [[hu-faq-doccam|Mi a dokumentum-kamera? Hogyan használhatom ezt a Polycom ViewStation FX/VSX7000 berendezésekkel?]]&lt;br /&gt;
# [[hu-faq-extcam|Hogyan csatlakoztathatok külső kamerát a Polycom ViewStation FX ill. Polycom VSX 7000 eszközökhöz?]]&lt;br /&gt;
# [[hu-faq-rec|Hogyan rögzíthető egy videokonferencia? Hogyan játszhatok be mozgóképet videokonferenciába?]]&lt;br /&gt;
# [[hu-faq-vcr|Hogyan csatlakoztatható felvevő/lejátszó egység (VHS videomagnó, DVD lejatszo, PC + capture kártya) a Polycom ViewStation FX ill. a Polycom VSX 7000 eszközhöz?]]&lt;br /&gt;
# [[hu-faq-presq|Miért nem olvasható a prezentációban lévő apróbetűs szöveg a televízió-képernyőn?]]&lt;br /&gt;
# [[hu-faq-pstreaming|Hogyan használhatom a Polycom ViewStation FX és a Polycom VSX 7000 streaming képességeit?]]&lt;br /&gt;
# [[hu-faq-pisdn|Hogyan kell beállítani a Polycom ViewStation FX ISDN egységét?]]&lt;br /&gt;
# [[hu-faq-panalogue|Hogy lehet analóg telefont csatlakoztatni a Polycom ViewStation FX eszközhöz?]]&lt;br /&gt;
# [[hu-faq-pdtmf|Hogyan lehet DTMF hangjelzést adni Polycom ViewStation és VSX 7000 berendezések segítségével?]]&lt;br /&gt;
&lt;br /&gt;
==== Egyéb információ ====&lt;br /&gt;
&lt;br /&gt;
# [[hu-faq-vceps|Hol találok információt külföldi felsőoktatási/akadémiai videokonferencia rendszerek elhelyezkedéséről?]]&lt;br /&gt;
# [[hu-faq-callip|Ha partneremnek (akar külföldi, akár belföldi) - akivel videokonferenciázni szeretnék - nincs &amp;quot;telefonszáma&amp;quot; csak IP cime (nincs a GDS-ben), hogyan hívhatjuk egymást mégis könnyen, egyszerűen?]]&lt;br /&gt;
# [[hu-faq-audioconf|Hogyan tudok hangkonferenciázni PSTN és VoIP résztvevőkkel?]]&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=VoIP_links&amp;diff=2422</id>
		<title>VoIP links</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=VoIP_links&amp;diff=2422"/>
				<updated>2013-02-25T14:43:01Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= VoIP protokollok =&lt;br /&gt;
&lt;br /&gt;
== SIP ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Session_Initiation_Protocol SIP - Wikipédia]&lt;br /&gt;
* [http://www.tech-invite.com http://www.tech-invite.com SIP Call Flow]&lt;br /&gt;
* [http://www.cs.columbia.edu/sip/ SIP]&lt;br /&gt;
* [http://www.iana.org/assignments/sip-parameters IANA Session Initiation Protocol (SIP) Parameters] &lt;br /&gt;
* [http://www.opensipstack.org/links_rfc.html SIP RFC's]&lt;br /&gt;
* [http://tools.ietf.org IETF SIP RFC's]&lt;br /&gt;
&lt;br /&gt;
=== Történelem ===&lt;br /&gt;
* [http://www.cs.columbia.edu/sip/history.html SIP történelem]&lt;br /&gt;
* [http://sip-router.org/history/ SER/OPENSER/KAMAILIO/SIP-ROUTER történelem]&lt;br /&gt;
&lt;br /&gt;
=== MD5 Digest ===&lt;br /&gt;
* [http://www.crt.realtors.org/projects/rets/variman/support/digest.php http digest számoló eszköz]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Digest_access_authentication]&lt;br /&gt;
&lt;br /&gt;
=== SIP is not Simple ===&lt;br /&gt;
* [http://rfc3261.net/ The following graphs illustrate the enormus growing rate of RFCs which are related to SIP or VoIP in general.]&lt;br /&gt;
&lt;br /&gt;
=== SIP Auto answer / Page ===&lt;br /&gt;
*[http://comments.gmane.org/gmane.ietf.sip-implementors/17345 sip implementors]&lt;br /&gt;
*[http://tools.ietf.org/html/rfc5373 Requesting Answering Modes for the Session Initiation Protocol (SIP)]&lt;br /&gt;
&lt;br /&gt;
=== SIP Stacks ===&lt;br /&gt;
* [http://www.pjsip.org/ pjsip SIP stack]&lt;br /&gt;
* [http://sipsimpleclient.com/ python based SIP stack]&lt;br /&gt;
* [http://sofia-sip.sourceforge.net/ Sofia SIP stack]&lt;br /&gt;
* [http://digitus.itk.ppke.hu/~takacsgy/internetmediatgy10_09.ppt SIPit SIP stack együttműködési tesztek összefoglalói]&lt;br /&gt;
* [http://sipsimpleclient.com/ SIP SIMPLE client is a Software Development Kit (Python)]&lt;br /&gt;
&lt;br /&gt;
=== SIP over IPv6 ===&lt;br /&gt;
* [http://books.google.com/books?id=Z1FvEKmFzAsC&amp;amp;printsec=frontcover Voice Over IPv6]&lt;br /&gt;
&lt;br /&gt;
=== SIP-B ===&lt;br /&gt;
* [http://www.hbone.hu/Workshop2007/dvrt-sipb_mccn.pdf SIP-B + Deverto]&lt;br /&gt;
* [http://www.networkworld.com/techinsider/2005/061305ti-sip-b.html?page=2 SIP-B cikk]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-sharath-sipb-requirements-00 SIP-B lejárt draft]&lt;br /&gt;
* [http://www.bandwidth.com/wiki/article/SIP-B SIP-B definíció]&lt;br /&gt;
&lt;br /&gt;
=== Roadmaps ===&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/sip/configuration/guide/sip_cg-roadmap.html Cisco SIP Roadmap]&lt;br /&gt;
* [http://bugs.digium.com/roadmap_page.php Asterisk roadmap]&lt;br /&gt;
&lt;br /&gt;
=== SIP Identity ===&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sip-privacy-04 draft sip-privacy-04 (Remote-Party-ID) lejárt leváltotta RFC 3323-3325]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3323 RFC 3323 A Privacy Mechanism for the Session Initiation Protocol (SIP)]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3324 RFC 3324 Short Term Requirements for Network Asserted Identity]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3325 RFC 3325 (Private Extensions to the SIP for Asserted Identity within Trusted Networks)]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4474 RFC 4474 (Enhancements for Authenticated Identity Management in the SIP)]&lt;br /&gt;
* [http://tools.ietf.org/id/draft-rosenberg-sip-rfc4474-concerns-00.txt RFC 4474 Concerns (Tel uri + RFC 4474)]&lt;br /&gt;
* [http://tools.ietf.org/wg/sip/draft-wing-sip-identity-media-02.txt draft-wing-sip-identity-media-02.txt]&lt;br /&gt;
&lt;br /&gt;
=== SIP Peeering ViPR (Verification involving PSTN Reachability)===&lt;br /&gt;
* http://www.ietf.org/mail-archive/web/dispatch/current/msg00901.html&lt;br /&gt;
* http://tools.ietf.org/html/draft-rosenberg-dispatch-vipr-overview-02&lt;br /&gt;
&lt;br /&gt;
=== SIP SAML ===&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sip-saml-06 SIP SAML Profile and Binding]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4484 RFC 4484 Trait-Based Authorization Requirements for the Session Initiation Protocol (SIP)]&lt;br /&gt;
&lt;br /&gt;
=== SIP RACE Condition ===&lt;br /&gt;
* [http://tools.ietf.org/html/rfc5407 RFC5407 Example Call Flows of Race Conditions in SIP (Best Current Practice)]&lt;br /&gt;
&lt;br /&gt;
=== RFC ===&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4244 RFC 4244 SIP History-Info header]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3842 RFC 3842 Message Waiting Indication Event Package (pl. Asterisk voicemail is ezt használja)]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3420.txt RFC 3420 sipfrag (SIP üzenetrészlet)]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3303 RFC3303 Middlebox communication architecture and framework]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3323 RFC3323 SIP Privacy]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4916 Connected Identity RFC 4916]&lt;br /&gt;
* [http://tools.ietf.org/id/draft-ietf-sip-location-conveyance-08.txt Location Conveyance for the Session Initiation Protocol]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4458 RFC 4458 / SIP URIs for Applications such as Voicemail and Interactive Voice Response (IVR)]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3428 RFC3428: SIP Extension for Instant Messaging]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4028 RFC4028 SIP Session Timer]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4475 RFC4475 SIP Torture messages]&lt;br /&gt;
* [http://tools.ietf.org/search/rfc4796 RFC4796 The Session Description Protocol (SDP) Content Attribute (SDP) Content Attribute / sip+content (douvideo vagy H.239 sip-en)]&lt;br /&gt;
&lt;br /&gt;
=== RAI Workgroup ===&lt;br /&gt;
* [http://tools.ietf.org/wg/speermint/ Session PEERing for Multimedia INTerconnect (SPEERMINT)]&lt;br /&gt;
&lt;br /&gt;
=== SIP Kliensek ===&lt;br /&gt;
==== SIP Hard kliensek ====&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-11277 Provisioning Parameters for Extension Mobility on Cisco SPA5x5 IP Phones]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-3216 Cisco Small Business IP Telephony Provisioning Guide]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-2166 Linksys SPA telefonok reboot reason code -ok listája]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-2181 SPA Phone Firmware and Tools fordítások]&lt;br /&gt;
*[http://hup.hu/node/57529 HUP fórum Linksys SPA magyarítás]&lt;br /&gt;
*[https://www.myciscocommunity.com/docs/DOC-1751 Config Guide: SPA9000 Voice System Administration Guide (Release 6.1)]&lt;br /&gt;
*[https://www.myciscocommunity.com/servlet/JiveServlet/downloadBody/11915-102-7-23913/SPA5xx-7-x_Update_Jan-20-2010.pdf SPA5xx-7-x_Update_Jan-20-2010.pdf]&lt;br /&gt;
*[https://www.myciscocommunity.com/docs/DOC-10647 Interoperability information for Asterisk(R)-based Phone Systems]&lt;br /&gt;
*[http://forum.voxilla.com/linksys-sipura-voip-support-forum/sip-notify-resync-password-11230.html spa resync &amp;quot;C&amp;quot; source code]&lt;br /&gt;
*[https://www.myciscocommunity.com/docs/DOC-6672 Cisco/Linksys SPA50XG ringtone converter win utility]&lt;br /&gt;
*[https://www.myciscocommunity.com/thread/5568 Cisco/Linksys SPA custom language XML support]&lt;br /&gt;
*[https://www.myciscocommunity.com/docs/DOC-2845 SPA900 Phones XML Dictionaries, v6.1. Two new languages supported: Bulgarian and Norwegian. Includes following languages: Bulgarian (bg), Czech (cz), Danish(dk), German (de), English (en), French (fr), Croatian (hr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Romainan (ro), Russian (ru), Spanish (es), Swedish (se), Slovak (sk), Slovenian (sl), Turkish (tu). ]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-1251 Sipura/Linksys/Cisco SPA 5xx/9xx LDAP Corporate Directory]&lt;br /&gt;
* [https://www.myciscocommunity.com/servlet/JiveServlet/downloadBody/1251-102-2-4033/SPA900_LDAP_CORP_DIR_V11.pdf SPA900_LDAP_CORP_DIR_V11.pdf]&lt;br /&gt;
* [http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services Cisco 79xx/SPA5xx XML directory]&lt;br /&gt;
* [https://www.myciscocommunity.com/community/smallbizsupport/voiceandconferencing/ipphones/xmlphoneapp XML phone apps SPA5xx]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-13976 CiscoIPPhone object supported by SPA 5xx series IP Phones]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-13978 Support for SIP NOTIFY XML-Service event on SPA500 IP Phones]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-14023 XML Services for SPA500 series IP Phone documentation]&lt;br /&gt;
* [https://www.myciscocommunity.com/docs/DOC-2148 Small Business IP Phone Documentation]&lt;br /&gt;
* [http://www.youtube.com/watch?v=8w9qfKMrH0I Cisco SPA5xxG IP Phones and DHCP OPTIONS ]&lt;br /&gt;
* [https://supportforums.cisco.com/docs/DOC-11463 SPA 50X XML Dictionaries v7.4.X]&lt;br /&gt;
&lt;br /&gt;
==== Fogyasztás ====&lt;br /&gt;
* [http://www.snom.com/uploads/media/Leistungsmessung_IP_Phones_EN.pdf ip telefonok fogyasztásának összehasonlítása]&lt;br /&gt;
&lt;br /&gt;
==== SIP Soft kliensek ====&lt;br /&gt;
* [http://www.qutecom.org/ qutecom]&lt;br /&gt;
* [http://www.portsip.com/downloads.htm portsip pangolin]&lt;br /&gt;
* [http://www.counterpath.net x-lite / eye-beam / bria]&lt;br /&gt;
* [http://www.xs4all.nl/~mfnboer/twinkle/index.html twinkle]&lt;br /&gt;
* [http://www.icanblink.com/ Blink MacOSX]&lt;br /&gt;
* [http://www.phonerlite.de/ phonerlite windows (ipv6!)]&lt;br /&gt;
* [http://www.mercuro.net/index.php mercuro windows / windows mobile]&lt;br /&gt;
* [http://www.minisip.org minisip]&lt;br /&gt;
* [http://www.2moshi.com/download/index.php Enigma windows (XP/Vista/7) / Linux (Fedora)]&lt;br /&gt;
* [http://www.linphone.org/ linphone linux]&lt;br /&gt;
* [http://www.pjsip.org/pjsua.htm pjsua console sip kliens]&lt;br /&gt;
&lt;br /&gt;
==== SIP Mobil kliensek ====&lt;br /&gt;
* [http://sipdroid.org/ Android + SIP = sipdroid]&lt;br /&gt;
&lt;br /&gt;
=== SIP Trunking ===&lt;br /&gt;
* [http://tools.ietf.org/id/draft-rosenberg-sipping-siptrunk-00.txt What is a SIP Trunk Anyway?]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc490 Representing Trunk Groups in tel/sip Uniform Resource Identifiers (URIs)]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-malas-enum-trunk-sip-00 Trunk Group Use in ENUM]&lt;br /&gt;
&lt;br /&gt;
* [http://www.asipto.com/pub/openser-devel-guide/ OPENSER/Kamailio Devel Guide]&lt;br /&gt;
&lt;br /&gt;
=== SIP Redundancy / HA ===&lt;br /&gt;
* [http://www.unc.edu/~cschlatt/docs/SIP_failover_and_redundancy.pdf SIP_failover_and_redundancy.pdf]&lt;br /&gt;
&lt;br /&gt;
=== SIP Troubleshooting tools===&lt;br /&gt;
* http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/utils/sipgrep/&lt;br /&gt;
* http://www.wireshark.org/&lt;br /&gt;
 wireshark -k -i &amp;lt;(ssh 192.168.1.1 &amp;quot;sudo tshark -w - -i eth0&amp;quot;)&lt;br /&gt;
* tshark (console wireshark) &lt;br /&gt;
 tshark -i eth0 -t ad -R 'sip'-S -w /tmp/sip.cap&lt;br /&gt;
&lt;br /&gt;
== H.323 ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/H.323 H.323 Wikipedia]&lt;br /&gt;
* [http://www.packetizer.com/voip/h323/ H.323 paketizer]&lt;br /&gt;
* [https://www.tilb.sze.hu/tilb/targyak/NGB_TA024_1/krp-5f.pdf H.323 rövid mini tutorial magyarul]&lt;br /&gt;
&lt;br /&gt;
== SIP vs. H.323 ==&lt;br /&gt;
* http://www.packetizer.com/voip/h323_vs_sip/&lt;br /&gt;
* http://hive.packetizer.com/users/h323forum/papers/Service_Architecures_SIP-H323.pdf&lt;br /&gt;
* [http://www.unc.edu/~cschlatt/docs/sip_h323.pdf SIP and H.323]&lt;br /&gt;
&lt;br /&gt;
= Open Source hívásirányítók =&lt;br /&gt;
* [http://www.voip-info.org/wiki/index.php?page=VOIP+PBX+and+Servers VoIP SoftSwitchek PBX-ek gyűjteménye.. ]&lt;br /&gt;
&lt;br /&gt;
* [http://www.asterisk.org www.asterisk.org]&lt;br /&gt;
* [http://www.kamailio.org www.kamailio.org]&lt;br /&gt;
* [http://www.opensips.org www.opensips.org]&lt;br /&gt;
* [http://sip-router.org sip-router.org project (common collaboration framework to X-SER)]&lt;br /&gt;
* [http://www.iptel.org www.ser.org]&lt;br /&gt;
* [http://www.gnugk.org www.gnugk.org (csak H.323)]&lt;br /&gt;
* [http://openimscore.org/ openimscore.org opensource IMS]&lt;br /&gt;
&lt;br /&gt;
=== SIP-Router ===&lt;br /&gt;
* [http://by-miconda.blogspot.com/2010/04/kamailio-30x-dyk-toc.html Kamailio 3.0.x - DYK - ToC]&lt;br /&gt;
&lt;br /&gt;
= &amp;quot;copy left&amp;quot; / &amp;quot;public domain&amp;quot; / &amp;quot;Creative Common&amp;quot; Music on Hold zenék =&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wikipedia:Sound/list Wikipedia ogg file-ok]&lt;br /&gt;
* [http://opsound.org opsound.org mp3 file-ok]&lt;br /&gt;
* [http://downloads.asterisk.org/pub/telephony/sounds/ asterisk Creative Common]&lt;br /&gt;
&lt;br /&gt;
* http://blogs.digium.com/2009/08/18/asterisk-music-on-hold-changes/&lt;br /&gt;
&lt;br /&gt;
= Location / Végpontok azonosítása / Azonosító gazdálkodás =&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_country_calling_codes országhívó kódok wikipedia country codes]&lt;br /&gt;
&lt;br /&gt;
== Magyar Azonosító gazdálkodás ==&lt;br /&gt;
* [http://www.nhh.hu/?id=dokumentumtar&amp;amp;mid=927&amp;amp;lang=hu Azonosítógazdálkodással és számhordozhatósággal kapcsolatos jogszabályok]&lt;br /&gt;
* [http://www.nhh.hu/dokumentum.php?cid=8183 164/2005. (VIII. 16.) Korm. rendelet az elektronikus hírközlő hálózatok azonosítóinak nemzeti felosztási tervéről (rövid számok!!!)]&lt;br /&gt;
* [http://www.nhh.hu/dokumentum.php?cid=8880 Magyar Nemzeti számozási terv]&lt;br /&gt;
* [http://www.nhh.hu/?id=hir&amp;amp;cid=784&amp;amp;mid=448&amp;amp;lang=hu www.nhh.hu Azonosító gazdálkodás]&lt;br /&gt;
&lt;br /&gt;
== Külföldi Azonosító gazdálkodás ==&lt;br /&gt;
* [http://www.nanpa.com NANPA: North American Numbering Plan Administration]&lt;br /&gt;
* [http://www.voip-info.org/wiki/view/3883 voip-info.org +3883 - European Telephony Numbering Space - ETNS ]&lt;br /&gt;
* [http://www.etns.org +3883 - European Telephony Numbering Space - ETNS]&lt;br /&gt;
* [http://www.inum.net iNum is making use of the +883 global country code newly created by the ITU (International Telecommunication Union).]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ENUM ==&lt;br /&gt;
* [http://nrenum.net/ NREN ENUM] Az európai kutató hálózatok privát ENUM fája.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Telephone_Number_Mapping ENUM Wikipédia]&lt;br /&gt;
* [http://www.ripe.net/enum/ RIPE ENUM]&lt;br /&gt;
* [http://enum.sze.hu Magyar ENUM pilot]&lt;br /&gt;
* [http://enumdata.org/ Enum fák állapota]&lt;br /&gt;
* [http://www.iana.org/assignments/enum-services IANA Enumservice Registrations]&lt;br /&gt;
* [http://www.servizi.garr.it/index.php/it/voip/partecipanti GARR NRENUM directory]&lt;br /&gt;
&lt;br /&gt;
=== RFC ===&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3761.txt The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3764.txt RFC 3764 enumservice registration for Session Initiation Protocol (SIP) &amp;quot;E2U+SIP&amp;quot; enumservice for SIP]&lt;br /&gt;
* [http://www.faqs.org/rfcs/rfc3263.html RFC 3263 - Session Initiation Protocol (SIP): Locating SIP Servers (D2X)]&lt;br /&gt;
* [http://tools.ietf.org/id/draft-elwell-sip-e164-problem-statement-00.txt SIP E.164 Problem Statement]&lt;br /&gt;
&lt;br /&gt;
=== ENUM tutorial ===&lt;br /&gt;
* [http://jprs.co.jp/enum/enum_jprs/activity/pdf/031122.pdf Japán tutorial (2003)]&lt;br /&gt;
* [http://www.enumf.org/documents/gen/2003/GEN0075R0_Lind_ENUM_%20Tutorial.ppt AT&amp;amp;T (2003)]&lt;br /&gt;
&lt;br /&gt;
== TRIP/ITAD ==&lt;br /&gt;
* [http://freenum.org/cookbook/ ITAD Subscriber Numbers] SIP.edu&lt;br /&gt;
* [http://www.packetizer.com/ipmc/trip/ TRIP tutorial]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc2871 A Framework for Telephony Routing over IP RFC2871]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc3219  Telephony Routing over IP (TRIP) RFC3219]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_3/feature/guide/triplite.html TRIP Cisco IOS 12.3]&lt;br /&gt;
&lt;br /&gt;
== DUNDi ==&lt;br /&gt;
* [http://www.dundi.com/ DUNDi website]&lt;br /&gt;
* [http://www.dundi.com/dundi.txt DUNDi draft]&lt;br /&gt;
&lt;br /&gt;
= Test Framework-ök (Benchmark,Compatibility,Performance,Qos,MOS,PESQ,r-factror,E-modell,VQmon,Testnumber...) =&lt;br /&gt;
* [http://ftp.iq-labs.net/pbx-test/pbx-test-0.1.0.tar.gz pbx-test Asteriskhez]&lt;br /&gt;
* [http://sipp.sourceforge.net SIPp]&lt;br /&gt;
* [http://www.sipfoundry.org/sftf-user-guide.html SFTF SIP Foudry Test Framework ]&lt;br /&gt;
* [http://www.sipstone.org SIPSTONE]&lt;br /&gt;
* [http://www.testyourvoip.com VoIP QOS Mos mérő:testyourvoip/Brix networks ]&lt;br /&gt;
* [http://myvoipspeed.visualware.com VoIP QOS Mos mérő: Test My Connection for VoIP Quality/VisualWare]&lt;br /&gt;
* [http://www.enum-test.at/index_en.html VoIP Osztrák Tesztszámok]&lt;br /&gt;
* [http://www.voip-info.org/wiki-Call+Quality+Metrics voip-info.org Call Quality Metrics (PESQ, MOS)]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_4/ip_sla/configuration/guide/hsla_c.html Cisco IOS IP SLA Configuration Guide]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/ipsla/command/reference/sla_book.html Cisco IOS IP SLAs Command Reference]&lt;br /&gt;
* [http://www.voiptroubleshooter.com/open_speech/ The Open Speech Repository (Freely usable speech files in multiple languages for use in Voice over IP testing)]&lt;br /&gt;
* [http://www.tmcnet.com/tmcnet/articles/2005/voice-quality-measurement-voip-alan-clark-telchemy.htm voice quality measurement]&lt;br /&gt;
* [http://www.voiptroubleshooter.com Online Diagnostic Tools for Network Managers]&lt;br /&gt;
* [http://www.telchemy.com/technicalreference.html Telchemy VQmon (Technical Reference)]&lt;br /&gt;
* [http://mitesterforsip.sourceforge.net/ miTester for SIP]&lt;br /&gt;
* [http://linux.die.net/man/1/sip-dig sip-dig dns SRV NAPTR tester]&lt;br /&gt;
* [http://cert.v6pc.jp/sip-ipv6/ipv6ready/ IPv6 Ready]&lt;br /&gt;
* [http://www.voiptroubleshooter.com/diagnosis/emodel.html E-model R-Factor MoS]&lt;br /&gt;
* [http://www.itu.int/ITU-T/studygroups/com12/emodelv1/calcul.php E-model R-Factor MoS ITU calculator]&lt;br /&gt;
* [http://www.itu.int/ITU-T/studygroups/com12/emodelv1/tut.htm E-model tutorial]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4475 RFC4475 SIP Torture Test Messages SIPit]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-mmusic-media-loopback-13 media-loopback An Extension to the Session Description Protocol (SDP) for Media Loopback draft-ietf-mmusic-media-loopback-13 (?Cisco/Linksys/SIPURA SPA?)]&lt;br /&gt;
* [http://www.testingvoip.com/?cat=4 loopback testing]&lt;br /&gt;
* [http://www.cisco.com/en/US/customer/docs/solutions/Enterprise/WAN_and_MAN/QoS_SRND/QoS-SRND-Book.html Cisco Enterprise QoS Solution Reference Network Design Guide]&lt;br /&gt;
Wideband Demo SIP URI  G.711 és G.722 között lehet váltogatni a &amp;quot;#&amp;quot; megnyomásával&lt;br /&gt;
* sip:wbdemo@conf.zipdx.com vagy sip:wbdemo@zipdx.com&lt;br /&gt;
* [http://code.google.com/p/sip-viewer/ sip-viewer]&lt;br /&gt;
&lt;br /&gt;
= VoIP biztonság / Security =&lt;br /&gt;
* [http://video.google.com/videoplay?docid=-3393113300431239249 VoIP Crack]&lt;br /&gt;
* [http://www.oxid.it/cain.html cain password Cain &amp;amp; Abel is a password recovery tool for Microsoft Operating Systems.]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sip-domain-certs-04 IETF Draft Domain Certificates in SIP SubjectAltName használata]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sip-eku-05 IETF Draft SIP + X.509 Extended Key Usage]&lt;br /&gt;
* [http://www.voipsa.org/Resources/ VOIPSA.org voip security resources ]&lt;br /&gt;
* [http://sip-router.org/wiki/_media/tbd/overload_control_problem_statement_vpascualv10.pdf SIP overload control problem statement]&lt;br /&gt;
* [http://www.snocer.org/Paper/sisalem_dos.pdf SIP DoS]&lt;br /&gt;
* [http://www.acmepacket.com/images/ctlabsreport_0905.pdf SIP RTP DoS]&lt;br /&gt;
* [http://www.ietf.org/proceedings/06mar/slides/raiarea-1/raiarea-1.ppt Overview of SIP Media Security Options - Dan Wing]&lt;br /&gt;
* [http://code.google.com/p/sipvicious/ sipvicious /sip scanner tool/]&lt;br /&gt;
&lt;br /&gt;
= Videokonferencia és VoIP    Prezentációk / Konferenciák / Portálok / Tutorial / Szerveztek =&lt;br /&gt;
&lt;br /&gt;
== Tutorial ==&lt;br /&gt;
* [http://www.tekelec.com/resource-center/?docID=734 SIP Pocket Guide]&lt;br /&gt;
* [http://mit.edu/sip/sip.edu SIP.edu cookbook]&lt;br /&gt;
* [http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_6-1/sip.html SIP mini overview from Cisco]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc5411 A Hitchhiker's Guide to the Session Initiation Protocol (SIP)]&lt;br /&gt;
* [http://www.tekelec.com/news-&amp;amp;-events/?p=webcasts Tekelec  Webinars]&lt;br /&gt;
* [http://www.tekelec.com/news-&amp;amp;-events/pdf/SIP_Tutorial1_Webinar.pdf TEKELEC SIP Tutorial 1]&lt;br /&gt;
* [http://www.tekelec.com/news-&amp;amp;-events/docs/SIP%20Tutorial%20II_FINAL.pdf TEKELEC SIP Tutorial 2]&lt;br /&gt;
* [http://www.tekelec.com/news-&amp;amp;-events/docs/SIP_Tutorial_III_9September2008.pdf TEKELEC SIP Tutorial 3]&lt;br /&gt;
* [http://www.tekelec.com/news-&amp;amp;-events/docs/SIP%20Tutorial%20IV_18November2008.pdf TEKELEC SIP Tutorial 4]&lt;br /&gt;
* [http://www.tekelec.com/resource-center/?docID=356 Upgrading the Next-generation Network Part II - Layer 5 Core SIP Routing]&lt;br /&gt;
* [http://www.voice-sistem.ro/downloads/2007.08.29-Admin-Course/von-italy-2007_admin-course.zip OpenSer/Kamailio Admin Course 2007.08.29]&lt;br /&gt;
* [http://www.iptel.org/files/sip_tutorial.pdf SIP tutorial (iptel.org)]&lt;br /&gt;
* [http://www.unc.edu/~cschlatt/docs/cs_unc_rtc_arch_2.pdf UNC realtime Architecture Christian Schlatter]&lt;br /&gt;
* [http://digitus.itk.ppke.hu/~takacsgy/internetmediatgy10_09.ppt PPKE ITK Internetes médiakommunikáció VoIP]&lt;br /&gt;
* [http://www.jdrosen.net/papers/devconfw2001_cpltutorial.ppt CPL Tutorial]&lt;br /&gt;
* [http://www.opensips.org/html/docs/video/webinar001/ opensips webinar]&lt;br /&gt;
* [http://www.opensips.org/Training/Webinars opensips webinars home]&lt;br /&gt;
* [http://www.3cx.hu/voip-sip/voip-source.php 3CX IP PBX-szel, SIP-pel és VOIP-pel kapcsolatos GYIK]&lt;br /&gt;
* [http://www.voipnetwork.hu/index.php?Oldal=kezdolap&amp;amp;Almenu=hogyanmukodik VoIP tudástár magyarul, kezdőknek]&lt;br /&gt;
* [http://www.opensips.org/index.php?n=Resources.DocsTutLoadbalancing OpenSIPS loadbalancing példa]&lt;br /&gt;
* [https://www.tilb.sze.hu/tilb/targyak/NGB_TA024_1/SIP_Trixbox.pdf Trixbox telepítés]&lt;br /&gt;
* [http://www.jdrosen.net/papers/xcap-tutorial.ppt XCAP tutorial]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/sip/configuration/guide/sip_cg-overview.html Overview of SIP - Cisco]&lt;br /&gt;
* [http://www.inf.u-szeged.hu/~bilickiv/ip_2_2006_1/8.ppt Bilicki Vilmos Szegedi Egyetem VoIP - SIP - XMPP]&lt;br /&gt;
* [http://kb.asipto.com/ Kamailio Knowledge Base (kb.aspito.com)] &lt;br /&gt;
* [http://arstechnica.com/business/news/2010/01/voip-in-depth-an-introduction-to-the-sip-protocol-part-1.ars VoIP in-depth: An introduction to the SIP protocol, Part 1]&lt;br /&gt;
=== Asterisk Books Tutorial ===&lt;br /&gt;
* [http://downloads.oreilly.com/books/9780596510480.pdf O'Reilly Book Asterisk: The Future of Telephony, 2nd Edition]&lt;br /&gt;
* [http://asterisk.name/asterisk/0596009623/main.html Asterisk: The Future of Telephony html formában]&lt;br /&gt;
* [http://www.asteriskguru.com/tutorials/ Asterisk Tutorial]&lt;br /&gt;
* [http://www.voip-info.org/wiki/view/vim+syntax+highlighting VIM + Asterisk extension.conf syntax highlighting]&lt;br /&gt;
* [http://www.voip-info.org/wiki/view/Asterisk+SIP+user+vs+peer Asterisk SIP User vs. Peer]&lt;br /&gt;
&lt;br /&gt;
== Konferenciák ==&lt;br /&gt;
* http://www.cluecon.com/&lt;br /&gt;
* http://www.von.com/&lt;br /&gt;
* http://www.astricon.net/&lt;br /&gt;
* http://www.amoocon.de/&lt;br /&gt;
* [http://www.cisco.com/networkers/nw04/presos/vvt.html NETWORKERS 2004]&lt;br /&gt;
* [http://www.opensips.org/Events/Amoocon2009 OpenSIPS Amoocon 2009]&lt;br /&gt;
&lt;br /&gt;
== Portálok ==&lt;br /&gt;
* [http://www.wainhouse.com/ Wainhouse Research Videoconference Portal analyzes the market trends, technologies/products, vendors, applications, and related services in the Unified Communications and rich media conferencing fields.]&lt;br /&gt;
* [http://tarcsahang.blog.fn.hu Tárcsahang]&lt;br /&gt;
&lt;br /&gt;
== Szervezetek ==&lt;br /&gt;
* [http://www.sipforum.org sipfórum http://www.sipforum.org]&lt;br /&gt;
* [http://www.terena.org/activities/tf-ecs/ Terena: Enhanced Communication Services - Task Force]&lt;br /&gt;
&lt;br /&gt;
= PSTN / POTS =&lt;br /&gt;
* [http://www.patton.com/technotes/fxs_fxo.pdf FXS vs. FXO]&lt;br /&gt;
* [http://www.beronet.com/downloads/docs/berofos/berofos.pdf ISDN E1 failover switch]&lt;br /&gt;
&lt;br /&gt;
== Cisco ISDN gateway configuration ==&lt;br /&gt;
* [http://www.cisco.com/cgi-bin/Support/DSP/dsp-calc.pl Cisco DSP calculator (jogosultság szükséges a használatához)]&lt;br /&gt;
* [http://www.cisco.com/en/US/products/hw/routers/ps259/products_tech_note09186a00800e73f6.shtml Voice Hardware Compatibility Matrix (Cisco 17/26/28/36/37/38xx, VG200, Catalyst 4500/4000, Catalyst 6xxx)]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/command/reference/vr_i1.html#wp1089848 Table 29 Dial-Peer Matching Rules for Inbound URI in SIP Calls ]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_3t/voice/command/reference/vrht_d1_ps5207_TSD_Products_Command_Reference_Chapter.html#wp1456602 Table 16 Dial-Peer Matching Rules for Outbound URI]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/command/reference/vr_book.html Cisco IOS Voice Command Reference]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/fax/configuration/guide/12_4/vf_12_4_book.html Cisco IOS Fax, Modem, and Text Support over IP Configuration Guide, Release 12.4]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech_note09186a008010fed1.shtml Understanding Inbound and Outbound Dial Peers Matching on IOS Platforms]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_3/vvf_c/voice_port_configuration_guide/vpc_bk.pdf Cisco IOS Voice Port Configuration Guide (Book Length PDF)]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk652/tk777/technologies_white_paper09186a00801fe5da.shtml Fax over IP T.37 Store and Forward Fax (Nagyvonalú leírás és részletes minta példa. Támogatott e-mail formátum részletezése]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_2t/12_2t11/feature/guide/ftgwrepg.html VoIP Gateway Trunk and Carrier Based Routing Enhancements]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/cdr/developer/guide/cdrdev.html Radius Accounting Cisco VSA]&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_3/vvf_c/voice_troubleshooting/old/vts_cflw.html Cisco Telephony Interface Architecture felépítés]&lt;br /&gt;
* [http://docwiki.cisco.com/wiki/Cisco_IOS_Voice_Troubleshooting_and_Monitoring_--_Voice_Call_Debug_Filtering_on_Cisco_Voice_Gateways Voice Call Debug Filtering on Cisco Voice Gateways]&lt;br /&gt;
* [http://docwiki.cisco.com/wiki/Cisco_IOS_Voice_Troubleshooting_and_Monitoring_--_SIP_Debug_Output_Filtering_Support SIP Debug Output Filtering]&lt;br /&gt;
* [http://docwiki.cisco.com/wiki/Cisco_IOS_Voice_Troubleshooting_and_Monitoring_Guide Cisco WIKI: Cisco IOS Voice Troubleshooting and Monitoring]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk652/tk777/technologies_tech_note09186a0080114565.shtml Cisco Fax hibakeresés]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/12_3/vvf_r/voice_r.html Cisco Voice Command Reference]&lt;br /&gt;
* [http://www.cisco.com/en/US/products/sw/iosswrel/ps1835/products_programming_reference_guide_book09186a0080080221.html Session Initiation Protocol Gateway Call Flows]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/monitor/configuration/guide/12_4/vt_12_4_book.html Cisco IOS Voice Troubleshooting and Monitoring Guide, Release 12.4]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/sip/configuration/guide/12_4t/sip_12_4t_book.html 12.4T Configuration Guide]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk801/tk379/technologies_tech_note09186a008012e95f.shtml Understanding debug isdn q931 Disconnect Cause Codes]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk713/tk628/technologies_tech_note09186a00800a5cdc.shtml Understanding the show controllers E1 Command / E1 hibakeresés]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech_note09186a0080325e8e.shtml Voice Translation Rules / test voice translation-rule]&lt;br /&gt;
&lt;br /&gt;
= NAT STUN / TURN / ICE , XTUNNEL =&lt;br /&gt;
* [http://www.jdrosen.net/papers/ice-ietf-tutorial.pdf Interactive Connection Establishment /ICE/ - Rosenberg (NAT Traversal)]&lt;br /&gt;
* [http://xtunnels.org/ Xtunnel a counterpath/xten eyebeam/bria/x-lite termékéhez]&lt;br /&gt;
* [http://www.voiptraversal.com/ice_methodology.htm NAT traversal ICE/TURN/STUN]&lt;br /&gt;
* [http://turnserver.sourceforge.net/index.php turnserver TURN implementáció ]&lt;br /&gt;
* [http://sdstrowes.co.uk/talks/20081031-ice-turn-stun-tutorial.pdf ICE STUN TURN tutorial]&lt;br /&gt;
* [http://www.amoocon.de/talks/93 ICE: the ultimate way of beating NAT in SIP (amoocon)]&lt;br /&gt;
&lt;br /&gt;
= Codec, hang és video kódolás=&lt;br /&gt;
* [http://www.it.lth.se/courses/videocompression/Lectures.asp Digital Pictures Compression jegyzet]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_codecs Hang és Video kodekek listája]&lt;br /&gt;
* [http://www.polycom.eu/global/documents/whitepapers/codecs_white_paper.pdf Polycom voice codec white paper]&lt;br /&gt;
* [http://ip.hhi.de/imagecom_G1/savce/index.htm H.264 SVC]&lt;br /&gt;
* [http://wiki.multimedia.cx Media formátumok és a konténerek]&lt;br /&gt;
&lt;br /&gt;
= Directory, H.350 =&lt;br /&gt;
* [http://metric.it.uab.edu/vnet/cookbook/ H.350 Cookbook]&lt;br /&gt;
* [http://www.rfc-editor.org/rfc/rfc3944.txt H.350 IETF RFC 3944]&lt;br /&gt;
&lt;br /&gt;
= Speciális Hangjelzések =&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Special_information_tones speciális hangjelzések(Special Information Tone = SIT)]&lt;br /&gt;
&lt;br /&gt;
= Provisioning =&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sipping-config-framework-16 A Framework for Session Initiation Protocol User Agent Profile Delivery (configuration provisioning)]&lt;br /&gt;
&lt;br /&gt;
== DHCP ==&lt;br /&gt;
* [http://wiki.snom.com/Networking/DHCP DHCP opciók]&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3361.txt dhcp option sip-server /Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for Session Initiation Protocol (SIP) Servers/]&lt;br /&gt;
* [http://www.velocityreviews.com/forums/t31771-cisco-callmanager-and-dhcp-option-066-vs-150-a.html Cisco dhcp option 150 vs.66]&lt;br /&gt;
* [https://supportforums.cisco.com/message/1177022#1177022 Cisco support forum dhcp option 150 or 66]&lt;br /&gt;
&lt;br /&gt;
= QoS =&lt;br /&gt;
* [http://www.ietf.org/rfc/rfc3611.txt RTCP XR]&lt;br /&gt;
* [http://www.ixiacom.com/library/white_papers/display?skey=voip_quality Assessing VoIP Call Quality Using the E-model]&lt;br /&gt;
&lt;br /&gt;
= Szolgáltatók =&lt;br /&gt;
* http://voipszolgaltato.lap.hu/&lt;br /&gt;
&lt;br /&gt;
= Videokonferencia =&lt;br /&gt;
* [http://www.tandberg.com/collateral/documentation/White_Papers/White%20Paper%20-%20TANDBERG%20and%20SIP.pdf Tandberg SIP támogatás]&lt;br /&gt;
* [https://tandberg.learn.com/learncenter.asp?sessionid=3-EE20E830-3E2C-4DEE-B276-D69A779822FA&amp;amp;DCT=1&amp;amp;id=178413&amp;amp;page=13 TANDBERG University: Introduction to TANDBERG and Video Conferencing]&lt;br /&gt;
* [http://vcc.zih.tu-dresden.de/vc/handbuch/index.php Videoconference Manual]&lt;br /&gt;
&lt;br /&gt;
= Vertical Service Code =&lt;br /&gt;
* [http://www.ficora.fi/attachments/suomial/1156442449792/GFI_9804ed3.pdf GUIDELINES FOR IMPLEMENTATION SUPPLEMENTARY SERVICE CODES]&lt;br /&gt;
* [http://portal.etsi.org/HF/kta/MMI/mmi.asp MAN MACHINE INTERFACE (MMI)]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Service_feature Vertical service code]&lt;br /&gt;
* [http://www.nanpa.com/number_resource_info/vsc_definitions.html Vertical Service Codes / Code Definitions]&lt;br /&gt;
&lt;br /&gt;
= Példa nevek =&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Alice_and_Bob Alice Bob Carol Dave ... példa nevek A,B,C,D]&lt;br /&gt;
&lt;br /&gt;
= További érdekes helyek =&lt;br /&gt;
* [http://voip-info.org voip-info.org  (Open Source VoIP Biblia)]&lt;br /&gt;
* [http://hu.wikipedia.org/wiki/Voice_over_IP Wikipedia VoIP]&lt;br /&gt;
* [http://www.wesip.com/mediawiki/index.php/Main_Page WeSIP (adds a J2EE layer to OpenSER)]&lt;br /&gt;
* [http://openxcap.org/ XCAP Server Implementáció]&lt;br /&gt;
* [http://opensips-cp.sourceforge.net/ OpenSIPS Control Panel]&lt;br /&gt;
* [http://www.sipforum.org/component/option,com_docman/task,doc_download/gid,134/Itemid,75/ The SIPconnect Technical Recommendation]&lt;br /&gt;
*[http://www.sipforum.org/component/option,com_docman/task,doc_download/gid,24/Itemid,75/ White Paper on SIP Servers (RADVISION)]&lt;br /&gt;
* [http://sipwise.com/index.php/products?start=3 OpenSER config generator sip:wizard]&lt;br /&gt;
* [http://openxcap.org/ OpenXCAP python XCAP implementáció]&lt;br /&gt;
* [http://sip-router.org/wiki/bibliography A list of interesting publications that are related to the Sip-router project, SIP servers, or SIP and related protocols in general.]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/solutions/Enterprise/Video/poster_c82-540542_v4.pdf cisco UC poster]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-sipping-nat-scenarios-09 SIP NAT Best Practices]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/cube/configuration/guide/vb-gw-sipsip.html SIP-to-SIP Connections on a Cisco Unified Border Element (CUBE)]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/ios/voice/cube/configuration/guide/vb_book/vb_book.html Cisco Unified Border Element Configuration Guide]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk1077/technologies_tech_note09186a0080094045.shtml Troubleshooting and Debugging VoIP Call Basics hogyan működik az IOS képek]&lt;br /&gt;
* [http://www.flickr.com/photos/voipnovatos/collections/72157622823857839/ fényképek végpontok/ATA-k/stb. ]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4320 SIP problems: Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction RFC4320]&lt;br /&gt;
* [http://tools.ietf.org/html/rfc4321 SIP problems: Problems Identified Associated with the Session Initiation Protocol's (SIP) Non-INVITE Transaction RFC4321]&lt;br /&gt;
* [http://www.ciscoios.info/en/US/docs/ios/12_3/vvf_c/dial_peer/dpeer_c.html Dial Peer Configuration on Voice Gateway Routers]&lt;br /&gt;
* [http://www.cisco.com/en/US/products/sw/voicesw/ps2169/products_installation_and_configuration_guides_list.html Cisco Unified Survivable Remote Site Telephony Configuration Guides SRST]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-ietf-speermint-srv-naptr-use-06 RFC3263 DNS feloldás Best Current Practice]&lt;br /&gt;
&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/voice_ip_comm/cuipph/all_models/xsi/5_1/english/programming/guide/ipphsv.html Cisco telefon XML API 5.1]&lt;br /&gt;
* [http://www.cisco.com/en/US/docs/voice_ip_comm/cuipph/all_models/xsi/7_1_2/english/programming/guide/712xsi.html Cisco telefon XML API 7.1]&lt;br /&gt;
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.8045&amp;amp;rep=rep1&amp;amp;type=pdf SIP Proxy Server Effectiveness Master's Thesis Jan Jan´ak]&lt;br /&gt;
* [http://www.terena.org/activities/campus-bp/bpd.html GEANT3 Campus Best Practice (fények hang stb. videokonferencia terem tervezéshez)]&lt;br /&gt;
* [http://www.gipscorp.com/products/demos.php H.264/SVC demo Global IP Solutions]&lt;br /&gt;
* [http://www.icemission.com/ icemission softphone]&lt;br /&gt;
* [http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf ITU Local call progress tones2003]&lt;br /&gt;
* [http://www.itu.int/pub/T-SP-E.180-2010/en Local call progress tones2010]&lt;br /&gt;
* [http://www.carrollcommunications.com/locales/hungary.html Hungary (hun) Phone Settings and Frequencies]&lt;br /&gt;
* [https://www.ee.oulu.fi/research/ouspg/PROTOS_Test-Suite_c07-sip PROTOS sip test framework]&lt;br /&gt;
* [http://www.wtng.info World Telephone Numbering Guide]&lt;br /&gt;
* [http://liptel.vsb.cz/doku.php?id=work:security:voip_security CESNET VoIP Security]&lt;br /&gt;
* [http://www.geant.net/Media_Centre/Media_Library/Media%20Library/gn3-na3-t4-cbpd139.pdf CESNET VoIP]&lt;br /&gt;
* [http://www.zonecheck.fr/zonecheck DNS ZoneCheck tool]&lt;br /&gt;
* [http://www.cisco.com/en/US/tech/tk652/tk90/technologies_tech_note09186a0080b3e123.shtml cisco 15.1 IOS toll fraud prevention]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Universal_Personal_Telecommunications Universal Personal Telecommunications]&lt;br /&gt;
* [http://p2p-sip.blogspot.com/2009/11/sip-vs-xmpp-or-sip-and-xmpp.html SIP vs XMPP or SIP and XMPP]&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=VoIP_Recept&amp;diff=2421</id>
		<title>VoIP Recept</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=VoIP_Recept&amp;diff=2421"/>
				<updated>2013-02-25T14:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Egy lehetséges Asterisk recept, avagy hozzávalók sok személyre =&lt;br /&gt;
== Debain Alaprendszer ==&lt;br /&gt;
Először is rakjunk fel egy Debian (Lenny) alap install &lt;br /&gt;
&lt;br /&gt;
;Érdemes megfontolni a HW környezet kialakításánál:&lt;br /&gt;
* redundáns tápegység&lt;br /&gt;
* két hálózati kártya (redundáns hálózati kapcsolat miatt)&lt;br /&gt;
* két merevlemez (raid miatt)&lt;br /&gt;
&lt;br /&gt;
==== Javasolt Particionálás (RAID 1 + LVM) ====&lt;br /&gt;
két partíció(software raid):&lt;br /&gt;
# az egyik a /boot-nak 300-400M&lt;br /&gt;
# a másik raid azaz többi pedig az LVM és aztán ezt már lehet tovább szabdalni.... erre lehet tenni a swap-et.&lt;br /&gt;
&lt;br /&gt;
{{ambox | text=/etc/mdam.conf-ban vagy /etc/aliases (root) ne felejtsük beállítani hogy raid problémáról kinek küldjön levelet}}&lt;br /&gt;
&lt;br /&gt;
==== Alap install után érdemes a nem kellő csomagokat törölni és netfilter(iptables)-el megvédeni a gépet ====&lt;br /&gt;
&lt;br /&gt;
*NETFILTER(iptables) védelmét a számítógépnek mindenki alakítsa ki saját szája íze szerint.&lt;br /&gt;
*ami nem kell azt szedjük ne hallgasson semmi feleslegesen &lt;br /&gt;
például &lt;br /&gt;
&lt;br /&gt;
 aptitude purge pidentd,nfs-common,portmap&lt;br /&gt;
 aptitude install ssh&lt;br /&gt;
&lt;br /&gt;
==== Redundáns hálózat azaz hálózati interface bonding beállítása ====&lt;br /&gt;
[[Kép:debian_bonding.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kép:ip_softswitch.png]]&lt;br /&gt;
&lt;br /&gt;
;Csomagok installálása&lt;br /&gt;
 aptitude install vlan ifenslave-2.6&lt;br /&gt;
&lt;br /&gt;
;cat &amp;gt; /etc/modprobe.d/bonding &lt;br /&gt;
 alias bond0 bonding&lt;br /&gt;
 options bonding mode=active-backup updelay=4000 downdelay=1 miimon=10 primary=eth0&lt;br /&gt;
;Az /etc/network/interfaces file-t ezen minta alapján írjuk át. &lt;br /&gt;
:Itt több vlan-ra van a példa de értelemszerűen, ha csak egy vlan van akkor csak a 10-es VLAN-t kell csak átírni a többit lehet törölni. Azért érdemes így csinálni még akkor is ha csak egy VLAN-unk van, mert bármikor később a több VLAN kezelése hasznos lehet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto bond0&lt;br /&gt;
iface bond0 inet manual&lt;br /&gt;
         up ifconfig bond0 0.0.0.0 up&lt;br /&gt;
        slaves eth1 eth0&lt;br /&gt;
auto vlan10&lt;br /&gt;
iface vlan10 inet static&lt;br /&gt;
        address 10.10.10.12&lt;br /&gt;
        netmask 255.255.0.0&lt;br /&gt;
        network 10.10.0.0&lt;br /&gt;
        broadcast 10.10.255.255&lt;br /&gt;
        vlan-raw-device bond0&lt;br /&gt;
        gateway 10.10.0.1&lt;br /&gt;
        # dns-* options are implemented by the resolvconf package, if installed&lt;br /&gt;
        dns-search voip.niif.hu&lt;br /&gt;
        dns-nameservers 10.10.0.2&lt;br /&gt;
auto vlan20&lt;br /&gt;
iface vlan20 inet static&lt;br /&gt;
        address 10.20.10.12&lt;br /&gt;
        netmask 255.255.0.0&lt;br /&gt;
        network 10.20.0.0&lt;br /&gt;
        broadcast 10.20.255.255&lt;br /&gt;
        vlan-raw-device bond0&lt;br /&gt;
auto vlan30&lt;br /&gt;
iface vlan30 inet static&lt;br /&gt;
        address 10.30.10.12&lt;br /&gt;
        netmask 255.255.0.0&lt;br /&gt;
        network 10.30.0.0&lt;br /&gt;
        broadcast 10.30.255.255&lt;br /&gt;
        vlan-raw-device bond0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Ha a Másik oldal cisco eszköz akkor egy lehetséges minta konfiguráció.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface GigabitEthernet1/2&lt;br /&gt;
 description eht0&lt;br /&gt;
 switchport&lt;br /&gt;
 switchport trunk encapsulation dot1q&lt;br /&gt;
 switchport trunk allowed vlan 10,20,30&lt;br /&gt;
 switchport mode trunk&lt;br /&gt;
 no ip address&lt;br /&gt;
 no cdp enable&lt;br /&gt;
 spanning-tree portfast trunk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{ambox | text =Érdemes a switchek között Rapid Spanning Tree-t használni, hogy a konvergenciát lecsökkentsük. Érdemes odafigyelni hogy el ne felejtsük bekapcsolni a &amp;quot;portfast&amp;quot;-et! A két hálózati kártyát két független switch-be illik kötni. A két swich-ben legyen egységes a konfiguráció. Végül ne legyünk restek az egészet letesztelni. }}&lt;br /&gt;
&lt;br /&gt;
;Több ip cím felhúzása egy interface-re:&lt;br /&gt;
Több ip címre STUN protokoll miatt mindenképp szükségünk lesz. Az STUN-hoz 2 darab ipv4 cím szükséges!&lt;br /&gt;
Ha ezentúl külön ip címre akarjuk rakni a szolgáltatást akkor ezzel is számolnunk kell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 19.111.158.110&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        broadcast 19.111.158.255&lt;br /&gt;
        gateway 19.111.158.1&lt;br /&gt;
        post-up for last in `seq 111 114`; do ip addr add 19.111.158.$last/32 dev $IFACE; done || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ha már van alap OS-ünk redundáns tápunk/merevlemez/hálózatunk és ha mindezt le is teszteltük, akkor bele is kezdhetünk az érdemi telepítésekbe.&lt;br /&gt;
&lt;br /&gt;
==== Ajánlott csomagok telepítése ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude update&lt;br /&gt;
aptitude upgrade&lt;br /&gt;
aptitude install atftpd dhcp3-server mysql-server mysql-client ntp&lt;br /&gt;
aptitude install asterisk asterisk-config asterisk-mp3 asterisk-sounds-extra asterisk-sounds-main asterisk-mysql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===== dahdi dahdi_dummy =====&lt;br /&gt;
A dahdi_dummy-ra az időzítésekhez lehet szükség, bár vannak 1.6.x asteriskben több mindent tud időzítőként használni. Timer source-ra főleg a MeetMe alkalmazásnak és az IAX protokolnak van szüksége.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install dahdi-source&lt;br /&gt;
m-a a-i dahdi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== További csomagok ====&lt;br /&gt;
;Természetesen még ízlés szerint telpíthető &lt;br /&gt;
:monitorozáshoz: nagios-nrpe-server,munin-node,munin-plugins-extra &lt;br /&gt;
:mentéshez: bacula-fd ajánlott&lt;br /&gt;
&lt;br /&gt;
==== NTP beállítása ====&lt;br /&gt;
Ezt a sort a /etc/ntp.conf-ban&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#server ntp.your-provider.example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
cseréljük le kedvenc lokális ntp szerverünkre. pl.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server 172.20.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MySQL root jelszó beállítása ====&lt;br /&gt;
mysql root jelszó megváltoztatása&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 mysqladmin -u root -p password titok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A kényelem miatt, hogy ne kelljen begépelnünk a a jelszót:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /root/.my.cnf&lt;br /&gt;
[client]&lt;br /&gt;
user=root&lt;br /&gt;
password=titok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hálózati kialakítás / konfiguráció==&lt;br /&gt;
REINVITE vagy No REINVITE ez itt a kérdés?&lt;br /&gt;
Mindkettőnek megvannak az előnyei és hátrányai.&lt;br /&gt;
&lt;br /&gt;
Én a konfigurációkban mindenütt a 172.20.0.0/16 tartományt használom, de mindenkit bátorítanék aki csak megteheti, hogy használjon nyilvános címeket. Szűréssel könnyen csökkenthető a támadási felület és a media közvetlenül tud folyni. Azért is hogy maga a media reinvite esetén ne menjen át szükségszerűen semmilyen NAT-on, vagy RTP media proxy-n ami bottleneck lehet és ha kiesik akkor visz magával a hívást. Persze a másik oldal, hogy a bottleneck csökkenti a támadási felületet. De a támadási felület jól konfigurált router ACL-el is elérhető, sőt ezt javaslom.&lt;br /&gt;
&lt;br /&gt;
A példa itt most egy egyszerű sin topológiát használ.&lt;br /&gt;
&lt;br /&gt;
[[Kép:voip_pleda.png]]&lt;br /&gt;
&lt;br /&gt;
=== DHCP szerver ===&lt;br /&gt;
A DHCP szerver default configjához képest ezeket kell értelem szerűen megváltoztatni illetve a subnet részt hozzáadni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;tartomány.hu&amp;quot;;&lt;br /&gt;
option domain-name-servers 193.6.10.1, 193.225.13.113;&lt;br /&gt;
&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
subnet 172.20.0.0 netmask 255.255.0.0 {&lt;br /&gt;
  range 172.20.0.10 172.20.255.254;&lt;br /&gt;
  option routers 172.20.0.1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TFTP ===&lt;br /&gt;
A tftp a telefonok frissítésére és a konfigurációjuknak a mentésére szolgál.&lt;br /&gt;
Az atftpd TFTP szerver a /var/lib/tftpboot könyvtárból szolgál ki, így minden konfigurációs állományt és firmware-t ebbe a jegyzékbe másolunk majd be.&lt;br /&gt;
Érdemes a NETFILTER/(iptables) szabályokat úgy készíteni, hogy csak a helyi telefonok férhessenek hozzá.&lt;br /&gt;
&lt;br /&gt;
== Asterisk konfiguráció ==&lt;br /&gt;
&lt;br /&gt;
=== Kis Takarítás ===&lt;br /&gt;
Először is mozgassuk el az összes példa konfigurációs file-t a saját '''home''' könyvtárunkba, és utána kezdjük el a minták fokozatos visszamásolgatását és átírását.&lt;br /&gt;
&lt;br /&gt;
;másoljuk vissza a következő fileokat és a manager.d könyvtárt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
agents.conf  asterisk.conf  extconfig.conf   features.conf  iax.conf	  modules.conf	    rtp.conf	     udptl.conf&lt;br /&gt;
alsa.conf    cdr.conf	    extensions.ael   followme.conf  manager.conf  musiconhold.conf  sip.conf	     users.conf&lt;br /&gt;
amd.conf     enum.conf	    extensions.conf  http.conf	    manager.d	  res_snmp.conf     sip_notify.conf  voicemail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/share/doc/asterisk-mysql/examples/cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf&lt;br /&gt;
cp /usr/share/doc/asterisk-mysql/examples/res_mysql.conf.sample /etc/asterisk/res_mysql.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== modules.conf ===&lt;br /&gt;
Ezután egy kis nyesegetéssel ilyen csinos formára hozzuk a modules.conf-ot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
; Asterisk configuration file&lt;br /&gt;
;&lt;br /&gt;
; Module Loader configuration file&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
[modules]&lt;br /&gt;
autoload=yes&lt;br /&gt;
&lt;br /&gt;
;load&lt;br /&gt;
load =&amp;gt; res_musiconhold.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;noload&lt;br /&gt;
&lt;br /&gt;
;chan&lt;br /&gt;
noload =&amp;gt; chan_alsa.so&lt;br /&gt;
noload =&amp;gt; chan_oss.so&lt;br /&gt;
noload =&amp;gt; chan_capi.so&lt;br /&gt;
noload =&amp;gt; chan_skinny.so&lt;br /&gt;
noload =&amp;gt; chan_zap.so&lt;br /&gt;
noload =&amp;gt; chan_mgcp.so&lt;br /&gt;
noload =&amp;gt; chan_vpb.so&lt;br /&gt;
noload =&amp;gt; chan_phone.so&lt;br /&gt;
noload =&amp;gt; chan_gtalk.so&lt;br /&gt;
noload =&amp;gt; chan_modem.so&lt;br /&gt;
noload =&amp;gt; chan_modem_aopen.so&lt;br /&gt;
noload =&amp;gt; chan_modem_bestdata.so&lt;br /&gt;
noload =&amp;gt; chan_modem_i4l.so&lt;br /&gt;
;res&lt;br /&gt;
noload =&amp;gt; res_jabber.so&lt;br /&gt;
noload =&amp;gt; res_odbc.so&lt;br /&gt;
noload =&amp;gt; res_smdi.so&lt;br /&gt;
noload =&amp;gt; res_config_odbc.so&lt;br /&gt;
noload =&amp;gt; res_config_pgsql.so&lt;br /&gt;
;func&lt;br /&gt;
noload =&amp;gt; func_odbc.so&lt;br /&gt;
;pbx&lt;br /&gt;
noload =&amp;gt; pbx_dundi.so&lt;br /&gt;
noload =&amp;gt; pbx_gtkconsole.so&lt;br /&gt;
noload =&amp;gt; pbx_kdeconsole.so&lt;br /&gt;
;;cdr&lt;br /&gt;
noload =&amp;gt; cdr_sqlite.so&lt;br /&gt;
noload =&amp;gt; cdr_custom.so&lt;br /&gt;
noload =&amp;gt; cdr_manager.so &lt;br /&gt;
noload =&amp;gt; cdr_pgsql.so&lt;br /&gt;
;app&lt;br /&gt;
noload =&amp;gt; app_festival.so&lt;br /&gt;
noload =&amp;gt; app_zapras.so&lt;br /&gt;
noload =&amp;gt; app_zapbarge.so&lt;br /&gt;
noload =&amp;gt; app_zapscan.so&lt;br /&gt;
noload =&amp;gt; app_talkdetect.so&lt;br /&gt;
noload =&amp;gt; app_alarmreceiver.so&lt;br /&gt;
noload =&amp;gt; app_image.so &lt;br /&gt;
noload =&amp;gt; app_directory_odbc.so&lt;br /&gt;
noload =&amp;gt; app_voicemail_odbc.so&lt;br /&gt;
noload =&amp;gt; app_voicemail_imap.so&lt;br /&gt;
noload =&amp;gt; app_intercom.so&lt;br /&gt;
; Module names listed in &amp;quot;global&amp;quot; section will have symbols globally&lt;br /&gt;
; exported to modules loaded after them.&lt;br /&gt;
;&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TODO}}&lt;br /&gt;
&lt;br /&gt;
=== Indication ===&lt;br /&gt;
;indication.conf&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
[general]&lt;br /&gt;
country=hu&lt;br /&gt;
&lt;br /&gt;
[hu]&lt;br /&gt;
description = Hungary&lt;br /&gt;
ringcadance = 1000,4000&lt;br /&gt;
dial = 425&lt;br /&gt;
busy = 425/500,0/500&lt;br /&gt;
;ring = 440+480/2000,0/4000 ; is what I heard on an ISDN line... looks like NA ring.&lt;br /&gt;
ring = 440/1000,0/4000 ; is what I heard via an analogue GSM adaptor...&lt;br /&gt;
congestion = 425/300,0/300&lt;br /&gt;
callwaiting = 425/40,0/1960&lt;br /&gt;
; Dialrecall not used in Hungary, use standard (using UK standard)&lt;br /&gt;
dialrecall = 350+440&lt;br /&gt;
; Record tone is not used in Hungary, use busy tone&lt;br /&gt;
record = 425/250,0/250&lt;br /&gt;
info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Forrás: http://www.voip-info.org/wiki/view/Asterisk+indications+Hungary&lt;br /&gt;
&lt;br /&gt;
== Teszt eszközök ==&lt;br /&gt;
aptitude install sip-tester sipsak sofia-sip-bin&lt;br /&gt;
&lt;br /&gt;
;SIPP&lt;br /&gt;
xml alapú config sip teszt eseteket lehet vele készíteni és tesztelni&lt;br /&gt;
&lt;br /&gt;
;sipsak&lt;br /&gt;
egyszerű sip teszt tool hívás tesztre, options üzenet küldésére&lt;br /&gt;
&lt;br /&gt;
;sofia sip&lt;br /&gt;
NOKIA sip stack LGPL &lt;br /&gt;
pl. dns feloldást lehet tesztelni vele&lt;br /&gt;
/usr/bin/addrinfo&lt;br /&gt;
/usr/bin/localinfo&lt;br /&gt;
/usr/bin/sip-date&lt;br /&gt;
/usr/bin/sip-dig&lt;br /&gt;
/usr/bin/sip-options&lt;br /&gt;
/usr/bin/stunc&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=SIP_WS&amp;diff=2420</id>
		<title>SIP WS</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=SIP_WS&amp;diff=2420"/>
				<updated>2013-02-25T14:42:41Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Sip Workshop =&lt;br /&gt;
== Tervezett program ==&lt;br /&gt;
   &lt;br /&gt;
# Nap&lt;br /&gt;
#* 10:00 - 12:00 Érkezés, bemutatkozás, azonosítók, eszközök&lt;br /&gt;
#* 12:00 - 13:00 Ebéd szünet&lt;br /&gt;
#* 13:00 - 14:30 SIP elmélet&lt;br /&gt;
#* 14:30 - 15:00 Kávé Szünet&lt;br /&gt;
#* 15:00 - 17:00 SIP elmélet&lt;br /&gt;
# Nap&lt;br /&gt;
#* 09:00 - 10:45 SIP Call Flow-k&lt;br /&gt;
#* 10:45 - 11:00 Kávészünet&lt;br /&gt;
#* 11:00 - 12:00 OpenSIPS elmélet&lt;br /&gt;
#* 12:00 - 13:00 Ebéd&lt;br /&gt;
#* 13:00 - 14:30 OpenSIPS konfigurációs file-ok&lt;br /&gt;
#* 14:30 - 15:00 Kávészünet&lt;br /&gt;
#* 15:00 - 17:00 OpenSIPS Register, Invite Gyakorlat&lt;br /&gt;
# Nap&lt;br /&gt;
#* 09:00 - 10:45 Asterisk elmélet&lt;br /&gt;
#* 10:45 - 11:00 Kávészünet&lt;br /&gt;
#* 11:00 - 12:00 Asterisk konfigurációs file-ok&lt;br /&gt;
#* 12:00 - 13:00 Ebéd&lt;br /&gt;
#* 13:00 - 14:30 Asterisk gyakorlat (IVR)&lt;br /&gt;
#* 14:30 - 15:00 Kávészünet&lt;br /&gt;
#* 15:00 - 17:00 Asterisk Gyakorlat&lt;br /&gt;
# Nap&lt;br /&gt;
#* 09:00 - 10:45 Azonosító gazdálkodás, accounting, QoS, HA&lt;br /&gt;
#* 10:45 - 11:00 Kávészünet&lt;br /&gt;
#* 11:00 - 12:00 Minden ami kimaradt, apróságok, stb.&lt;br /&gt;
#* 12:00 - 13:00 Ebéd&lt;br /&gt;
#* 13:00 - 15:00 Kérdések&lt;br /&gt;
&lt;br /&gt;
== Slideok ==&lt;br /&gt;
* Pre-Agenda [[Média:agenda.odp|agenda.odp]] [[Média:agenda.pdf|agenda.pdf]]&lt;br /&gt;
* [[Média:id.odp|id.odp]] [[Média:id.pdf|id.pdf]]&lt;br /&gt;
* [[Média:sip.odp|sip.odp]] [[Média:sip.pdf|sip.pdf]]&lt;br /&gt;
* [[Média:opensips.odp|opensips.odp]] [[Média:opensips.pdf|opensips.pdf]]&lt;br /&gt;
* [[Média:astersik.odp|asterisk.odp]] [[Média:astersik.pdf|asterisk.pdf]] &lt;br /&gt;
* [[Média:lastnotleast.odp|lastnotleast.odp]] [[Média:lastnotleast.pdf|lastnotleast.pdf]]&lt;br /&gt;
Bonus (Erről nem lesz szó időhiányában):&lt;br /&gt;
*  [[Média:dial-peer.odp|dial-peer.odp]] [[Média:dial-peer.pdf|dial-peer.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Hands-On ==&lt;br /&gt;
=== Berendezések ===&lt;br /&gt;
* Cisco/Linksys SPA504G&lt;br /&gt;
* Cisco/Linksys SPA8000&lt;br /&gt;
* FIT-PC2&lt;br /&gt;
&lt;br /&gt;
=== Hálózat ===&lt;br /&gt;
* WS-C3550-48-SMI 250 denver-eugene&lt;br /&gt;
* WS-C3550-24-SMI 251 chicago&lt;br /&gt;
* WS-C2960-24TC-L 252 biloxi&lt;br /&gt;
* WS-C3750G-24TS 253  atlanta&lt;br /&gt;
&lt;br /&gt;
=== Tartományok ===&lt;br /&gt;
* alice@atlanta.test&lt;br /&gt;
* bob@biloxi.test&lt;br /&gt;
* carol@chicago.test&lt;br /&gt;
* dave@denver.test&lt;br /&gt;
* eve@eugene.test&lt;br /&gt;
----&lt;br /&gt;
* a1 110-114 &lt;br /&gt;
* b1 115-119&lt;br /&gt;
* c1 120-124&lt;br /&gt;
* d1 125-129&lt;br /&gt;
* e1 130-134&lt;br /&gt;
&lt;br /&gt;
dhcp 140-180&lt;br /&gt;
&lt;br /&gt;
prefix&lt;br /&gt;
+365012&lt;br /&gt;
&lt;br /&gt;
[[Média:handson.dia|handson.dia]]&lt;br /&gt;
&lt;br /&gt;
[[Kép:handson.png]]&lt;br /&gt;
&lt;br /&gt;
=== mac-ip-exten ===&lt;br /&gt;
* atlanta&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!mac&lt;br /&gt;
!ip&lt;br /&gt;
!exten&lt;br /&gt;
!user&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:cf:5e&lt;br /&gt;
|195.111.158.140&lt;br /&gt;
|3001&lt;br /&gt;
|alice1&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:cf:1b&lt;br /&gt;
|195.111.158.141&lt;br /&gt;
|3002&lt;br /&gt;
|alice2&lt;br /&gt;
|-&lt;br /&gt;
|00:21:29:0d:87:4c&lt;br /&gt;
|195.111.158.142&lt;br /&gt;
|3003&lt;br /&gt;
|alice3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* biloxi&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!mac&lt;br /&gt;
!ip&lt;br /&gt;
!exten&lt;br /&gt;
!user&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:45&lt;br /&gt;
|195.111.158.143&lt;br /&gt;
|4001&lt;br /&gt;
|bob1&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:60&lt;br /&gt;
|195.111.158.144&lt;br /&gt;
|4002&lt;br /&gt;
|bob2&lt;br /&gt;
|-&lt;br /&gt;
|00:21:29:0d:8a:90&lt;br /&gt;
|195.111.158.145&lt;br /&gt;
|4003&lt;br /&gt;
|bob3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*chicago&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!mac&lt;br /&gt;
!ip&lt;br /&gt;
!exten&lt;br /&gt;
!user&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:4f&lt;br /&gt;
|195.111.158.146&lt;br /&gt;
|5001&lt;br /&gt;
|carol1&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:df&lt;br /&gt;
|195.111.158.147&lt;br /&gt;
|5002&lt;br /&gt;
|carol2&lt;br /&gt;
|-&lt;br /&gt;
|00:21:29:0d:89:d0 &lt;br /&gt;
|195.111.158.148&lt;br /&gt;
|5003&lt;br /&gt;
|carol3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* denver&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!mac&lt;br /&gt;
!ip&lt;br /&gt;
!exten&lt;br /&gt;
!user&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:3d &lt;br /&gt;
|195.111.158.149&lt;br /&gt;
|6001&lt;br /&gt;
|dave1&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:59&lt;br /&gt;
|195.111.158.150 &lt;br /&gt;
|6002&lt;br /&gt;
|dave2&lt;br /&gt;
|-&lt;br /&gt;
|00:21:29:0d:87:80&lt;br /&gt;
|195.111.158.151&lt;br /&gt;
|6003&lt;br /&gt;
|dave3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* eugene&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!mac&lt;br /&gt;
!ip&lt;br /&gt;
!exten&lt;br /&gt;
!user&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:ce:5f&lt;br /&gt;
|195.111.158.152&lt;br /&gt;
|7001&lt;br /&gt;
|eve1&lt;br /&gt;
|-&lt;br /&gt;
|00:26:99:ab:cf:4c&lt;br /&gt;
|195.111.158.153&lt;br /&gt;
|7002&lt;br /&gt;
|eve2&lt;br /&gt;
|-&lt;br /&gt;
|00:21:29:0d:87:14&lt;br /&gt;
|195.111.158.154&lt;br /&gt;
|7003&lt;br /&gt;
|eve3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Résztvevők ==&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Sorszám &lt;br /&gt;
!Név&lt;br /&gt;
!Intézmény&lt;br /&gt;
|-&lt;br /&gt;
|1.&lt;br /&gt;
|Hujber Zoltán&lt;br /&gt;
|Nyme GEO (Székesfehérvár)&lt;br /&gt;
|-&lt;br /&gt;
|2.&lt;br /&gt;
|Halász Attila&lt;br /&gt;
|Nyíregyházi Főiskola&lt;br /&gt;
|-&lt;br /&gt;
|3.&lt;br /&gt;
|Szennai István&lt;br /&gt;
|Nyíregyházi Főiskola&lt;br /&gt;
|-&lt;br /&gt;
|4.&lt;br /&gt;
|Klinger Csaba&lt;br /&gt;
|PPKE BTK&lt;br /&gt;
|-&lt;br /&gt;
|5.&lt;br /&gt;
|Csillag Tamás&lt;br /&gt;
|PPKE ITK&lt;br /&gt;
|-&lt;br /&gt;
|6.&lt;br /&gt;
|Kovács Csaba István&lt;br /&gt;
|Dunaújvárosi Főiskola&lt;br /&gt;
|-&lt;br /&gt;
|7.&lt;br /&gt;
|Botka István&lt;br /&gt;
|Dunaújvárosi Főiskola&lt;br /&gt;
|-&lt;br /&gt;
|8.&lt;br /&gt;
|Marton Gábor&lt;br /&gt;
|Pannon Egyetem - Mûszaki Informatika Kar&lt;br /&gt;
|-&lt;br /&gt;
|9.&lt;br /&gt;
|Voczelka Ferenc&lt;br /&gt;
|KFKI RMKI&lt;br /&gt;
|-&lt;br /&gt;
|10.&lt;br /&gt;
|Dombos Kálmán &lt;br /&gt;
|SZTE Számítóköpont&lt;br /&gt;
|-&lt;br /&gt;
|11.&lt;br /&gt;
|Gergely László&lt;br /&gt;
|SZIE Informatikai Központ&lt;br /&gt;
|-&lt;br /&gt;
|12.&lt;br /&gt;
|Gyarmati Gábor&lt;br /&gt;
|SZIE Informatikai Központ&lt;br /&gt;
|-&lt;br /&gt;
|13.&lt;br /&gt;
|Pataki György&lt;br /&gt;
|AVKF&lt;br /&gt;
|-&lt;br /&gt;
|14.&lt;br /&gt;
|Szalka János&lt;br /&gt;
|MTA Atomki &lt;br /&gt;
|-&lt;br /&gt;
|15.&lt;br /&gt;
|Szarvas Tamás&lt;br /&gt;
|Budapesti Corvinus Egyetem&lt;br /&gt;
|-&lt;br /&gt;
|16.&lt;br /&gt;
|Simon Imre&lt;br /&gt;
|BME&lt;br /&gt;
|-&lt;br /&gt;
|17.&lt;br /&gt;
|Czirok Ferenc&lt;br /&gt;
|KFKI RMKI&lt;br /&gt;
|-&lt;br /&gt;
|18.&lt;br /&gt;
|Kovács László&lt;br /&gt;
|KFKI RMKI&lt;br /&gt;
|-&lt;br /&gt;
|19.&lt;br /&gt;
|Pásztor György&lt;br /&gt;
|SZTE Egyetemi Könyvtár&lt;br /&gt;
|-&lt;br /&gt;
|20.&lt;br /&gt;
|Csató Péter&lt;br /&gt;
|Pannon Egyetem&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Hu-faq-vcr&amp;diff=2419</id>
		<title>Hu-faq-vcr</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Hu-faq-vcr&amp;diff=2419"/>
				<updated>2013-02-25T14:41:52Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hogyan csatlakoztatható felvevő/lejátszó egység (VHS videomagnó, DVD lejatszo, PC + capture kártya) a Polycom ViewStation FX ill. a Polycom VSX 7000 eszközhöz? ==&lt;br /&gt;
&lt;br /&gt;
Mindkét eszköz képes külső video- ill. az ehhez csatlakozó hangjelet fogadni bármely video- és audiokimenettel rendelkező berendezéstől, tehát a lehetőségek nem merülnek ki a felsorolt három eszközben. Kérjük ellenörizze az egyes eszközök felhasználói könyvében, hogy mi a csatlakoztatás pontos módja, a szükséges kábeleket megtalálja az eszközök mellé adott kábel-készletben (3-as RCA csatlakozó).&lt;br /&gt;
&lt;br /&gt;
A Polycom ViewStation eszköz rendelkezik szeparált videofelvevő kimenettel is (3-as RCA kimenet), a menüben állítható, hogy milyen képet adjon ki az eszköz ezen a kimeneten:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 Admin Setup -&amp;gt; Video/Cameras -&amp;gt; VCR menü&lt;br /&gt;
 VCR Record Source: Auto / Near (közeli kép) / Far (távoli végpont kép)&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Polycom VSX 7000 eszköz esetében valamelyik általános video kimenet (pl. TV csatlakoztatása RCA-val, a mellette lévő, ezzel megegyező funkcionalitású S-Video a videofelvevőbe csatlakozik).&lt;br /&gt;
&lt;br /&gt;
A Polycom ViewStation FX készülék esetében alapállásban (főkamera képe látható) ill. videokonferencia közben a Near gomb segítségével választhatunk a videobemenetek közül. A Polycom VSX 7000 eszköznél a bemenetek közötti választásra a Camera nyomógomb szolgál.&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	<entry>
		<id>https://wiki.niif.hu/index.php?title=Hu-faq-vceps&amp;diff=2418</id>
		<title>Hu-faq-vceps</title>
		<link rel="alternate" type="text/html" href="https://wiki.niif.hu/index.php?title=Hu-faq-vceps&amp;diff=2418"/>
				<updated>2013-02-25T14:41:46Z</updated>
		
		<summary type="html">&lt;p&gt;Sitya(AT)niif.hu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hol találok információt külföldi felsőoktatási/akadémiai videokonferencia rendszerek elhelyezkedéséről? ==&lt;br /&gt;
&lt;br /&gt;
Jelenleg az egyetlen ismert elektronikus keresési a GEANT educonf szolgáltatás, amely [http://educonf.geant.net itt] érhető el. &lt;br /&gt;
&lt;br /&gt;
Lényeges, hogy a távoli berendezés H.323 kompatibilis legyen. Nem árt az éles konferencia előtt egy tesztet elvégezni, hogy minden gyorsan és rendben menjen élesben.&lt;br /&gt;
&lt;br /&gt;
[[Category: VVC]]&lt;/div&gt;</summary>
		<author><name>Sitya(AT)niif.hu</name></author>	</entry>

	</feed>