Capítulo 6. Seguridad
- Autenticación
- Autorización
- Firma de paquetes de reglas
6.1. Autenticación Copiar enlaceEnlace copiado en el portapapeles!
Importante
jboss-brms.war/WEB-INF/components.xml. La configuración predeterminada tiene muchas opciones "con comentarios" pero la configuración en sí se ve así:
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<component name="org.jboss.seam.security.roleBasedPermissionResolver">
<property name="enableRoleBasedAuthorization">false</property>
</component>
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<component name="org.jboss.seam.security.roleBasedPermissionResolver">
<property name="enableRoleBasedAuthorization">false</property>
</component>
Nota
components.xml cambió en BRMS 5.2. En BRMS 5.1 y versiones anteriores el archivo se ve así:
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<security:role-based-permission-resolver enable-role-based-authorization="false"/>
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<security:role-based-permission-resolver enable-role-based-authorization="false"/>
Importante
jmx-console. Red Hat recomienda el modificar esta política para personalizarla de acuerdo con su entorno especifico.
- Modifique el módulo de inicio de sesión apropiado de JBoss del servidor de aplicaciones.
- Configure JBoss Enterprise BRMS Platform para que utilice ese módulo.
Nota
Aviso
Importante
BRMS Permissions. Una vez que se habilita esto solo los usuarios con los privilegios administrativos pueden realizar muchas de las tareas administrativas incluyendo el administrar los roles de los usuarios (esto se explica en más detalle en Sección 6.2, “
Autorización”).
6.1.1. Ejemplo de autenticación: UserRolesLoginModule Copiar enlaceEnlace copiado en el portapapeles!
org.jboss.security.auth.spi.UsersRolesLoginModule para acceder a un grupo de cuentas de usuarios almacenados en los archivos props/brms-users.properties y props/brms-roles.properties.
Procedimiento 6.1. Ejemplo de autenticación: UserRolesLoginModule
Asegúrese de que el sistema de autenticación está configurado correctamente
Este módulo de inicio de sesión usa dos archivos para almacenar el nombre de inicio de sesión, la contraseña y los roles asignados a cada usuario. Cree los archivosbrms-users.propertiesybrms-roles.propertiesen el directoriojboss-as-web/server/PROFILE/conf/props/y luego especique por lo menos un usuario enbrms-users.propertiesusando este formato:username=password(el archivobrms-roles.propertiesse puede dejar vacío).Apagar
Apague el servidor de aplicaciones antes de realizar estos cambios.Configure el módulo de inicio de sesión de JBoss
Para configurar los módulos de inicio de sesión de JBoss abrajboss-as-web/server/PROFILE/conf/login-config.xmlen un editor de texto. Es un archivo XML que contiene un elemento<policy>con varios elementos hijos<application-policy>. Cada elemento<application-policy>define un esquema de autenticación diferente. Agregue el siguiente pedazo XML<application-policy>como un nuevo hijo del elemento<policy>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure la plataforma BRMS para utilizar el módulo de inicio de sesión
Abra el archivojboss-as-web/server/PROFILE/deploy/JBoss-BRMS.war/WEB-INF/components.xml. Contiene un elemento<components>con varios elementos hijos incluyendo<security:identity>.Agregue Comente el elemento<security:identity>para evitar conflictos. Agregue el siguiente elemento<security:identity>:<security:identity authenticate- method="#{authenticator.authenticate}" jaas-config-name="brms"/><security:identity authenticate- method="#{authenticator.authenticate}" jaas-config-name="brms"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow La propiedad jaas-config-name debe ser igual que application-policy. Si se cambió la propiedad application-policy en el paso anterior entonces modifique la propiedad jaas-config-name para que coincidan.Reiniciar
Reinicral el servidor de aplicaciones.
6.1.2. Ejemplo de autenticación: LDAP Copiar enlaceEnlace copiado en el portapapeles!
Procedimiento 6.2. Ejemplo de autenticación dos: LDAP
Asegúrese de que el servidor LDAP está configurado correctamente
Aegúrese de que la configuración de la red y del cortafuegos no estén evitando la comunicación enter el servidor de aplicaciones y el servidor LDAP.Apagar
Apague el servidor de aplicaciones antes de realizar estos cambios.Configure el módulo de inicio de sesión de JBoss
Para configurar los módulos de inicio de sesión de JBoss abrajboss-as-web/server/PROFILE/conf/login-config.xmlen un editor de texto. Es un archivo XML que contiene un elemento<policy>con varios elementos hijos<application-policy>. Cada elemento<application-policy>define un esquema de autenticación diferente. Agregue el siguiente pedazo XML<application-policy>como un nuevo hijo del elemento<policy>:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Actualice los valores en este archivo de configuración con los valores apropiados para su servidor LDAP.Configure la plataforma BRMS para utilizar el módulo de inicio de sesión
Abra el archivojboss-as-web/server/PROFILE/deploy/jboss-brms.war/WEB-INF/components.xml. Contiene un elemento<components>con varios elementos hijos incluyendo<security:identity>.Agregue Comente el elemento<security:identity>para evitar conflictos. Agregue el siguiente elemento<security:identity>:<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="brms"/><security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="brms"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow La propiedad jaas-config-name debe ser igual que application-policy. Si se cambió la propiedad application-policy en el paso anterior entonces modifique la propiedad jaas-config-name para que coincidan.Reiniciar
Reinicral el servidor de aplicaciones.
Nota
6.2.
Autorización Copiar enlaceEnlace copiado en el portapapeles!
Figura 6.1. Administración de los permisos de usuario
Procedimiento 6.3. Habilitar la autorización con base en roles
Asignar privilegios administrativos a un usuario
Antes de habilitar la autorización con base en roles es necesario asignar por lo menos un usuario confiable al rol de administrador.Consulte Procedimiento 6.5, “Administración de los permisos de usuario” para obtener mayores detalles.Apagar
Apague el servidor de aplicaciones antes de realizar estos cambios.Abra
components.xmlAbra el archivojboss-as-web/server/PROFILE/deploy/jboss-brms.war/WEB-INF/components.xmlen un editor de texto.Ubique el elemento
<property name="enableRoleBasedAuthorization">En el archivo predeterminadocomponents.xml, este elemento XML es un hijo de<components>.<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">false</property> </component>
<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">false</property> </component>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nota
En las versions 5.1 y anteriores ubique el siguiente XML<security:role-based-permission-resolver enable-role-based-authorization="false"/><security:role-based-permission-resolver enable-role-based-authorization="false"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Actualice el valor del atributo como "Verdadero"
Actualice el valor de la propiedad enable-role-based-authorization comotruey guarde el archivo.<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">true</property> </component>
<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">true</property> </component>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Nota
En las versions 5.1 y anteriores ubique el siguiente XML<security:role-based-permission-resolver enable-role-based-authorization="true"/><security:role-based-permission-resolver enable-role-based-authorization="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reiniciar
Reinicral el servidor de aplicaciones.
Procedimiento 6.4. Agregue un nuevo usuario a BRMS
Seleccione los detalles de los permisos
Seleccione Administration del navigation pane, luego escoja User Permissions.Agregue el mapeo de usuarios
Haga clic en el botón . Escriba el nombre del usuario en la ventana que aparece y luego haga clic en .Nota
El nombre de usuario que se especifica para el rol debe coincidir con un nombre de usuario en el servicio de autenticación o no funcionará.Agregar permisos
Consulte Procedimiento 6.5, “Administración de los permisos de usuario” para obtener mayores detalles.
Procedimiento 6.5. Administración de los permisos de usuario
Seleccionar permisos de usuario
Seleccione Administration del navigation pane, luego escoja User Permissions.Seleccionar el usuario
Haga clic Open al lado del nombre de usuario.Figura 6.2. Detalles sobre los permisos
Asignar permisos de usuarios
Haga clic en el ícono con el signo mas para agregar permisos y seleccione los permisos apropiados del menú desplegable Permission type. Haga clic en OK para confirmar.Figura 6.3. Modifique los permisos del usuario
Borre permisos de usuario
Haga clic en el ícono con el menos al lado del permiso que se va a borrar y haga clic en OK para confirmar.
- admin
- analyst
- package
Nota
Nota
Importante
El permiso del administrador de paquetes otorga un control completo sobre el paquete especificado incluyendo el derecho a implementarlo. El permiso del administrador de paquetes no otorga ningún derecho administrativo a ninguna otra parte de JBoss Enterprise BRMS Platform.
El desarrollador de paquetes le permite a los usuarios el crear y modificar objetos dentro del paquete especificado. Esto incluye el poder crear y ejecutar pruebas pero no incluye el derecho a implementar el paquete.
El permiso de sólo lectura de paquetes es similar al permiso de sólo lectura de analistas pero le otorga acceso a un paquete en lugar de una categoría.
6.3.
Firma de paquetes de reglas Copiar enlaceEnlace copiado en el portapapeles!
Importante
keytool para crear una llave privada y un certificado digital público correspondiente. Los paquetes firmados con una llave privada solo se pueden verificar con el certificado correspondiente. La llave privada se almacena en un archivo llamado un almacén de llaves y el servidor lo utiliza para firmar automáticamente cada paquete. El certificado público se hace disponible para cada aplicación cliente en un almacén de llaves conocido como un almacén de confianza. El certificado en el almacén de confianza se utiliza para verificar la autenticidad del los paquetes firmados. Los paquetes de reglas que estén dañados o que sean modificados durante la descarga serán rechazados por el cliente ya que la firma ya no coincidirá con el certificado.
- Crear una llave privada de firma y un certificado digital público correspondiente.
- Hacer disponibles la llave privada de firma y el certificado digital público en el servidor en los almacenes de llaves.
- Configurar el servidor para utilizar los almacenes de llaves.
Procedimiento 6.6. Configurar la firma de paquetes de reglas
Crear un almacén privado de llaves
Use el comandokeytoolpara crear el almacén privado de llaves:keytool -genkey -alias ALIAS -keyalg RSA -keystore PRIVATE.keystore
keytool -genkey -alias ALIAS -keyalg RSA -keystore PRIVATE.keystoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow El parámetro-aliasespecifica el nombre utilizado para enlazar las entidades relacionadas en el almacén de llaves. Use el mismo alias para cada uno de estos pasos. El alias no detalla mayúsculas o minúsculas. El parámetro-keystoreproporicona el nombre del archivo que se creará para mantener la llave privada.keytoolle pedirá su información de identificación así como dos contraseñas. La primera contraseña, la contraseña del almacén de llaves, asegura el almacén de llaves. La segunda contraseña, la contraseña clave, asegura la llave que se está creando.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crear un certificado digital
Use el comandokeytoolpara crear un certificado digital:keytool -export -alias ALIAS -file CERTIFICATE.crt -keystore PRIVATE.keystore
keytool -export -alias ALIAS -file CERTIFICATE.crt -keystore PRIVATE.keystoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use el mismo alias y almacén de llaves que en el paso anterior. El parámetro-filees el nombre del archivo del nuevo certificado que se creará. El parámetro-keystoreproporciona el nombre del archivo del almacén privado de llaves.Introduzca la contraseña del almacén de llaves cuando se le pida.keytool -export -alias BRMSKey -file BRMSKey.crt -keystore PrivateBRMS.keystore
[localhost ]$ keytool -export -alias BRMSKey -file BRMSKey.crt -keystore PrivateBRMS.keystore Enter keystore password: Certificate stored in file <BRMSKey.crt>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Importe el certificado digital en un almacén de confianza
Use el comandokeytoolpara importar el certificado digital en un almacén de llaves:keytool -import -alias ALIAS -file CERTIFICATE.crt -keystore PUBLIC.keystore
keytool -import -alias ALIAS -file CERTIFICATE.crt -keystore PUBLIC.keystoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow Esto creará un nuevo almacén de llaves, el almacén de confianza, el cual contiene el certificado digital. El almacén de confianza hace disponible el certificado digital para las aplicaciones clientes.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mueva el almacén privado de llaves en un lugar seguro.
Es necesario mantener el almacén privado de llaves en un lugar seguro en donde solo lo pueda acceder el servidor JBoss Enterprise BRMS Platform. Esto puede ser en la misma máquina o en un lugar asegurado de la red que esté diponible para esa máquina.Importante
JBoss Enterprise BRMS Platform no puede proporcionar cerdenciales de autenticación a recursos en la red. Si el almacén privado de llaves se almacena en un lugar seguro d ela red entonces los procedimientos de autenticación se deben realizar de parte del servidor JBoss Enterprise BRMS para hacer el almacén privado de llaves disponible para este. Por ejemplo, el sistema operativo puede autenticar y montar un archivo compartido que mantenga el lamacén privado de llaves como un directorio local para que el servidor JBoss Enterprise BRMS Platform tenga acceso a el.Mueva el almacén de confianza a un lugar público
Es necesario que el almacén de confianza sea accequible para las aplicaciones clientes. Esto se puede lograr poniendo el almacén de confianza en una red compartida o como host en un servidor web.Configure las propiedades de serialización Drools
Las propiedades del sistema de serialización Drools tienen que establecerse en el servidor. Estas son las propiedades que almacenan la información requerida para acceder los almacenes de llaves. Ya que JBoss Enterprise BRMS Platform también contiene componentes cliente tanto las propiedades privadas del almacén de llaves como las del almacén de confianza se tienen que configurar en el servidor.Consulte Sección 6.3.1, “Configuración de propiedades de serialización” para obtener detalles sobre dónde se pueden establecer las propiedades.Las propiedades que es necesario configurar son:drools.serialization.sign- indica si la firma está habilitada. Debe estar configurado comotrue.drools.serialization.private.keyStoreURL- la URL en donde se encuentra el almacén privado de llavesdrools.serialization.private.keyStorePwd- la contraseña para el almacén de llavesdrools.serialization.private.keyAlias- el alias utilizado al crear el almacén de llavesdrools.serialization.private.keyPwd- la contraseña llavedrools.serialization.public.keyStoreURL- la URL en donde se encuentra el almacén de confianzadrools.serialization.public.keyStorePwd- la contraseña para el almacén de confianza
Codifique las credenciales del almacén de llaves
La contraseña del almacén de llaves actualmente está almacenado en texto simple.Consulte https://access.redhat.com/kb/docs/DOC-47247 para obtener instrucciones sobre cómo enmascarar las credenciales del almacén de llaves.
- Consulte el manual del usuario BRMS para obtener instrucciones sobre cómo configurar clientes para que usen paquetes firmados de reglas.
6.3.1. Configuración de propiedades de serialización Copiar enlaceEnlace copiado en el portapapeles!
- Servicio de propiedades JBoss
- PAra configurar las propiedades usando el servicio de propiedades JBoss, agregue la siguiente configuración bean administrada al archivo
/server/PROFILE/deploy/properties-service.xml, reemplazando los valores del ejemplo con los que sean apropiados para su sistema.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - archivo de propiedades jboss-brm.war
- PAra configurar las propiedades en el archivo de propiedades jboss-brms.war, agregue el siguiente código al archivo
jboss-brms.war/WEB-INF/classes/preferences.properties.Copy to Clipboard Copied! Toggle word wrap Toggle overflow