Gestion des identités et des mots de passe

Il existe diverses manières pour gérer les accès d’identités à des systèmes et des applications. Nous allons voir certaines solutions fonctionnelles avec des exemples d’implémentations par des éditeurs.  Il ne faut jamais oublier que les éditeurs font ce qu’ils veulent des recommandations techniques et des normes, si bien qu’il peut être difficile de comprendre les concepts génériques sous-jacents par la description technique de la solution.

Quelques rappels sur les bases de la gestion des accès

On parle d’entités pour désigner les composants qui s’authentifient (entités actives) et celles qui sont accédées (entités passives). Ces entités portent des noms variés selon le modèle de gestion d’accès. Par exemple, dans le monde Kerberos, les entités sont toutes appelées des « principals ».
On parle également de sujet et d’objet. Le sujet est l’entité active correctement authentifiée. L’objet est la ressource sur laquelle s’exerce un accès. La description des rapports entre un sujet et l’objet c’est une autorisation d’accès qui comprend du côté du sujet les droits d’accès et du côté de l’objet/ressource les permissions d’accès.
L’autorisation d’accès est parfois appelé « credential » et peut prendre la forme d’un token (jeton d’accès) qui est propagé du sujet à l’objet ou encore de l’autorité centrale à l’objet.

En France , il est courant d’utiliser le terme d’habilitation qui signifie tour à tour des droits d’accès ou des permissions. Le terme habilitation doit être réservé au domaine militaire et au modèle MAC pour désigner le « droit d’en connaître » (need-to-know) ou comme traduction du terme anglais « clearance ». Par extension, l’habilitation doit être vue comme une simple autorisation. Si cela est possible, il vaut mieux ne pas utiliser le terme du tout.
On peut lire ou entendre également le terme de « juridiction », normalement réservé au domaine juridique : compétence spécifique d’un juge ou d’un tribunal. En informatique, il semble vouloir désigner les fonctions et les rôles organisationnels pour lesquels on peut décrire des droits d’accès et des permissions associés. Cela correspondrait aux rôles du modèle de gestion d’accès RBAC (Role-Based Access Control). Mis à part dans certains systèmes de bases de données, le RBAC est peu implémenté.

Il existe tout un tas de modèles de contrôle d’accès, par exemple : basé sur des identités (IBAC ou Identity-Based Access Control, GBAC ou Group-Based Access Control, le plus courant utilisant des mots de passe), basé sur des rôles et fonctions (RBAC ou Role-Based Access Control), basé sur des attributs du sujet (ABAC ou Attribute-Based Access Control).

 Single-Sign-On (SSO) ou Enterprise Single-Sign-On (ESSO) – Authentification unique sur le réseau d’entreprise

Kerberos et son implémentation par Microsoft dans les Active Directories est un exemple de SSO. Cela nécessite une infrastructure avec une autorité centrale et un système de jetons (token ou ticket dans le cas de Kerberos). L’utilisateur s’authentifie une seule fois sur le réseau (domaine Microsoft ou realm de Kerberos) et l’autorisation d’accès lui est donnée pour un temps donné durant lequel il n’aura pas besoin de s’authentifier à nouveau, d’où le nom de cette technologie.
L’agent SSO est installé sur le poste client et évite que le mot de passe ne transite sur le réseau.
Il faut veiller à offrir de la résilience pour ne pas que l’autorité centrale ne devienne un point unique de défaillance (Single Point of Failure, SPF), interrompant tout accès aux ressources. Par ailleurs, une ESSO reposant sur une gestion de clé de chiffrement (souvent symétriques), la sécurité de ces clés est primordiale.

WebSSO – Authentification unique via Internet

Un agent est installé sur chaque serveur web. Lorsqu’un utilisateur tente d’y accéder, son navigateur est redirigé vers la page d’authentification centrale (autorité, comme dans le cas de Kerberos). Si l’utilisateur a déjà été authentifié avec succès, l’agent recevra les droits d’accès associés (credentials) sans demander une nouvelle authentification.

Use Your Own Identity (UYOI)

De plus en plus présent sur Internet, les fournisseurs de réseaux sociaux populaires permettent aux utilisateurs de se connecter à divers serveurs web en utilisant l’une de ses « identités sociales » (Facebook, Google).

Federated Access (Fédération d’accès)

C’est permettre à des utilisateurs de pouvoir s’authentifier de manière implicite à des ressources localisées dans des domaines de sécurité distincts. Plusieurs technologie permettent cela, les relations de confiance croisée (cross-trust) entre domaines Microsoft en font partie. Cela suppose la propagation des autorisations d’un domaine et d’une autorité à l’autre.