Solution WebSSO : OpenAM (anciennement OpenSSO)

 

Le but de cet article est de vous présenter la solution de WebSSO OpenAM de l’éditeur ForgeRock.

OpenAM est la nouvelle appellation de OPENSSO de l’éditeur Sun Microsystems. Lors du rachat de Sun par Oracle, la solution de Web SSO est passée sous le giron de ForgeRock.

Conforme à l’état de l’art en termes de contrôle d’accès Web, Open AM n’impose pas d’installation sur les postes des utilisateurs, la protection est opérée via des agents installés indifféremment sur les serveurs Web ou Reverse-Proxy existants. Open AM est ainsi à même de prendre en charge la protection des infrastructures de type Intranet et Extranet de l’entreprise.

Description fonctionnelle de la solution

Vous trouverez ci-dessous la cinématique de connexion à une application Web protégée par Open AM :

 

Description technique des composants

Les composants web vont permettre à la fois de réaliser le contrôle d’accès (authentification primaire et habilitations) et également de jouer les authentifications secondaires sur les applications.

L’Agent

OpenAM, afin de contrôler les accès aux applications web, introduit entre les utilisateurs et l’application web un agent SSO. Lorsqu’un utilisateur ou une application tente d’accéder à une application web, l’agent intercepte la requête et la redirige vers OpenAM. OpenAM demande à l’utilisateur de s’authentifier à travers, par exemple, un identifiant et un mot de passe. Ce couple est validé auprès du référentiel des identités afin de déterminer l’identité de l’utilisateur. OpenAM évalue ensuite la politique de sécurité à appliquer à cette identité. Une politique de sécurité identifie les utilisateurs autorisés à accéder à une ressource et les conditions sous lesquelles ces autorisations sont valides. Finalement l’évaluation des règles de la politique de sécurité détermine si l’utilisateur est autorisé ou non à accéder à la ressource.

Le service d’authentification

L’authentification est la première étape à effectuer pour déterminer si un utilisateur est autorisé ou non à accéder à une ressource protégée par OpenAM.

Le service d’authentification utilise le référentiel d’authentification pour valider les attributs d’authentification des utilisateurs (login et mot de passe) et retrouver les données du profil. Si l’authentification est correcte, un jeton est généré et l’utilisateur passe à l’état authentifié.

Service de politique de sécurité

Le processus d’autorisation qui s’enclenche à la suite du processus d’authentification évalue les règles associées à la politique de sécurité d’un utilisateur. Il détermine si cet utilisateur est autorisé à accéder à une ressource protégée par OpenAM. Le service de politique de sécurité utilise le référentiel d’identité pour stocker les règles d’évaluation de la politique de sécurité.

Gestion des sessions utilisateurs

Une session utilisateur OpenAM est l’intervalle de temps entre le moment où l’utilisateur se connecte à une ressource protégée et le moment où il se déconnecte de cette ressource. Pendant la session, OpenAM maintient des informations sur les interactions entre l’utilisateur et les applications accédées. OpenAM utilise ces informations lors de l’exécution de règles qui dépendent par exemple du temps de connexion et pour la gestion de l’authentification unique (SSO).

OpenAM permet les types de sessions suivantes :

  • Basic user session. L’utilisateur se connecte puis se déconnecte d’une application;
  • Single sign-on (SSO) session. L’utilisateur fournit ses attributs de connexion une seule fois et se connecte à de multiples applications dans le même domaine DNS sans ré-authentification;
  • Cross-domain SSO session. L’utilisateur s’authentifie une seule fois et accède à de multiples applications sur de multiples domaines DNS sans ré-authentification.

Service de traces

Lorsqu’un utilisateur se connecte à une ressource protégée par OpenAM, le service de traces enregistre des informations sur l’activité de cet utilisateur. Ce service est extensible et permet de générer des rapports d’audits.

 

Exemple d’une architecture technique

OpenAM est entièrement écrit en JAVA, et s’appuie sur les normes standards (HTTP, XML, SAML et SOAP), pour offrir la gestion des accès, les services web sécurisés et la fédération des identités.

Pour accéder à la ressource protégée, le client doit être authentifié et avoir l’autorisation d’accéder à cette ressource. Lorsqu’une personne accède une application Web en http (envoi d’une requête http), un agent SSO intercepte la requête et l’examine. Si aucun jeton de session n’est valide, l’agent contacte le serveur OpenAM qui déroule le processus d’authentification et d’autorisation.

Dans l’architecture décrite ci-dessous, le portail web (extranet) est positionné en mode Proxy. Il intercepte les requêtes et route les informations vers les applications destinataires.
Le processus de SSO est effectué par le Proxy. En effet, il ne se contente pas de router la requête du client vers la bonne machine, mais il altère les requêtes afin de simuler une authentification du client auprès de l’application Web (authentification secondaire).

Le schéma suivant présente cette architecture :

Toutes les requêtes transitent systématiquement par le Proxy. Une fois l’utilisateur authentifié, le Proxy autorise ou non l’accès vers les URL finales.

Les principaux avantages de l’architecture SSO Web Proxy reposent sur :

  • l’installation : Après configuration des postes clients, le passage par le Proxy est directement géré par le protocole HTTP. Il n’est pas nécessaire de modifier les configurations DNS des serveurs (cas du Reverse-Proxy). Ce système n’est donc pas intrusif sur les serveurs,
  • l’architecture : L’ensemble des opérations se situe au niveau du protocole HTTP, ce système de SSO demeure donc indépendant de l’architecture. Après configuration des postes clients, tous les serveurs Web sont potentiellement éligibles, la montée en charge (haute disponibilité) : Afin de tenir compte des contraintes de haute disponibilité, plusieurs proxys peuvent être configurés au niveau du poste utilisateur

Il est possible d’installer un agent SSO sur chaque serveur d’application WEB. Un agent SSO a pour vocation de s’intercaler sur la chaîne de liaison entre le client et le serveur auquel le client cherche à accéder. L’agent intercepte les appels afin de prendre en charge la gestion des authentifications et des autorisations (protection des accès par ressource). Il s’appuie pour cela sur un ou plusieurs serveurs OpenAM.

David G.