Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Completar traducción

...

Ahora tienes un nuevo, completamente configurado, reino de seguridad que comprueba nombre de usuarios y contraseñas desde la base de datos Derby incluida.

...

El siguiente ejemplo muestra al plan de activación (deployment plan) para este reino de seguridad

...

Regresar a la sección superior

...

. Como alternativa a la Consola de Administración Geronimo, puedes guardar este ejemplo en un archivo (por ej. reino_de_seguridad.xml) y activarlo mediante la Herramienta de activación, con la ejecución del siguiente comando:

<geronimo_home>\bin\deploy --user system --password manager deploy <realm_path>\reino_de_seguridad_derby.xml

Code Block
xml
xml
borderStylesolid
titlederby_security_realm

<configuration configId="SecurityRealm-reino_de_seguridad_derby" xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0">
    <import>
        <uri>user/database-pool-BaseDeDatosDeSeguridad/1/car</uri>
    </import>
    <gbean name="reino_de_seguridad_derby" class="org.apache.geronimo.security.realm.GenericSecurityRealm">
        <attribute name="realmName">reino_de_seguridad_derby</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>reino_de_seguridad_derby</log:login-domain-name>
                    <log:login-module-class>org.apache.geronimo.security.realm.providers.SQLLoginModule</log:login-module-class>
                    <log:option name="userSelect">select nombreusuario, password from APP.usuarios where nombreusuario=?</log:option>
                    <log:option name="dataSourceApplication">null</log:option>
                    <log:option name="groupSelect">select nombreusuario, nombregrupo from APP.grupos where nombreusuario=?</log:option>
                    <log:option name="dataSourceName">BaseDeDatosDeSeguridad</log:option>
                </log:login-module>
                <log:login-module control-flag="OPTIONAL" server-side="true" wrap-principals="false">
                    <log:login-domain-name>reino_de_seguridad_derby-Audit</log:login-domain-name>
                    <log:login-module-class>org.apache.geronimo.security.realm.providers.FileAuditLoginModule</log:login-module-class>
                    <log:option name="file">var/log/reinoSeguridadDerby.log</log:option>
                </log:login-module>
                <log:login-module control-flag="REQUISITE" server-side="true" wrap-principals="false">
                    <log:login-domain-name>reino_de_seguridad_derby-Lockout</log:login-domain-name>
                    <log:login-module-class>org.apache.geronimo.security.realm.providers.RepeatedFailureLockoutLoginModule</log:login-module-class>
                    <log:option name="lockoutDurationSecs">60</log:option>
                    <log:option name="failurePeriodSecs">10</log:option>
                    <log:option name="failureCount">3</log:option>
                </log:login-module>
            </log:login-config>
        </xml-reference>
    </gbean>
</configuration>

Probando el reino de seguridad

Si deseas probar rápidamente este reino, puedes emplear la aplicación LDAP ejemplo cubierta en la sección Configurando LDAP. Sólo necesitarás cambiar su descriptor de activación deployment descriptor geronimo-web.xml por el que se muestra a continuación, para después reempacar la aplicación y activarla.

Nota que sólo cambiamos del plan original, el nombre del reino, de ldap-realm a reino_de_seguridad_derby.

Code Block
xml
xml
borderStylesolid
titlegeronimo-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://geronimo.apache.org/xml/ns/web"
    xmlns:sec="http://geronimo.apache.org/xml/ns/security"
    configId="org/apache/geronimo/ldap-secure-demo">
    <context-root>/ldap-demo</context-root>
    <context-priority-classloader>false</context-priority-classloader>
<!--    <security-realm-name>ldap-realm</security-realm-name> -->
	<security-realm-name>reino_de_seguridad_derby</security-realm-name>
    <security>
        <default-principal realm-name="derby_security_realm">
            <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="system"/>
        </default-principal>
        <role-mappings>
            <role role-name="content-administrator">
                <realm realm-name="derby_security_realm">
                    <principal class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" name="admin" designated-run-as="true"/>
                    <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="system"/>
                </realm>
            </role>
            <role role-name="guest">
                <realm realm-name="derby_security_realm">
                    <principal class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" name="guest" designated-run-as="true"/>
                    <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="user1"/>
                    <principal class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" name="user2"/>
                </realm>
            </role>
        </role-mappings>
    </security>
</web-app>

Sigue las instrucciones citadas en la sección Configurando LDAP para reempacar y activar la aplicación. Cuando la pruebes, estarás empleando al reino SQL de la base de datos. Verifícalo unos minutos, con lo que deberías obtener intentos exitosos de acceso almacenados en el archivo de bitácora que especificaste cuando creaste a este reino de seguridad (en este ejemplo var/log/reinoSeguridadDerby.log).

No Format
borderStylesolid
titlereinoSeguridadDerby.log

03/01/2006 15:56:33 - Authentication attempt - usuariouno
03/01/2006 15:56:33 - Authentication succeeded - usuariouno
03/01/2006 16:10:05 - Authentication attempt - usuariodos
03/01/2006 16:10:05 - Authentication succeeded - usuariodos

Regresar a la sección superior

Administrando certificados

Para administrar certificados SSL, el portlet Keystore Configuration _(Configuración Keystore)_ esta disponible al elegir Keystore en el menú de la Console Navigation _(Navegación de Console)_, ubicado a mano izquierda. Desde dicho portlet puedes importar algún certificado existente ó crear uno nuevo.

Image Added

Los certificados en Geronimo son almacenados en un keystore ubicado en <geronimo_home>\var\security\ssl-keystore-1. Dicho archivo keystore ssl no existe hasta que crees la primer llave privada.

Si ya cuentas con un certificado, puedes hacer clic en import trusted certificate (importar certificado confiable).

Image Added

Especifica la ubicación del archivo del certificado y haz clic en View Certificate (Ver Certificado). La información del certificado será desplegada, y deberías agregar un alias para identificar dicho certificado; posteriormente, da clic en Import (Importar) para agregarlo al keystore. Ahora deberías ver que el tamaño de keystore ha incrementado.

Para generar una llave, da clic en generate key pair (generar par de llave). En la siguiente pantalla ingresa la información relevante y da clic en Submit (Enviar). Para este ejemplo, ingresamos los siguientes valores:

Alias:

Servidor Geronimo

Key Algorithm:

RSA

Key Size:

1024

Signature Algorithm:

MD5withRSA

Validity:

2000

Common Name (CN):

127.0.0.1

Organizational Unit (OU):

Geronimo

Organizational Name (O):

Apache

Locality (L):

Localidad

State (ST):

Estado

Country (C):

País

Ahora deberías ver que el tamaño de keystore ha incrementado y que la llave privada que generaste se encuentra listada cerca de la parte inferior del portlet Keystore Configuration _(Configuración de Keystore). Da clic en view _(ver) de la llave privada que creaste; deberías ver los detalles del par de llave y las opciones para generar una petición de certificado y para importar una respuesta de certificado de una autoridad de certificación (CA).

Image Added

Para generar una petición de certificado a enviar a la CA, da clic en generate CSR (generar CSR), copia el contenido generado y envíalo a la CA (normalmente recibirías las instrucciones de la CA en el cómo enviar el CSR).

Image Added

Al recibir la respuesta de la CA, comúnmente se acompaña de un archivo certificado; para agregar ese certificado al keystore sigue los pasos mencionados para import trusted certificate (importar certificado confiable).

Usando los certificados

Warning

Actualmente se conoce un tema ante el uso de certificados para asegurar nuevos oyentes HTTPS; ya existe un parche disponible y debería ser aplicado a la siguiente versión de Apache Geronimo. Consulta JIRA GERONIMO-1503 para mayor detalle.

Para usar tus propios certificados en lugar de los proporcionados por defecto en la instalación, necesitas crear un nuevo oyente HTTPS. Usa al portlet Network Listener (Oyente de Red) ubicado dentro de la opción Web Server (Servidor Web) en el menú de Console Navigation _(Navegación de Consola)_ a mano izquierda. Los pasos para agregar al nuevo oyente HTTPS fueron cubiertos previamente en la sección #Agregar nuevo oyente (listener) HTTPS.

Regresar a la sección superior