Módosítások

HREF attribútum specifikáció

6 992 bájt hozzáadva, 2016. február 29., 11:47
schacYearOfBirth
== A föderációs attribútum specifikáció célja==A föderációban az IdP SAML attribútumokban ad meg adatokat a felhasználóról az SP-nek. Ahhoz, hogy a résztvevő felek közötti az adatokban hordozott információ átadást megkönnyítse. Az alábbiakon túl átadása pontos legyen, fontos, hogy a felek egymás között tetszőlegesen meghatározhatnak használt attribútumokat és ezeket szabadon használhatják. Az attribútum specifikáció segítségével azonban nincs szükség minden résztvevő között külön megállapodásraa két fél ugyanúgy értelmezze.
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:
* ''person'', ''organizationalPerson'' (X.521)
* ''inetOrgPerson'' (RFC2798)
* ''eduPerson'' (http://middleware.internet2.edu/eduperson/)
* ''SCHAC'' (http://www.terena.org/activities/tf-emc2/schacreleases.html)
* ''niifPerson'', ''niifEduPerson'' ([[NIIFSchema]])
 
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.
 
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.
== Attribútumok használata ==
=== Meghatározások ===
* '''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
* '''Attribútum kiadás''': az attribútum átadása néhány (vagy a föderációban található összes) SP-nek.
* '''KÖTELEZŐ''', '''AJÁNLOTT''', '''OPCIONÁLIS''' fogalmak meghatározását lásd [[FedReqDef | a szabályozott szóhasználat leírásánál]]
=== Implementációs szintek ===
* '''Kötelező''': az attribútumot kötelező az IdP-nek '''KÖTELEZŐ''' megvalósítania, azonban szabadon dönthet arról, hogy kiadja-eimplementálni. (Nem kötelező kiadnia. )* '''Ajánlott''': az attribútumot ajánlott az IdP-nek '''AJÁNLOTT''' megvalósítaniaimplementálni, de ez néhány intézménynél lehetetlen vagy nehézségekbe ütközhet* '''Opcionális''': az attribútumot az IdP-nek '''OPCIONÁLIS''' megvalósítaniaa saját döntése szerint megvalósíthatja.
:: 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.
 
Az itt felsoroltakon túl az IdP-k tetszőleges attribútumot megvalósíthatnak és kiadhatnak bilaterális megállapodás alapján.
=== SP attribútum-igények ===
:: pl. <code>eduPersonPrincipalName</code> olyan alkalmazásokhoz, amelyek nincsenek felkészítve átlátszatlan (opaque) azonosítók kezelésére
* '''Ajánlott''': az alkalmazás működését megkönnyíti az attribútum
:: pl. a <code>cn</code> attribútum átadásakor az alkalmazás nem kéri be a felhasználó teljes nevétregisztrációkor
=== Hibakezelés ===
|-
|eduPersonEntitlement
|-
|eduPersonOrgUnitDN
|-
|}
* '''statikusak''': a felhasználó létrehozásakor megadott adattal megegyezők
* '''számítottak''': a felhasználó valamelyik (vagy több) attribútumából algoritmikusan - általában hash eljárással - generáltak
* '''tároltak''': ezek általában olyan számított azonosítók, amelyet az IdP egy adatbázisban elsődleges kulcsként is használ, azaz ** a számításkor felhasznált felhasználói attribútumok változása esetén is állandó marad** az ütközés érzékelhetőegyediségük biztosított
Az azonosítók az alábbi tulajdonságokkal rendelkezhetnek:
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.
 
====NameID formátumok - melyiket válasszam?====
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.
 
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.
 
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ó?'''
 
1. Ha nem, akkor egyértelmű a választás: tranziens formátumot kell használni.
 
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
: 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.
: 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).
: Az alkalmazáshoz mindkét esetben ugyanaz az érték jut el, mint felhasználói azonosító.
 
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.
 
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.
 
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...
{{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.}}
|URI=urn:mace:dir:attribute-def:eduPersonTargetedID
|OID=1.3.6.1.4.1.5923.1.1.1.10
|description='''Nem átlátszó''', '''célzott ''' azonosító, amely '''nem osztható ki újra'''|semantics=Lásd: https://spaceswiki.internet2shibboleth.edunet/confluence/display/SHIB2/NativeSPTargetedID , ill. a fenti megjegyzést az implementációs szinttel kapcsolatban.
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 (<code>NameQualifier</code>) é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.
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.  Az eduPersonTargetedID '''nem osztható ki újra'''.
|implementation=mandatory
|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.
|example=
Az IdP ilyen formában adja ki az azonosítót:
|URI=urn:mace:dir:attribute-def:eduPersonPrincipalName
|OID=1.3.6.1.4.1.5923.1.1.1.6
|description='''Állandó ''', '''nem célzott''', '''nem újra kiosztható''' egyedi azonosító
|implementation=mandatory
|assurer=institution
|semantics=
Formátum: <egyedi_lokális_azonosító>@<scope>
Ahol
* '''<egyedi_lokális_azonosító>''': 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ó
* '''<scope>''': helyi biztonsági tartomány. A végződése kötelezően egy DNS domain, melyet amely az IdP-t üzemeltető intézmény [[Scope|scope-ként]] használhattulajdonában áll.
'''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.
 
Az eduPersonPrincipalName a föderációban '''nem osztható ki újra'''.
 
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.
|example=gipsz.jakab@example.org
}}
 
==== niifPersonOrgID ====
{{AttributeDef|name=niifPersonOrgID
|OID=2.16.840.1.113730.3.1.241
|implementation=recommended
|description=A felhasználó megjelenítendő neve|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.
|example=Gipsz Jakab Aladár
}}
 
==== mail ====
{{AttributeDef|name=mail
|numOfValues=multi
|description=A felhasználó email címe
|values=Létező e-mail cím
|syntax=Lásd: [http://www.faqs.org/rfcs/rfc2822.html RFC 2822]
|example=gipsz.jakab@example.org
|semantics=A felhasználó értesítési e-mail címe. Jelenleg Az így átadott email címről az intézményi gyakorlat kettősintézmény biztosítja, hogy* azt az intézmény biztosítja a felhasználó részére (pl neptunkod@intemzeny. Bizonyos intézmények megkövetelikhu)* vagy az intézmény a cím rögzítésekor ellenőrizte, hogy az a felhasználó elérhető legyen tulajdonában van (pl egymegerősítő levél kiküldésével). Az attribútumban ellenőrizetlen, az intézmény felhasználó által biztosított e-mail címen; míg más intézmények külső szolgáltató által üzemeltetett e-mail megadott email címet is elfogadnak, amelyet a felhasználó maga állíthat beátadni tilos.
}}
 
==== preferredLanguage ====
{{AttributeDef|name=preferredLanguage
|values=RFC 2068 Language Tags szekcióban meghatározott formátumú nyelvkódok
|example=hu
|description=Előnyben részesített nyelv|semantics=A felhasználó által elsődlegesen használni kívánt, általa előnyben részesített nyelv
}}
==== schacYearOfBirth ====
{{AttributeDef|name=schacYearOfBirth
|OID=1.3.6.1.4.1.146625178.1151.1210.12.363
|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)
|implementation=optional
|OID=2.5.4.3
|description=A felhasználó teljes neve
|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.
 
'''Helyette a [[#displayName|displayName]] használata javasolt.'''
|implementation=optional
|numOfValues=multi|example=* Gipsz Jakab* Kovács Áron;Kovacs Aron;Aron Kovacs
}}
** ''faculty'': oktatási tevékenységet végez az intézményben
** ''staff'': nem oktatási tevékenységet végző alkalmazott (pl. a rendszergazda és a kertész is)
** ''employee'': alkalmazott(használata intézmények között nem javasolt)** ''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.
** ''affiliate'': az intézmény azonosítja őket, de nem rendelkeznek általános jogosultságokkal
** ''alum'': öregdiák
** ''library-walk-in'': könyvtári tag
{{NOTE | lehetséges, hogy a föderációban használható értékek körét a későbbiekben szűkíteni fogjuk}}
* '''<scope>''': helyi biztonsági tartomány. A végződése kötelezően egy DNS domain, melyet amely az IdP-t üzemeltető intézmény [[Scope|scope-ként]] használhattulajdonában áll.
Lásd még: http://software.internet2.edu/eduperson/internet2-mace-dir-eduperson-201310.html#eduPersonAffiliation
 Lásd még: http://middleware[[EduPersonAffiliation|Egy lehetséges vizuális ábrázolás]], azonban a halmazok pontos meghatározása az intézmény feladata.internet2.edu/eduperson/docs/internet2-mace-dir-eduperson-200806.html#eduPersonAffiliation
|assurer=inst
|values=A következő értékek egyike: {student,faculty,staff,employee,member,affiliate,alum,library-walk-in}, valamint a [[Scope|scope]]
|example=
* Hallgatók: ''student@example.org;member@example.org''
|URI=urn:mace:dir:attribute-def:schacHomeOrganizationType
|OID=1.3.6.1.4.1.25178.1.2.10
|values=urn:schac:homeOrganizationType:hu:{university,research-institutionnren,library,vho,school,business,other,test}
|implementation=mandatory
|description=Az intézmény jellege
|semantics=
* '''university''': Az Oktatási Minisztérium által elismert felsőoktatási intézmények (egyetemek és főiskolák)
* '''research-institutionnren''': A Magyar Tudományos Akadémia alá tartozó Nemzeti kutatási intézményekés felsőoktatási kutatói hálózat szolgáltatója
* '''library''': Könyvtárak
* '''vho''': Virtuális azonosító szervezet egyének föderációs azonosítása céljára
* '''business''': Ipari vagy kereskedelmi intézmények
* '''other''': Egyéb
* '''test''': Teszt felhasználóról van szó
|numOfValues=single
|assurer=inst
|URI=urn:mace:dir:attribute-def:eduPersonOrgUnitDN
|OID=1.3.6.1.4.1.5923.1.1.1.4
|implementation=recommendedoptional
|description=A felhasználóhoz tartozó szervezeti egység azonosítója
|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.
==== eduPersonPrimaryOrgUnitDN ====
{{AttributeDef|name=eduPersonOrgUnitDNeduPersonPrimaryOrgUnitDN
|URI=urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN
|OID=1.3.6.1.4.1.5923.1.1.1.8
|assurer=inst
|example=ou=AAIT,ou=VIK,ou=Units,o=BME,c=hu
}}
 
==== eduPersonAssurance ====
{{AttributeDef|name=eduPersonAssurance
|URI=urn:mace:dir:attribute-def:eduPersonAssurance
|OID=1.3.6.1.4.1.5923.1.1.1.11
|implementation=optional
}}
|OID=1.3.6.1.4.1.11914.0.1.162
|description=A hallgató főszakja
|semantics=A hallgató főszakja - a [[http://wwwweb.mab.hu/listak2joomla/index.html címen php?option=com_content&view=article&id=87&Itemid=623&lang=hu mab.hu ]] oldalán található lista alapján
|implementation=optional
|numOfValues=multi
|assurer=inst
|example=
* műszaki informatikus mérnök
* elméleti fizikus
}}
|numOfValues=multi
|assurer=inst
|example=Villamosmérnöki és Informatikai Kar
}}
|OID=1.3.6.1.4.1.11914.0.1.161
|description=A hallgató karának DN-je
|semantics=Annak a karnak a DN-je, amelyhez a hallgató tartozik. Ajánlott a kezdőpont alatt található <code>ou=Units</code> alá tenni az egyes karokat(lásd [[#eduPersonOrgUnitDN]])
|implementation=optional
|syntax=DN
|numOfValues=multi
|assurer=inst
|example= ou=VIK,ou=Units,o=BME,c=hu
}}
==== niifEduPersonStudentCategory ====
{{AttributeDef|name=niifEduPersonStudentCategory
|OID=1.3.6.1.4.1.11914.0.1.174
|description=Tanuló/hallgató képzési szintjének meghatározása
|semantics=A hallgató képzési szintjének pontosabb meghatározása (az [[#eduPersonScopedAffiliation|eduPersonScopedAffiliation]] kiegészítése)
* '''bachelor''': bachelor képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)
* '''master''': master képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)
* '''doctor''': doktori képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)
* '''exchange-student''': vendéghallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: student,member)
* '''qualifying-studies''': előkészítős hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: member)
* '''open-university''': nyílt egyetemi képzésben részt vevő hallgató (javasolt [[#eduPersonScopedAffiliation|affiliation]]: affiliate)
[[Kategória: Csonkok]]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!|implementation=optional|syntax=Directory String|numOfValues=multi|assurer=inst}}

Navigációs menü