„Shib2IdpAuth” változatai közötti eltérés

Innen: KIFÜ Wiki
(Új oldal, tartalma: „== Autentikáció nativan, Shib2Idp-ből == === LDAP-alapon === === Kerberos alapon === == Autentikáció konténer által == === MySQL Autentikáció Apache-on keresz...”)
 
(LDAP-alapon)
2. sor: 2. sor:
  
 
=== LDAP-alapon ===
 
=== LDAP-alapon ===
 +
Szerkesszük a ${SHIB_HOME}/conf/login.config -ot:
 +
 +
ShibUserPassAuth {
 +
  edu.vt.middleware.ldap.jaas.LdapLoginModule required
 +
      host="ldap.example.com"
 +
      base="ou=people,dc=example,dc=com"
 +
      ssl="false"
 +
      serviceUser="userid=example-system,ou=systems,dc=example,dc=com"
 +
      serviceCredential="password"
 +
      userField="uid";
 +
}
 +
 +
A serviceUser és a serviceCredential kihagyható, ekkor anonymous bind történik (azonban ilyen esetben a helytelen név / jelszó megadása LDAP Exception-t okoz és nem a jól értelmezhető hibás név / jelszó üzenetet adja a felhasználónak)
 +
 +
Ezután be kell állítani, hogy ezt a bekonfigurált autentikációt használja a Shibboleth (${SHIB_HOME}/conf/handlers.xml)
 +
 +
<LoginHandler xsi:type="UsernamePassword"
 +
                  authenticationDuration="240"
 +
                  jaasConfigurationLocation="file://${SHIB_HOME}/conf/login.config">
 +
  <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod>
 +
</LoginHandler>
 +
<!-- SSO-hoz kell hogy az előző session-t át tudja venni -->
 +
<LoginHandler xsi:type="PreviousSession">
 +
        <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession</AuthenticationMethod>
 +
</LoginHandler>
 +
 +
Az authenticationDuration paraméter elhagyása esetén az IdP 30 perc érvényességgel állítja ki a munkamenetet (<AuthnStatement SessionNotOnOrAfter="...">), tehát akár aktív tevékenység esetén is 30 perc múlva lejár a felhasználó session-je. Ezt érdemes tehát átállítani magasabb értékre.
 +
 +
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!
  
 
=== Kerberos alapon ===
 
=== Kerberos alapon ===

A lap 2008. október 13., 11:35-kori változata

Autentikáció nativan, Shib2Idp-ből

LDAP-alapon

Szerkesszük a ${SHIB_HOME}/conf/login.config -ot:

ShibUserPassAuth {
  edu.vt.middleware.ldap.jaas.LdapLoginModule required
     host="ldap.example.com"
     base="ou=people,dc=example,dc=com"
     ssl="false"
     serviceUser="userid=example-system,ou=systems,dc=example,dc=com"
     serviceCredential="password"
     userField="uid";
}

A serviceUser és a serviceCredential kihagyható, ekkor anonymous bind történik (azonban ilyen esetben a helytelen név / jelszó megadása LDAP Exception-t okoz és nem a jól értelmezhető hibás név / jelszó üzenetet adja a felhasználónak)

Ezután be kell állítani, hogy ezt a bekonfigurált autentikációt használja a Shibboleth (${SHIB_HOME}/conf/handlers.xml)

<LoginHandler xsi:type="UsernamePassword" 
                 authenticationDuration="240"
                 jaasConfigurationLocation="file://${SHIB_HOME}/conf/login.config">
 <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod>
</LoginHandler>
<LoginHandler xsi:type="PreviousSession">
       <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession</AuthenticationMethod>
</LoginHandler>

Az authenticationDuration paraméter elhagyása esetén az IdP 30 perc érvényességgel állítja ki a munkamenetet (<AuthnStatement SessionNotOnOrAfter="...">), tehát akár aktív tevékenység esetén is 30 perc múlva lejár a felhasználó session-je. Ezt érdemes tehát átállítani magasabb értékre.

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!

Kerberos alapon

Autentikáció konténer által

MySQL Autentikáció Apache-on keresztül

Amennyiben MySQL alapú autentikációra van szükség, akkor az Idp2 szükségszerűen kiadja a feladatot, lévén nem tud MySQL-ből autentikálni (a fejlesztők a 2.2-es változatra ígérik). Jellemzően ilyenkor vagy az Apache, vagy a Tomcat végzi el ezt a feladatot. Az alábbiakban leírt Apache beállítások elsőre nyakatekertnek tűnhetnek, de az Apache 2.2-es sorozatában előforduló - ez idáig érdemben nem javított - bug miatt ez a megoldás működik csak.

Telepíteni kell a MySQL autentikációs Apache modult:

apt-get install libapache2-mod-auth-mysql

Engedélyezni kell a modul használatát

a2enmod auth_mysql

Az Apache adott hosthoz tartozó configjában meg kell adni:

Auth_MySQL_Info <host> <DB_user> <DB_password>

Ugyanitt meg kell adni az adott Location-re vonatkozó beállításokat - itt látja majd a webszerver, hogy ha az adott url-re érkezett kérés, akkor MySQL-ből kell autentikálnia az itt megadott paraméterek szerint

<Location /whereTo/Authn/RemoteUser>
 AuthType Basic
 AuthName "You can login here"
 AuthUserFile /dev/null
 AuthBasicAuthoritative Off
 
 AuthMySQL on
 AuthMySQL_Authoritative off
 AuthMySQL_DB VHOtools
 AuthMySQL_Password_Table vho_Users
 AuthMySQL_Password_Field password
 AuthMySQL_Encryption_Types PHP_MD5
 require valid-user
</Location>

MySQL Autentikáció TomCat-en keresztül

LDAP Autentikáció Apache-on keresztül