Módosítások

Shib2IdpAttrib

4 348 bájt hozzáadva, 2010. január 25., 10:44
Kapcsolódások adattárakhoz
Az attribútum feloldást az <code>IDP_HOME/conf</code> könyvtárban található '''<code>attribute-resolver.xml</code>''' névre hallgató fájlban konfigurálhatjuk. A fájl szerkezetét tekintve '''négy részből''' áll.
 == Attributum Attribute-resolver alapbeállítások ==
Ezeket általában nem kell állítgatni, megfelelőek az alapbeállítások
<source lang="xml">
urn:mace:shibboleth:2.0:attribute:encoder classpath:/schema/shibboleth-2.0-attribute-encoder.xsd
urn:mace:shibboleth:2.0:security classpath:/schema/shibboleth-2.0-security.xsd">
 
 
<!-- ... -->
 
</AttributeResolver>
== Attributumok Attribútumok definiálása == Az attribútum-definíciós szakasz igazából egyfajta egységesítése és előkészítése különböző forrásokból kinyerhető és később továbbítható adatoknak. Egy attribútum definiálásakor meg kell adni az alapként szolgáló <code><AttributeDefinition></code> elemet három attribútumával:<source lang="xml"><resolver:AttributeDefinition id="cn" xsi:type="simple:Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"></source>  *'''id''' - az attribútum egyedi neve (nagyon fontos a jó névválasztás :) )*'''xsi:type''' - értéke lehet <code>Simple</code> vagy <code>Scoped</code>, de mivel a második nem szabványos, így törekedni kellene a <code>Simple</code> használatára*'''xmlns''' - alapértelmezett értéke: <code>urn:mace:shibboleth:2.0:resolver:ad</code>  Az <code><AttributeDefinition></code> elemen belül meg kell adni az attribútum függőségét és az attribútum kódolási tulajdonságait   '''Attribútumok függősége''' Egy attribútum függhet bármilyen más, az attribute-resolver.xml fájlban definiált elemtől, legyen az másik <code><AttributeDefinition></code>, vagy <code><DataConnector></code>. Egy attributum több más elemtől is függhet. Az egyetlen attribútuma a forrás elem azonosítója. <code><resolver:Dependency ref="ID_DEPENDENCY1" /></code>   '''Attribútumok kódolási tulajdonságai''' Egy attribútumhoz többféle kódolási mechanizmust megadhatunk, melyek meghatározzák, hogy az attribútum kiadásakor milyen formátum(ok)ban lesz elérhető az aktuális attribútum értéke. Ha nem adunk meg kódolási mechanizmust, alapértelmezetten <code>SAML2String</code> alapon kódol. Egy kódolás megadása az <code><AttributeEncoder></code> elem segítségével történik. A szükséges attribútumok *'''xsi:type''' - értéke a kódolás típusa*'''xmlns''' - alapértelmezett értéke: <code>urn:mace:shibboleth:2.0:resolver:encoder</code>*'''name''' - a megadott típuson belüli azonosító *'''friendlyName''' - :)  ''Példa'' <source lang="xml"><resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="commonName" /> </source>  
<!-- ========================================== -->
<!-- ========================================== -->
<!-- ... -->
 
<!-- ... -->
== Kapcsolódások adattárakhoz ==
Ahhoz, hogy megkaphassuk az egyes attributumokhoz attribútumokhoz tartozó értéket, valamilyen adattárból (adatbázis, címtár) kell őket kinyernünk, hiszen ekkor még csak a sikeres azonosítás után tartunk, és csak a felhasználói nevet tudjuk, amivel az azonosítás megtörtént. '''Fontos''', hogy az egyes kapcsolódások definiálásakor erre a felhasználói névre a '''<code>$requestContext.principalName</code>''' néven hivatkozhatunk, amely kiindulópontként szolgálhat lekérdezéseinkhez. === Kapcsolódás címtárhoz === '''1. Konnektor definiálása''' Új adatbáziskapcsolat létrehozásához definiálnunk kell a konnektort <code><DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"></code> az alábbi attribútumokkal ''Attribútumok, melyeket kötelező megadni''*'''id''' - egyedi azonosító, mellyel az attribútum definicióknál elérhetjük a konnektort*'''ldapURL''' - a címtár elérési útja. Több is megadható vesszőkkel elválasztva, ekkor a megadott sorrend alapján addig próbálkozik, amíg valahol nem tud csatlakozni*'''baseDN''' - a címtárban való kereséshez tartozó BaseDN*'''principal''' - a címtár bind-olására használandó felhasználói név*'''principalCredential''' - a címtár bind-olására használandó felhasználói névhez tartozó jelszó <source lang="xml"><resolver:DataConnector xsi:type="LDAPDirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc" id="UNIQUE_ID" ldapURL="LDAP_URL" baseDN="BASE_DN" principal="PRINCIPAL_NAME" principalCredential="PRINCIPAL_CREDENTIAL">   <!-- Ide kerülnek majd az további konfigurációs beállítások a következő lépések alapján --> </resolver:DataConnector></source>  '''2. Az LDAP lekérdezés definiálása'''  <source lang="xml"><resolver:DataConnector xsi:type="LDAPDirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc" id="UNIQUE_ID" ldapURL="LDAP_URL" baseDN="BASE_DN" principal="PRINCIPAL_NAME" principalCredential="PRINCIPAL_CREDENTIAL">  <FilterTemplate> <![CDATA[ (uid=${requestContext.principalName}) ]]> </FilterTemplate>  <!-- Ide kerülhet a lekérdezési eredmény mezőneveinek és értékeinek felüldefiniálása --> </resolver:DataConnector></source> 
=== Kapcsolódás relációs adatbázisokhoz ===
'''1. Konnektor definiálása'''
Új adatbáziskapcsolat létrehozásához definiálnunk kell a konnektort <code><DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"></code> az alábbi attributumokkalattribútumokkal
''AttributumokAttribútumok, melyeket kötelező megadni''*'''id''' - egyedi azonosító, mellyel az attributum attribútum definicióknál elérhetjük a konnektort
''AttributumokAttribútumok, melyeket opcionálisan megadhatók''
*'''readOnlyConnection''' - logikai érték, mely meghatározza, hogy az adatbázis csak olvasható, vagy esetleg írható is. Alapértelmezés szerint <code>true</code>, azaz csak olvasható
*'''queryUsesStoredProcedure''' - logikai érték, mely meghatározza, hogy az 5. lépésnél bemutatott módon definiált SQL lekérdezések használhatnak-e előre meghatározott eljárásokat. Alapértelmezés szerint nem, azaz <code>false</code>
'''4/a. Idp által natívan vezérelt adatbáziskapcsolatok beállítása'''
Az Idp alkalmazás által vezérelt kapcsolathoz definiálnunk kell egy <code><ApplicationManagedConnection></code> elemet az alábbi (mind kötelezően megadandó) attributumokkalattribútumokkal
*'''jdbcDriver''' - a JDBC meghajtó teljes elérési útvonala
''Opcionális''
Alapértelmezés szerint a lekérdezések eredményét mezőnevenként és a hozzákapcsolódó értékként egy-egy attributumba attribútumba szervezi a konnektor, melyet lehetőségünk van felüldefiniálni, ehhez a <code><Column></code> elemet használhatjuk az alábbi atttributumokkalatttribútumokkal
''Az alábbiak közül minimum egyet kötelező megadni''
*'''attributeID''' - az attributum attribútum azonosítója, melyhez hozzárendeljük az eredményt
*'''type''' - az eredmény típusa. A következők közül választhatunk: BigDecimal, Boolean, Byte, ByteArray, Date, Double, Float, Integer, Long, Object, Short, String, Time, Timestamp, URL
<source lang="xml">
 
<!-- ========================================== -->
<!-- Data Connectors -->
<!-- ========================================== -->
<resolver:DataConnector id="vhoMySQLsurname" xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc">
</source>
 
 
 
<!-- ========================================== -->
<!-- Data Connectors -->
<!-- ========================================== -->
 
<!-- ... -->
== Principal Connectors ==
</source>
ttribútum

Navigációs menü