Visión general técnica de Sun Java Enterprise System 2005Q4

Identidad integrada y servicios de seguridad

Una función importante de Java Enterprise System es su administración integrada de las identidades de los usuarios, así como su estructura integrada de autorización y autenticación.

Las siguientes secciones proporcionan información técnica para comprender la identidad y los servicios de seguridad integrados que ofrece Java Enterprise System:

Identidad única

Dentro de un entorno de Java ES, cada usuario final tiene su identidad única integrada. En función de su identidad única, a un usuario se le puede conceder acceso a varios recursos como, por ejemplo, portales, páginas web o servicios como el uso de mensajes y calendarios y la mensajería instantánea.

Esta función integrada de seguridad e identidad está basada es una estrecha colaboración entre Directory Server, Access Manager y otros componentes de Java ES.

El acceso de los usuarios a un servicio o recurso de Java ES se consigue almacenando información específica del usuario en una única entrada de usuario en un depósito o directorio de usuarios. Esa información normalmente incluye datos como una contraseña y un nombre únicos, así como una dirección de correo electrónico, un rol en una organización, preferencias de páginas web, etc. La información de la entrada de usuario puede utilizarse para autenticarlo, autorizar el acceso a recursos específicos u ofrecerle una variedad de servicios.

En el caso de Java Enterprise System, las entradas de los usuarios se almacenan en un directorio proporcionados por Directory Server. Cuando un usuario desea solicitar un servicio que ofrece un componente de Java ES, ese servicio utiliza Access Manager para autenticar al usuario y concederle acceso a los recursos específicos. El servicio solicitado comprueba la información de configuración específica del usuario en la entrada de directorio del usuario. El servicio utiliza dicha información para realizar la tarea solicitada por el usuario.

La siguiente figura ilustra el acceso a las entradas de usuario para realizar la autenticación y autorización del usuario y para proporcionarle servicios.

Figura 3–1 La entrada única de usuario es compatible con varios servicios

El diagrama muestra varios componentes de Java Enterprise System que interactúan con una entrada única de usuario en un directorio.

Mediante este sistema, cuando un usuario web inicia sesión en cualquier servicio de Java ES, se autentica automáticamente en otros servicios del sistema. Esta función, conocida como inicio de sesión único, es una función muy útil que proporciona Java Enterprise System.

Autenticación e inicio de sesión único

Los servicios de autorización y de autenticación de Java ES los proporciona Access Manager. Access Manager usa la información de Directory Server para actuar como intermediario en la interacción de los usuarios con los servicios web de Java ES u otros servicios basados en web de una empresa.

Access Manager también utiliza un componente externo denominado "agente de directivas". El agente de directivas se conecta al servidor web que alberga un servicio o recurso asegurado por Access Manager. El agente de directivas intercede en nombre de Access Manager en solicitudes que realizan los usuarios a los recursos asegurados. Para algunos componentes de Java ES como, por ejemplo, Portal Server y Communications Express, el funcionamiento del agente de directivas lo proporciona el subcomponente Access Manager (consulte Sun Java System Access Manager 7 2005Q4).

Autenticación

Access Manager incluye un servicio de autenticación para comprobar las identidades de los usuarios que solicitan acceso (mediante HTTP o HTTPS) a servicios web dentro de una empresa. Por ejemplo, un empleado de una empresa que necesita buscar el número de teléfono de un compañero utiliza un explorador para ir a la libreta de teléfonos en línea de la empresa. Para iniciar la sesión en el servicio de libreta de teléfonos, el usuario debe proporcionar un Id. de usuario y una contraseña.

La secuencia de autenticación es la que se muestra en la Figura 3–2. Un agente de directivas intercede en la solicitud para acceder a la libreta de teléfonos (1) y envía la solicitud al servicio de autenticación (2). El servicio de autenticación comprueba el Id. de usuario y la contraseña con la información almacenada en Directory Server (3). Si la solicitud de inicio de sesión es válida, el usuario se autentica (4), (5) y (6), y podrá consultar la libreta de teléfonos de la empresa (7). Si la solicitud de inicio de sesión no es válida, se generará un error y el usuario no podrá autenticarse.

El servicio de autenticación también admite la autenticación basada en certificados sobre HTTPS.

Figura 3–2 Secuencia de autenticación

Diagrama que muestra la secuencia de autenticación, que incluye el explorador web, el agente de directivas, el servicio de autenticación, el servicio de sesiones y Directory Server.

Inicio de sesión único

El escenario de autenticación descrito en los párrafos anteriores, pasa por alto un paso importante. Cuando se comprueba la solicitud de autenticación de un usuario, el servicio de sesiones de Access Manager se activa (4), tal y como se muestra en la Figura 3–2. El servicio de sesiones genera un testigo de sesión, que contiene la información sobre la identidad del usuario y un Id. de testigo (5). El testigo de la sesión se devuelve al agente de políticas (6) que lo envía (como una cookie) al explorador (7) desde el que se ha realizado la solicitud de autenticación.

Cuando el usuario autenticado intenta acceder a otro servicio asegurado, el explorador pasa el testigo de sesión al agente de políticas correspondiente. El agente de directivas comprueba con el servicio de sesión que la autenticación anterior del usuario aún es válida, permitiendo que el usuario acceda al segundo servicio sin necesidad de escribir el Id. de usuario y la contraseña de nuevo.

Por lo tanto, un usuario sólo necesita iniciar sesión una vez para autenticarse en los distintos servicios basados en web que ofrece Java Enterprise System. La autenticación mediante el inicio de sesión único sigue en efecto hasta que el usuario cierre la sesión explícitamente o cuando ésta caduque.

Autorización

Access Manager también incluye un servicio de directivas que proporciona control de acceso a los recursos basados en web en un entorno de Java ES. Una directiva es una regla que especifica quién está autorizado a acceder a recursos específicos bajo ciertas condiciones. La secuencia de autorización se muestra en la figura que aparece a continuación.

Figura 3–3 Secuencia de autorización

Diagrama que muestra la secuencia de autorización descrita en el texto, que incluye el explorador web, el agente de políticas, el servicio de políticas y Directory Server.

Cuando un usuario autenticado realiza una solicitud con respecto a recursos asegurados de Access Manager (1), el agente de directivas lo notifica al servicio de directivas (2), el cual utiliza la información de Directory Server (3) para evaluar la directiva de acceso que controla el recurso para ver si el usuario tiene permiso para acceder al recurso en cuestión (4). Si el usuario cuenta con privilegios de acceso (5), se admite la solicitud del recurso (6).

Access Manager proporciona los medios para definir, modificar, conceder, revocar y eliminar directivas en una empresa. Las directivas se almacenan y se configuran en Directory Server mediante atributos relacionados en entradas de organización. También pueden definirse roles para usuarios e incorporarse a definiciones de políticas.

Los agentes de directivas de Access Manager son los que ponen en práctica las directivas. Cuando el servicio de políticas rechaza una solicitud de acceso, el agente de políticas impide el acceso a los recursos asegurados al usuario que lo solicita.