Puede proteger los métodos de enterprise bean asignando roles de seguridad a los mismos. Antes de asignar roles de seguridad, debe saber qué métodos EJB
(Enterprise JavaBeans) es necesario proteger y cómo protegerlos.
Acerca de esta tarea
Puede asignar un conjunto de métodos EJB a un conjunto de roles.
Cuando se asegura un método EJB asociándole un conjunto de roles, para poder acceder al método, debe otorgar al menos un rol en ese conjunto.
Para impedir el acceso a un conjunto de métodos EJB, marque el conjunto como
excluido.
Para dar acceso libre a un conjunto de métodos de enterprise
beans, borre esos métodos. Puede ejecutar enterprise beans como una
identidad diferente, utilizando la identidad runAs, antes de
invocar otros enterprise beans.
Nota: Este procedimiento puede que no coincida con los
pasos que deben realizarse al utilizar la herramienta de ensamblaje, o que no coincida
con la versión de la herramienta de ensamblaje que va a utilizar. Debe seguir las instrucciones para la herramienta y versión que está utilizando. Para obtener más información sobre el uso de las herramientas de ensamblaje, consulte el
Information Center de la herramienta de ensamblaje.
Para proteger las aplicaciones de enterprise bean, siga estos pasos:
Procedimiento
- En una herramienta de ensamblaje, importe el archivo JAR (Java™ Archive) de EJB (Enterprise JavaBeans) o un archivo EAR de archivador de aplicaciones que contenga uno o más módulos web.
Consulte la información sobre cómo importar un archivo JAR de EJB o un archivo EAR de
una aplicación empresarial en la documentación de Rational Application
Developer.
- En el Explorador de proyectos, pulse el directorio Proyectos
EJB y pulse el nombre de la aplicación.
- Pulse con el botón derecho del ratón en el descriptor de
despliegue y pulse Abrir con > Editor del descriptor de despliegue. Si ha seleccionado un archivo .jar de enterprise bean, se abrirá
EJB Deployment Descriptor Editor. Si selecciona un archivo .ear
de aplicación, se abrirá un Application Deployment Descriptor Editor. Para consultar información en línea
acerca del editor, pulse F1 y pulse el nombre del editor.
- Cree roles de seguridad. Los roles de seguridad pueden crearse a nivel de aplicación o a nivel de módulo EJB. Si se crea un rol de seguridad a nivel de módulo EJB, el rol también aparecerá en el nivel de aplicación. Si se crea un rol de seguridad a nivel de aplicación, el rol no se
visualizará en todos los módulos EJB. Puede copiar y pegar uno o más roles de seguridad de módulos EJB creados a nivel de aplicación:
- Cree un rol al nivel de módulo EJB. En un editor de despliegue de
EJB, pulse el separador Ensamblado. En Security Roles (Roles de seguridad), pulse Add (Añadir). En el asistente Add Security Role (Añadir rol de seguridad), asigne
un nombre al rol de seguridad y descríbalo y pulse Finish
(Finalizar).
- Cree un rol a nivel de aplicación. En Application Deployment Descriptor Editor, seleccione el separador Security (Seguridad). En la lista de
roles de seguridad, pulse Add (Añadir). En el asistente Add Security Role (Añadir rol de seguridad), asigne un
nombre al rol de seguridad y descríbalo y, a continuación, pulse
Finish (Finalizar).
- Cree permisos de método. Los permisos de método establecen la correlación de uno o más métodos con conjuntos de roles. Un enterprise bean tiene cuatro tipos de métodos: métodos de factoría,
métodos remotos y métodos de factoría locales y métodos locales. Puede añadir permisos a
enterprise beans a nivel de método. No puede añadir permisos de método a
enterprise beans, a no ser que ya haya definido uno o más roles de seguridad. Para proyectos EJB de la versión 2.0, hay una opción sin seleccionar que
especifica que los métodos seleccionados de los beans seleccionados no
requieren autorización para ejecutarse. Para añadir un permiso de método a un enterprise bean:
- En el separador Ensamblado de un editor de descriptor de despliegue de EJB,
en Permisos de método, pulse Añadir. Se abre el Add Method
Permission wizard (Asistente de añadir permiso de método).
- Seleccione un rol de seguridad de la lista de roles encontrados y pulse Next (Siguiente).
- Seleccione uno o más enterprise beans de la lista de beans encontrados. Puede pulsar Select All (Seleccionar todo) o Deselect All
(Deseleccionar todo) para seleccionar o deseleccionar todos los enterprise
beans de la lista. Pulse Next (Siguiente).
- Seleccione los métodos que desea enlazar al rol de seguridad. En la pagina Method Elements (Elementos de método) se enumeran todos los
métodos asociados a los enterprise beans. Puede pulsar Apply to All (Aplicar a todo) o Deselect All (Anular selecciones) para seleccionar o borrar rápidamente varios métodos. La selección sólo afecta al método (*) predeterminado de todos los beans. Si se crea un permiso de método para la signatura exacta del método se alterará temporalmente
el valor predeterminado del método (*). El método (*) predeterminado
representa a todos los métodos incluidos en el bean. Asimismo, existen métodos (*) predeterminados para todas las interfaces. Para establecer otros permisos no en todos los métodos, seleccione los métodos individuales que desee del árbol.
- Pulse Finalizar.
Después de haber creado el permiso de método, puede consultarlo en el árbol. Expanda el árbol para consultar el bean y los métodos definidos en el
permiso de método.
- Excluya métodos del acceso de usuarios. Los usuarios no pueden acceder a métodos excluidos. Durante la instalación de la aplicación, el desplegador deseleccionará
cualquier método de enterprise beans que no tenga asignado ningún rol que
no se haya excluido.
- En el separador Ensamblado de un editor de descriptor de despliegue de EJB,
en Lista de exclusiones, pulse Añadir. Se abre el Exclude
List wizard (Asistente de lista de exclusión).
- Seleccione uno o más enterprise beans de la lista de beans encontrados y pulse Next (Siguiente).
- Seleccione uno o más de los elementos de método para la identidad de seguridad y pulse Finish (Finalizar).
- Correlacione security-role-ref y role-name con role-link. Cuando desarrolla enterprise beans, puede crear el elemento security-role-ref. El elemento security-role-ref sólo contiene el
campo role-name. El campo role-name determina si quien emite la llamada
tiene un rol role(isCallerInRole() especificado y contiene el nombre
del rol al que se hace referencia en el código. Puesto que los roles de
seguridad se crean durante la fase de ensamblaje, el desarrollador utiliza
un nombre de rol lógico en el campo role-name y proporciona
la suficiente descripción en el campo Descripción para que el
ensamblador establezca la correlación con el rol real (role-link). El elemento security-role-ref está ubicado a nivel de EJB. Los enterprise beans pueden tener varios elementos
security-role-ref o ninguno.
- En el separador Referencia de un editor de descriptor de
despliegue de EJB, en la lista de referencias, pulse Añadir. Se
abre el Add Reference wizard (Asistente de añadir referencia).
- Seleccione Security role reference (Referencia de rol de seguridad) y pulse Next (Siguiente).
- Denomine la referencia del rol de seguridad, seleccione un rol de seguridad para enlazarlo a la
referencia, describa la referencia del rol de seguridad y pulse Finish (Finalizar).
- Correlacione cada role-name utilizado durante el desarrollo
con el rol (role-link) utilizando los pasos anteriores.
- Especifique la identidad RunAs para los componentes de
enterprise bean. La identidad de RunAs de los enterprise bean se utiliza para invocar
el siguiente enterprise beans en la cadena de invocaciones de EJB. Al
invocar los siguientes enterprise beans, la identidad RunAsIdentity se
pasa a los enterprise beans siguientes para llevar a cabo una
comprobación de autorización en los enterprise bean siguientes. Si no se
especifica la identidad de RunAs, la identidad del cliente se propaga a
los enterprise bean siguientes. La identidad RunAs puede representar cada
uno de los enterprise beans o puede representar cada método en los
enterprise beans.
- En el separador Acceso de un editor de descriptor de despliegue de EJB,
junto al campo Identidad de seguridad (Nivel de bean), pulse Añadir.
Se abre el Add Security Identity wizard (Asistente de añadir identidad de
seguridad).
- Seleccione la modalidad run as adecuada, describa la identidad de seguridad y
pulse Next (Siguiente). Seleccione la modalidad Use
identity of caller (Utilizar identidad de llamador) para indicar al
servicio de seguridad que no efectúe cambios en los valores de
credenciales del principal. Seleccione la modalidad Utilizar identidad asignada a cometido
específico para utilizar un principal que se asigne al rol de
seguridad especificado para ejecutar los métodos del bean. Esta asociación forma parte del enlace de aplicación en el que se asocia al rol
el ID de usuario y la contraseña del usuario al que se le ha otorgado ese rol. Si selecciona Utilizar identidad asignada a cometido específico,
debe especificar el nombre y la descripción del rol.
- Seleccione uno o más enterprise beans de la lista de beans encontrados y pulse Next (Siguiente). Si no está disponible Next (Siguiente), pulse Finish
(Finalizar).
- Opcional: En la página Elementos de método, seleccione uno o más de los elementos de método de la identidad de seguridad y pulse Finalizar.
- Cierre Deployment Descriptor Editor y, cuando se le solicite, pulse
Yes (Sí) para guardar los cambios.
Resultados
Después de proteger una aplicación EJB, el archivo
.jar resultante contiene información de seguridad en su descriptor de despliegue. La información de seguridad de los módulos
EJB se almacena en el archivo
ejb-jar.xml.
Qué hacer a continuación
Después de proteger una aplicación EJB con la herramienta de
ensamblaje, puede instalar una aplicación EJB mediante la consola administrativa.
Durante
la instalación de una aplicación EJB segura, siga los pasos indicados en el tema
Despliegue de aplicaciones protegidas para efectuar la tarea de protección de la
aplicación EJB.