Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{scrollbar}
Note
titleActivación Activación de Consola de Geronimo

Actualmente la activación activación LDAP desde la consola Geronimo falla con un Error: Unable to initialize LoginModule: null (Error: No es posible inicializar LoginModule: null). Hasta que se arregle dicho error, usa la Herramienta de ActivaciónActivación para activar reinos LDAP.

...

Code Block
xml
xml
borderStylesolid
titleEjemplo XML de Activación Activación LDAP
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
	<environment>
		<moduleId>
			<groupId>groupName</groupId>
			<artifactId>artifactName</artifactId>
			<version>1.0</version>
		</moduleId>
		<dependencies>
			<dependency>
				<groupId>geronimo</groupId>
				<artifactId>j2ee-security</artifactId>
				<version>1.1</version>
				<type>car</type>
			</dependency>
		</dependencies>
	</environment>
	
	<gbean name="ldap-login"
		class="org.apache.geronimo.security.jaas.LoginModuleGBean">
		<attribute name="loginModuleClass">org.apache.geronimo.security.realm.providers.LDAPLoginModule</attribute>
		<attribute name="serverSide">true</attribute>
		<attribute name="options">
			initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory
                        connectionURL=ldap://localhost:1389
                        connectionUsername=uid=admin,ou=system
                        connectionPassword=secret
                        connectionProtocol=
                        authentication=simple
                        userBase=ou=users,ou=system
                        userSearchMatching=uid={0}
                        userSearchSubtree=false
                        roleBase=ou=groups,ou=system
                        roleName=cn
                        roleSearchMatching=(uniqueMember={0})
                        roleSearchSubtree=false
                        userRoleName=
		</attribute>
		<attribute name="loginDomainName">ldap-realm</attribute>
	</gbean>
	
	<gbean name="ldap-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm">
		<attribute name="realmName">ldap-realm</attribute>
		<reference name="LoginModuleConfiguration">
			<name>ldap-login</name>
		</reference>
		<reference name="ServerInfo">
			<name>ServerInfo</name>
		</reference>
		
		<reference name="LoginService">
			<name>JaasLoginService</name>
		</reference>
	</gbean>
	
	<gbean name="ldap-login" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse">
		<attribute name="controlFlag">REQUIRED</attribute>
		<reference name="LoginModule">
			<name>ldap-login</name>
		</reference>
	</gbean>
</module>

Para activar ldap-realm.xml ejecuta al siguiente comando desde el directorio <geronimo_home>/bin:

{{*java -jar deployer.jar --user system --password manager deploy <ubicación<ubicación_ldap>/<nombre_de_archivo>.xml*}}

Una vez activado, deberías deberías ver un mensaje de confirmación confirmación similar al siguiente ejemplo:

No Format
bgColor#000000
borderStylesolid
E:\geronimo\bin>java -jar deployer.jar --user system --password manager deploy e:/ldap-jetty/ldap-realm.xml
Deployed <groupName>/<artifactName>/<version>/car

...

Configuración de LDAPLoginModule

class = org.apache.geronimo.security.realm.providers.LDAPLoginModule

Info

Tip: La clave para trabajar con el módulo módulo LDAP es: CONOCE TU ESQUEMA LDAP.

...

El LDAPLoginModule puede ser configurado para encontrar roles de usuario (membresías membresías de grupo) usando dos métodos métodos distintos:

Encuentra los roles mediante un atributo de pertenencia a grupo que contiene usuarios miembros (por ej. atributo member)

Para usar este métodométodo, se deben establecer las opciones roleName y roleSearchMatching. LDAPLoginModule ejecutará ejecutará la búsqueda búsqueda LDAP mediante el filtro roleSearchMatching para buscar el nombre distinguido del usuario atenticado, dentro del atributo de pertenencia roleName de cada grupo. Para evitar este métodométodo, la opción opción roleName NO DEBE dejarse establecida. Si la opción opción roleName se encuentra establecida y la opción opción roleSearchMatching no se encuentra establecida, LDAPLoginModule intentará intentará ejecutar la búsqueda búsqueda y lanzará lanzará una excepciónexcepción.

Encuentra los roles mediante un atributo de pertenencia a grupo que contenga los grupos a los cuales es miembro el usuario (por ej. un atributo memberOf).

Para usar este método método la opción opción userRoleName debe establecerse con el nombre del atributo de pertenencia a grupo que contenga la lista de membresía membresía del grupo. Para evitar este métodométodo, debería debería no establecerse la opción opción userRoleName.

Opciones LDAPLoginModule

OpciónOpción

DescripciónDescripción

initialContextFactory

Nombre de clase del context factory inicial. Usualmente com.sun.jndi.ldap.LdapCtxFactory.

connectionURL

URL de conexión conexión LDAP, como ldap://localhost:1389 . Nota que el puerto LDAP usual es 389.

connectionUsername

El DN usado por el módulo módulo login para autenticarse al servidor directorio.

connectionPassword

La credencial (password) que se usa por el módulo módulo login para autenticarse al servidor directorio.

connectionProtocol

El protocolo de seguridad a usar. Este valor se determina por el proveedor de servicio. Puede dejarse en blanco. Un ejemplo sería sería SSL.

authentication

El nivel de seguridad a usar. Su valor es una de las siguientes cadenas: "none" (ninguno), "simple", "strong" (fuerte). Si no se especifica esta propiedad, el comportamiento lo determina el proveedor de servicio.

userBase

El DN base para la búsqueda búsqueda de membresía membresía de grupo.

userSearchMatching

La especificación especificación de filtro para el como buscar para atributos de usuario. Filtros RFC 2254 son permitidos. Además Además puedes pasar un parámetro parámetro al filtro de búsqueda búsqueda en lugar de un valor literal. Por ejemplo: ese es una especificación especificación de filtro RFC 2254: (cn=Babs Jensen). Si quieres parametrizar el valor de un tipo de atributo CN, especifica (cn = {0}). Este entero se refiere al número número de parámetroparámetro. El valor de parámetro parámetro es el nombre de usuario. Esta búsqueda búsqueda debe devolver exactamente un objeto.

userSearchSubtree

Define la perspectiva de búsqueda búsqueda para atributos de usuario. Si se establece true (verdadero), la búsqueda búsqueda de directorio es de perspectiva SUBTREE (sub-árbolárbol), si es false (falso), la búsqueda búsqueda de directorio es de perspectiva ONE-LEVEL (un-nivel).

roleBase

DN base para la búsqueda búsqueda de membresía membresía de grupo.

roleName

Atributo LDAP que identifica al nombre de grupo en el resultado proporcionado por la búsqueda búsqueda de membresía membresía de grupo. Nota que una búsqueda búsqueda de membresía membresía de grupo es definida por el parámetro parámetro roleSearchMatching. Usualmente el parámetro parámetro nombre de grupo es cn.

roleSearchMatching

Especificación Especificación de filtro para cómo cómo buscar los roles. Se permiten filtros RFC 2254. AdemásAdemás, puedes pasar parámetros parámetros al filtro de búsqueda búsqueda en lugar del valor literal. Por ejemplo: (uniqueMember = {0}). Este entero se refiere al número número de parámetroparámetro. Este parámetro parámetro es el DN del usuario autenticado. Nota que si la membresía membresía de rol para el usuario es definida en el atributo member-of-like (ver parámetro parámetro userRoleName) puede ser que no necesites buscar membresía membresía de grupo en la búsquedabúsqueda.

roleSearchSubtree

Define la perspectiva de búsqueda búsqueda de directorio para roles. Si es true (verdadero), la búsqueda búsqueda de directorio es de perspectiva SUBTREE (sub-árbolárbol), si es false (falso), la búsqueda búsqueda de directorio es de perspectiva ONE-LEVEL (un-nivel).

userRoleName

Atributo de membresía membresía de grupo para un usuario. Esquemas distintos LDAP representan membresía membresía de grupo de usuario en distintas maneras. Ejemplos son: memberOf, isMemberOf, member, etc. Valores a esos atributos son identificadores de grupos a los cuales un usuario es miembro de. Por ejemplo, si tienes: memberOf: cn=admin,ou=groups,dc=foo, especifica memberOf como el valor para el atributo userRoleName. Considera la relación relación entre este parámetro parámetro y la búsqueda búsqueda roleSearchMatching. En muchas ocasiones regresarán regresarán los mismos datos.