...
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<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 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 | ||||
---|---|---|---|---|
| ||||
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.
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).
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).
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).
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.