Qu’est-ce qu’un fournisseur d’identité (IdP) ?
Dans le domaine de Gestion des identités et des accès (Identity and access management, IAM) , un fournisseur d’identité (IdP) est le service central pour la gestion des identités. Il est responsable d’authentifier les utilisateurs, d’émettre des tokens d’identité et de fournir des informations sur les utilisateurs aux fournisseurs de services (par exemple, applications, services, API).
En plus de Authentification (Authentication) , les fournisseurs d’identité modernes sont également responsables de Autorisation (Authorization) (application des politiques de Contrôle d'accès ) et du support de fonctionnalités avancées telles que Authentification unique (Single sign-on, SSO) et Multi-location (Multi-tenancy) .
Normes des fournisseurs d’identité
En raison de la nature de la gestion des identités et de la nécessité d’interopérabilité, il serait impraticable et inefficace de créer des fournisseurs d’identité sans normes. Voici quelques scénarios typiques :
- Deux fournisseurs d’identité doivent communiquer entre eux pour échanger des informations sur les utilisateurs (par exemple, connexion sociale).
- Une application doit authentifier les utilisateurs en utilisant plusieurs fournisseurs d’identité (par exemple, identité fédérée).
- Un fournisseur d’identité doit prendre en charge plusieurs types de clients (par exemple, web, mobile, IoT).
Pour répondre à ces scénarios, l’industrie a développé plusieurs normes populaires pour les fournisseurs d’identité :
- OAuth 2.0 : Un cadre d’autorisation largement utilisé qui permet aux applications d’obtenir un accès au nom des utilisateurs ou des services.
- OpenID Connect (OIDC) : Une couche d’identité construite sur OAuth 2.0 qui fournit l’authentification et les informations des utilisateurs.
- Langage de balisage pour les assertions de sécurité (Security Assertion Markup Language, SAML) : Une norme pour échanger des données d’authentification et d’autorisation entre domaines de sécurité.
Pour les nouvelles applications, OpenID Connect (OIDC) est la norme recommandée à utiliser, que ce soit pour créer un fournisseur d’identité ou pour s’intégrer à des fournisseurs d’identité existants.
Architecture du fournisseur d’identité
Le terme “fournisseur d’identité” ne spécifie pas une architecture ou une implémentation particulière. Autrement dit, un fournisseur d’identité peut également être une application monolithique, un microservice ou un service cloud.
En raison de la complexité et de la criticité de la gestion des identités, les applications modernes ont tendance à utiliser des fournisseurs d’identité spécialisés qui sont des services autonomes ou des solutions de fournisseurs.
Fonctionnalités des fournisseurs d’identité
Les fournisseurs d’identité modernes offrent un large éventail de fonctionnalités pour prendre en charge divers cas d’utilisation et exigences. Voici quelques fonctionnalités courantes :
- Authentification (Authentication) : Vérifier l’identité des utilisateurs en utilisant diverses méthodes (par exemple, nom d’utilisateur/mot de passe, connexion sociale, Authentification multi-facteurs (Multi-factor authentication, MFA) ).
- Autorisation (Authorization) : Appliquer des politiques de contrôle d’accès et gérer les permissions des utilisateurs (par exemple, Contrôle d'accès basé sur les rôles (RBAC) , Contrôle d'accès basé sur les attributs (Atrribute-based access control, ABAC) ).
- Gestion des utilisateurs : Créer, mettre à jour et supprimer des comptes et profils d’utilisateurs ; fournir des données utilisateurs aux fournisseurs de services .
- Gestion des tokens : Émettre et gérer des tokens d’identité (par exemple, ID token, access token, refresh token).
- Authentification unique (Single sign-on, SSO) : Permettre aux utilisateurs de s’authentifier une fois et d’accéder à plusieurs applications.
- Multi-location (Multi-tenancy) : Prendre en charge plusieurs organisations ou locataires avec données et configurations utilisateur isolées.