Activación de Consola de Geronimo Actualmente la 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ón para activar reinos 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_ldap>/<nombre_de_archivo>.xml*}}
Una vez activado, deberÃas ver un mensaje de confirmación similar al siguiente ejemplo:
E:\geronimo\bin>java -jar deployer.jar --user system --password manager deploy e:/ldap-jetty/ldap-realm.xml
Deployed <groupName>/<artifactName>/<version>/car
class = org.apache.geronimo.security.realm.providers.LDAPLoginModule
Tip: La clave para trabajar con el módulo LDAP es: CONOCE TU ESQUEMA LDAP. |
El LDAPLoginModule puede ser configurado para encontrar roles de usuario (membresÃas de grupo) usando dos métodos distintos:
Para usar este método, se deben establecer las opciones roleName y roleSearchMatching. LDAPLoginModule ejecutará la 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étodo, la opción roleName NO DEBE dejarse establecida. Si la opción roleName se encuentra establecida y la opción roleSearchMatching no se encuentra establecida, LDAPLoginModule intentará ejecutar la búsqueda y lanzará una excepción.
Para usar este método la opción userRoleName debe establecerse con el nombre del atributo de pertenencia a grupo que contenga la lista de membresÃa del grupo. Para evitar este método, deberÃa no establecerse la opción userRoleName.
Opción | Descripción |
---|---|
initialContextFactory | Nombre de clase del context factory inicial. Usualmente com.sun.jndi.ldap.LdapCtxFactory. |
connectionURL | URL de conexión LDAP, como ldap://localhost:1389 . Nota que el puerto LDAP usual es 389. |
connectionUsername | El DN usado por el módulo login para autenticarse al servidor directorio. |
connectionPassword | La credencial (password) que se usa por el 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 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 de membresÃa de grupo. |
userSearchMatching | La especificación de filtro para el como buscar para atributos de usuario. Filtros RFC 2254 son permitidos. Además puedes pasar un parámetro al filtro de búsqueda en lugar de un valor literal. Por ejemplo: ese es una 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 de parámetro. El valor de parámetro es el nombre de usuario. Esta búsqueda debe devolver exactamente un objeto. |
userSearchSubtree | Define la perspectiva de búsqueda para atributos de usuario. Si se establece true (verdadero), la búsqueda de directorio es de perspectiva SUBTREE (sub-árbol), si es false (falso), la búsqueda de directorio es de perspectiva ONE-LEVEL (un-nivel). |
roleBase | DN base para la búsqueda de membresÃa de grupo. |
roleName | Atributo LDAP que identifica al nombre de grupo en el resultado proporcionado por la búsqueda de membresÃa de grupo. Nota que una búsqueda de membresÃa de grupo es definida por el parámetro roleSearchMatching. Usualmente el parámetro nombre de grupo es cn. |
roleSearchMatching | Especificación de filtro para cómo buscar los roles. Se permiten filtros RFC 2254. Además, puedes pasar parámetros al filtro de búsqueda en lugar del valor literal. Por ejemplo: (uniqueMember = {0}). Este entero se refiere al número de parámetro. Este parámetro es el DN del usuario autenticado. Nota que si la membresÃa de rol para el usuario es definida en el atributo member-of-like (ver parámetro userRoleName) puede ser que no necesites buscar membresÃa de grupo en la búsqueda. |
roleSearchSubtree | Define la perspectiva de búsqueda de directorio para roles. Si es true (verdadero), la búsqueda de directorio es de perspectiva SUBTREE (sub-árbol), si es false (falso), la búsqueda de directorio es de perspectiva ONE-LEVEL (un-nivel). |
userRoleName | Atributo de membresÃa de grupo para un usuario. Esquemas distintos LDAP representan 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 entre este parámetro y la búsqueda roleSearchMatching. En muchas ocasiones regresarán los mismos datos. |