Présentation technique de Sun Java Enterprise System 5

Services intégrés d'identité et de sécurité

L'une des fonctions importantes de Java ES est la gestion intégrée des identités des utilisateurs et la structure d'autorisation et d'authentification intégrée. Cette section fournit des informations techniques permettant de comprendre les services intégrés d'identité et de sécurité proposés par Java ES.

Identité unique

Au sein d'un environnement Java ES, un utilisateur final possède une seule identité intégrée. En fonction de cette identité unique, un utilisateur peut être autorisé à accéder à certaines ressources, par exemple un portail, des pages Web, ou des services de messagerie, de calendrier ou de messagerie instantanée.

La fonctionnalité d'identité et de sécurité intégrée est basée sur la collaboration étroite entre Directory Server, Access Manager et les autres composants de Java ES.

L'accès d'un utilisateur à un service ou une ressource Java ES est conditionné par le stockage d'informations spécifiques à l'utilisateur dans une entrée utilisateur unique dans un référentiel utilisateur ou un annuaire. En général, ces informations comportent les éléments suivants : nom et mot de passe uniques, adresse électronique, rôle au sein de l'organisation, préférences de pages Web, etc. Les informations de l'entrée utilisateur peuvent être utilisées pour authentifier l'utilisateur, autoriser son accès à des ressources spécifiques ou fournir divers services à cet utilisateur.

Dans le cas de Java ES, les entrées utilisateur sont stockées dans un annuaire fournis par Directory Server. Lorsqu'un utilisateur souhaite demander un service fourni par un composant Java ES, ce service utilise Access Manager pour authentifier l'utilisateur et autoriser l'accès aux ressources spécifiques. Le service demandé vérifie les informations de configuration propres à l'utilisateur qui se trouvent dans l'entrée du répertoire de l'utilisateur. Le service utilise ces informations pour effectuer le travail demandé par l'utilisateur.

La figure suivante illustre l'accès aux entrées utilisateur afin d'effectuer une authentification et une autorisation de l'utilisateur en vue de lui fournir des services.

Figure 3–1 Une entrée utilisateur unique prend en charge de nombreux services

Diagramme représentant plusieurs composants Java Enterprise System en interaction avec l'entrée utilisateur unique d'un répertoire.

L'une des fonctions dérivées de ce système est la capacité d'un utilisateur Web de se connecter à un service Java ES et, ce faisant, d'être authentifié automatiquement auprès des autres services du système. Cette capacité, appelée connexion unique, est une fonction puissante offerte par Java ES.

Authentification et connexion unique

Les services d'autorisation et d'authentification de Java ES sont fournis par Access Manager. Access Manager utilise les informations de Directory Server pour gérer les interactions des utilisateurs avec les services Web de Java ES ou d'autres services Web au sein d'une entreprise.

Access Manager utilise un composant externe appelé agent de stratégie. L'agent de stratégie se connecte au serveur Web qui héberge une ressource ou un service sécurisé par Access Manager. L'agent de stratégie intercède auprès d'Access Manager pour les requêtes adressées par des utilisateurs aux ressources sécurisées. Pour certains composants Java ES, comme Portal Server, les fonctionnalités de l'agent de stratégie sont assurées par un sous-composant Access Manager SDK.

Authentification

Access Manager comporte un service d'authentification permettant de vérifier les identités des utilisateurs qui demandent l'accès (par HTTP ou HTTPS) aux services Web d'une entreprise. Par exemple, un employé qui recherche le numéro de téléphone d'un collègue peut pour cela utiliser un navigateur afin de consulter l'annuaire en ligne de l'entreprise. Pour se connecter au service d'annuaire, l'utilisateur doit saisir un ID utilisateur et un mot de passe.

La séquence d'authentification est illustrée dans la Figure 3–2. Un agent de stratégie reçoit la demande de connexion à l'annuaire (1), puis il l'envoie au service d'authentification (2). Le service d'authentification vérifie l'ID utilisateur et le mot de passe en les comparant aux informations stockées dans Directory Server (3). Si la demande de connexion est valide, l'utilisateur est authentifié (4), (5) et (6), puis l'annuaire de l'entreprise s'affiche (7). Dans le cas contraire, une erreur est générée et l'authentification échoue.

Le service d'authentification prend également en charge l'authentification par certificats via HTTPS.

Figure 3–2 Séquence d'authentification

Diagramme représentant la séquence d'authentification, impliquant le navigateur Web, l'agent de stratégie, le service d'authentification, le service de session et Directory Server.

Connexion unique

Le scénario d'authentification traité dans les paragraphes précédents dissimule une étape importante. Lors de la vérification d'une demande d'authentification d'un utilisateur, le service de session de Access Manager est engagé (4), comme illustré dans la Figure 3–2. Le service de session génère un jeton de session qui détient les informations sur l'identité de l'utilisateur et un ID de jeton (5) Le jeton de session est renvoyé à l'agent de stratégie (6) qui transfère le jeton (sous la forme d'un cookie) vers le navigateur (7) depuis lequel la demande d'authentification a été effectuée.

Si l'utilisateur authentifié essaie d'accéder à un autre service sécurisé, le navigateur transfère le jeton de session à l'agent de stratégie correspondant. Ce dernier vérifie auprès du service de session que l'authentification précédente de l'utilisateur est toujours valide, puis l'utilisateur est autorisé à accéder au service pour la deuxième fois sans avoir à entrer de nouveau son ID utilisateur et son mot de passe.

Par conséquent, il suffit à l'utilisateur de se connecter une seule fois pour être authentifié sur plusieurs services Web fournis par Java ES. L'authentification avec connexion unique reste valide jusqu'à la déconnexion de l'utilisateur ou jusqu'à l'expiration de la session.

Autorisation

Access Manager inclut également un service de stratégie qui assure le contrôle d'accès aux ressources Web au sein d'un environnement Java ES. Une stratégie est une règle indiquant qui est autorisé à accéder à une ressource spécifique et dans quelles conditions. La séquence d'autorisation est illustrée à la figure suivante.

Figure 3–3 Séquence d'autorisation

Diagramme représentant la séquence d'autorisation décrite dans le paragraphe, impliquant le navigateur Web, l'agent de stratégie, le service de stratégie et Directory Server.

Lorsqu'un utilisateur authentifié demande l'accès à une ressource sécurisée avec Access Manager (1), l'agent de stratégie avertit le service de stratégie (2) qui utilise les informations de Directory Server (3) pour évaluer la stratégie d'accès s'appliquant à la ressource et vérifier si l'utilisateur possède les droits d'accès à cette ressource (4). Si l'utilisateur possède des droits d'accès (5), la demande est satisfaite (6).

Access Manager fournit les moyens de définir, modifier, accorder, révoquer et supprimer des stratégies au sein d'une entreprise. Les stratégies sont stockées dans Directory Server et configurées par le biais d'attributs liés aux stratégies dans les entrées d'organisation. Il est également possible de définir des rôles pour les utilisateurs et de les intégrer dans les définitions de stratégies.

Les agents de stratégie Access Manager font appliquer les stratégies. Lorsque le service de stratégie rejette une demande d'accès, l'agent de stratégie empêche l'utilisateur d'accéder aux ressources sécurisées.