Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Avance en la sección de reinos de seguridad

...

...

Regresar a la sección superior

Administrando seguridad

Regresar a la sección superiorEsta sección cubre algunas de las tareas comunes relacionadas con seguridad, como el agregar y eliminar usuarios y grupos, la manipulación de certificados digitales y el incremento del nivel de seguridad mediante el uso de distintos reinos (realms) y métodos de autenticación. Consulte la sección de Seguridad para mayor detalle en como se implementa la seguridad en Apache Geronimo.

Administrando usuarios y grupos

Regresar a la sección superior

...

Puedes agregar usuarios y grupos mediante la Consola de Administración Geronimo ó con la modificación de algunos archivos de configuración. Iniciaremos de forma simple, con el uso del reino proporcionado por defecto en Geronimo. Después, ante nuestra exploración de los distintos reinos y configuraciones de seguridad, regresaremos y visitaremos nuevamente los temas que sean necesarios.

Para administrar usuarios y grupos vía la Consola de Administración Geronimo, el portlet Console Realm (Reino de Consola) esta disponible a mano izquierda en el menú Console Navigation _(Navegación de Consola)_. Ahí encontrarás dos portlets, uno para la administración de usuarios y otro para la administración de grupos, los cuales estan ilustrados en las figuras siguientes.

Image Added

Image Added

Para cambiar la contraseña (password) de un usuario, haz clic en el usuario dentro del portlet Console Realm Users (Consola del Reino de Usuarios), lo cual te proporcionará su UserID y Password, para que puedas actualizar dicho perfil.

Para agregar un nuevo usuario, haz clic en Create New User (Crear Nuevo Usuario), lo cual te solicitará un UserID y Password (esta última, en dos ocasiones); ingresa dichos valores y haz clic en Add (Agregar).

Para eliminar un usuario, haz clic en el Delete (Borrar) correspondiente, lo cual te solicitará una confirmación para el borrado de dicho usuario; se confirma con clic cn OK.

Al haber creado nuevos usuarios, puedes agregarlos a un grupo. Por defecto, el grupo admin esta disponible y el usuario system se encuentra en dicho grupo. Si haces clic en el grupo admin observarás al usuario system en la ventana a la derecha, mientras que cualquier otro usuario disponible se enlisatará en la ventana a la izquierda.

Para agregar un nuevo usuario a ese grupo, primero elige al usuario y después haz clic en Add >> (Agregar >>) y finalmente clic en Update (Actualizar).

Image Added

Para crear un nuevo grupo haz clic en Create New Group (Crear Nuevo Grupo), este paso es muy similar al previo. Además de proporcionarte la opción de agregar usuarios al nuevo grupo, también deberás proporcionar el nombre del grupo. Cuando ingreses el nuevo nombre de grupo y agregues los usuarios, haz clic en Add (Agregar) para finalizar.

Los cambios que hiciste vía los portlets Console Realm Users y Console Realm Groups son reflejados en dos archivos distintos, los cuales son users.properties (usuarios.propiedades) y groups.properties (grupos.propiedades) respectivamente, y se localizan en el directorio <geronimo_home>\var\security.

Warning

Cuando elimines un usuario desde la consola, el usuario no será dado de baja del grupo al cual pertenezca. El portlet Console Realm Users no modificará los grupos.

De forma equivalente, es posible administrar a los usuarios y grupos mediante la modificación directa de los archivos citados:

users.properties
groups.properties

users.properties usa el formato <user_name>=<password>, groups.properties usa el formato <group_name>=<user_name>. Observa los ejemplos siguientes para detalles adicionales.

No Format
borderStylesolid
titleusers.properties

usuario2=usuario2
usuario1=usuario1
system=manager

Como estamos utilizando la configuración básica, por defecto, de seguridad, observarás que los IDs y contraseñas se almacenan en texto plano. Con ello puedes agregar, eliminar y cambiar contraseñas desde dicho archivo.

No Format
borderStylesolid
titlegroups.properties

admin=system
usuarios=usuario1,usuario2

Así como con usuarios, en groups.properties puedes agregar y eliminar grupos, así como agregar y eliminar usuarios en dichos grupos.

Los archivos mencionados en estas secciones junto con toda la configuración de seguridad, en adición a nombres de usuarios y sus contraseñas, son definidos en el reino de seguridad geronimo-properties-realm (reino-propiedades-geronimo), cubierto en la siguiente sección.

Regresar a la sección superior

Administrando reinos (realms) de seguridad

Antes de continuar, es recomendable que te familiarices con conceptos y arquitectura de seguridad de Geronimo. Visita la sección de Seguridad para detalles en como se implementa la seguridad en Geronimo. Los dos Conceptos de Seguridad principales sobre los cuales la arquitectura de seguridad Apache Geronimo esta construida, son el Login Domain (Dominio de Ingreso) y Security Realm (Reino de Seguridad); en esta sección nos enfocaremos en el último.

Para administrar reinos de seguridad vía la Consola de Administración Geronimo, el portlet Security Realms (Reinos de Seguridad) esta disponible en el menu de Concole Navigation _(Navegación de Consola)_ ubicado a mano izquierda. Este portlet te permite agregar un nuevo reino de seguridad ó editar uno existente. Para eliminar reinos, normalmente emplearías la opción de línea de comandos, con la Herramienta de activación (Deployer tool).

Image Added

Enlistados en dicho portlet, encontrarás a todo reino de seguridad disponible. Por defecto, el reino de seguridad empleado por Geronimo para autenticar usuarios vía el archivo de propiedades, es geronimo-properties-realm (reino-propiedades-geronimo).

Cuando edites un reino existente (en este caso, geronimo-properties-realm), se te presentará la pantalla siguiente; nota que no serás capaz de cambiar el nombre del reino (realm name) ni el nombre acceso del dominio (login domain name).

Image Added

El siguiente ejemplo ilustra el plan de activación (deployment plan) generado por este portlet.

Code Block
xml
xml
borderStylesolid
titlegeronimo-properties-realm

<configuration configId="SecurityRealm-geronimo-properties-realm" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0">
    <gbean name="geronimo-properties-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm">
        <attribute name="realmName">geronimo-properties-realm</attribute>
        <reference name="ServerInfo">
            <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</gbean-name>
        </reference>
        <reference name="LoginService">
            <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</gbean-name>
        </reference>
        <xml-reference name="LoginModuleConfiguration">
            <log:login-config xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-1.0">
                <log:login-module control-flag="REQUIRED" server-side="true" wrap-principals="false">
                    <log:login-domain-name>geronimo-properties-realm</log:login-domain-name>
                    <log:login-module-class>org.apache.geronimo.security.realm.providers.PropertiesFileLoginModule</log:login-module-class>
                    <log:option name="usersURI">var/security/users.properties</log:option>
                    <log:option name="groupsURI">var/security/groups.properties</log:option>
                </log:login-module>
            </log:login-config>
        </xml-reference>
    </gbean>
</configuration>

<configuration configId="SecurityRealm-geronimo-properties-realm" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0">
    <gbean name="geronimo-properties-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm">
        <attribute name="realmName">geronimo-properties-realm</attribute>
	<reference name="ServerInfo">
	    <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0/car,J2EEServer=geronimo,
	                j2eeType=GBean,name=ServerInfo</gbean-name>
	</reference>
        <reference name="LoginService">
            <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0/car,J2EEServer=geronimo,
	            j2eeType=JaasLoginService,name=JaasLoginService</gbean-name>
        </reference>
	<xml-reference name="LoginModuleConfiguration">
            <log:login-config xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-1.0">
                <log:login-module control-flag="REQUIRED" server-side="true" wrap-principals="false">
                    <log:login-domain-name>geronimo-properties-realm</log:login-domain-name>
                    <log:login-module-class>org.apache.geronimo.security.realm.providers.PropertiesFileLoginModule</log:login-module-class>
                    <log:option name="usersURI">var/security/users.properties</log:option>
                    <log:option name="groupsURI">var/security/groups.properties</log:option>
                </log:login-module>
            </log:login-config>
        </xml-reference>
    </gbean>
</configuration>

Como se mencionó previamente, este plan es para el reino de seguridad por defecto, basado en archivo de propiedades. Cuando creas un nuevo reino, tendrás que elegir de los siguientes tipos de reinos disponibles:

  • Certificate Properties File Realm (Reino de Archivo de Propiedades Certificadas)
  • Database (SQL) Realm (Reino de Base de datos (SQL))
  • LDAP Realm (Reino LDAP)
  • Properties File Realm (Reino de Archivo de Propiedades)
  • Other (Otro)

La última opcion disponible te permite crear tu propio tipo adaptado de reino, cuando ninguno de los disponibles cumple con las necesidades de tu ambiente.

Apache Geronimo tiene un reino de archivo de propiedades previamente configurado, el cual es el reino empleado por defecto para la autenticación. Geronimo también viene con un grupo de aplicaciones ejemplo; una de dichas aplicaciones proporciona un reino de seguridad adicional para LDAP. Para este ejemplo, nos enfocaremos en un tipo distinto, emplearemos una base de datos para la verificación y consulta de nombres de usuario y sus contraseñas.

Para este ejemplo creamos una nueva base de datos, llamada BaseDeDatosDeSeguridad, usando la base de datos Derby pre-construida. Los siguientes pasos resumen al procedimiento seguido para crear la base de datos y tablas, cargar algunos datos ejemplo y crear al pool de conexiones. Instrucciones detalladas en como definir pools de conexiones a base de datos son descritas en la sección #Configurando pools de bases de datos.

Crea la base de datos y carga datos ejemplo

Crea el pool de conexiones

Agrega un nuevo reino de seguridad

Probando el reino de seguridad

Regresar a la sección superior

...