Módosítások

Shib2IdpAuth

2 170 bájt hozzáadva, 2011. május 5., 12:26
SSO
A FORM-ot az idp.war -ban tudjuk testreszabni (login.jsp). A szállított login.jsp által beállított FORM tag és INPUT tag-ek tartalmát ne módosítsuk!
 
Ha a bejelentkezés nem sikerül jó felhasználónév/jelszó párral sem, a <code>logging.xml</code> szerkesztésével tudjuk megjeleníteni a debug üzeneteket (a <code>edu.vt.middleware.ldap</code> loggert kell átkonfigurálni).
=== Kerberos alapon ===
A Shibboleth 2 IdP képes az autentikálást szabványos JAAS (Java Authentication and Authorization Service) modulokkal elvégezni, ezért lehetőség van relációs adatbázist használó autentikációs modul használatára is. Számos JAAS modul létezik adatbázisos autentikációra is, azonban ezek vagy túl bonyolultak, vagy nem kellően rugalmasak. Az alábbiakban az NIIF által fejlesztett (a [http://free.tagish.net/jaas/doc-1.0.3/index.htmlJAAS/JDBC Tagish/JDBC] kódbázisán alapuló) modul beállítását mutatjuk be:
* JAAS/JDBC modul megfelelő verziójának [http://software.niif.hu/maven2/hu/niif/jaas-jdbc/ letöltése]* jdbcloginmodulejaas-jdbc-VERSION.jar és adatbázis driver jar bemásolása az idp webalkalmazás (idp.war) WEB-INF/lib könyvtárába
** a MySQL Connector/J letölthető a [http://dev.mysql.com/downloads/connector/j/ MySQL oldalról]
** MySQL esetén a mysql-connector-java-{verzio}-bin.jar fájlra van szükségünk
* handler.xml -ben UsernamePassword login handler engedélyezése és RemoteUser login handler tiltása
* login.config ShibUserPassAuth-ban a JDBCLoginModul engedélyezése (a többi JAAS modul legyen kikommentezve!)
* adatbázis kapcsolattal összefüggő beállítások:** "hagyományos" megoldás*** '''dbDriver''': JDBC Driver osztály neve*** '''dbURL, dbUser, dbPassword''': adatbázis elérési paraméterek** JNDI használata esetén*** '''jndiResourceName''': DataSource API-t támogató JNDI név (bővebben lásd: [[Shib2IdpConnectionPool|Connection pool leírás]])* egyéb beállítások
** '''usersPreparedStatement''': egy olyan lekérdezés, ami a tárolt elhashelt jelszót kérdezi le egy felhasználónévhez (a felhasználónév helyén a ? karakter kell álljon, a lekérdezés egy vagy nulla sort kell visszaadjon!)
** '''passwordHashMethod''': a hasheléshez alkalmazott metódus (lásd: a használható metódusakat a [http://java.sun.com/j2se/1.5.0/docs/api/javaguide/security/MessageDigestCryptoSpec.html MessageDigest API#AppA Java Cryptography Architecture dokumentáció]írja le).
A JAAS modul konfigurációja a login.config fájlban:
<source lang="c">
hu.niif.middleware.jaas.JDBCLoginModule required
dbDriver="com.mysql.jdbc.Driver"
dbUser="dbuser"
dbPassword="randomsecret"
usersPreparedStatement="SELECT password FROM vho_Users users where username=?"
passwordHashMethod="MD5";
 === LDAP-ból ellenőrzött X.509 tanúsítvánnyal ===Ezen autentikációs mód a konténer (pl. Apache) által a klienstől elkért klienstanúsítványt veti össze a felhasználó LDAP bejegyzésében tárolt tanúsítványokkal (<code>userCertificate</code>). A modul használatának előfeltételei: * a konténernek támogatnia kell a kliens-tanúsítványokat, azonban a CA ellenőrzés nem követelmény, a felhasználók self-signed tanúsítvánnyal is igénybe vehetik az autentikációs szolgáltatást* az IdP-nek a kérésből el kell érnie a klienstanúsítványt* a tanúsítványban szerepelnie kell a felhasználónévnek (mégpedig az <code>UID</sourcecode>mezőben) A modul dokumentációja a [[ShibIdPX509LdapAuthentication|ezen az oldalon]] érhető el.
== Autentikáció konténer által ==
}}
}}
 
== Single Sign-on ==
=== IdP Session ===
Az IdP-ben a session-nek nincs rögzített lifetime-ja, hanem aktivitásfüggő timeout értéket lehet beállítani. A jelenlegi IdP-ben az IdP session timeout független a fent megadott <code>authenticationDuration</code> értéktől, ezt az <code>internal.xml</code> állományban állíthatjuk be:
<bean id="shibboleth.SessionManager"
class="edu.internet2.middleware.shibboleth.idp.session.impl.SessionManagerImpl"
depends-on="shibboleth.LogbackLogging">
<constructor-arg ref="shibboleth.StorageService" />
<constructor-arg value="<b>28800000</b>" type="long" />
</bean>
A példában a StorageService konstruktorának értéke ''ezredmásodpercben'' értendő.
=== Single Logout ===

Navigációs menü