Archives de catégorie : IAM & fédération

OIDC

OIDC en bref (page générée par ChatGPT)

🔐 OpenID Connect (OIDC) est un protocole d’authentification construit sur OAuth 2.0.

  • OAuth2 → autorise une appli à accéder à des ressources pour un utilisateur.
  • OIDC → ajoute la vérification de l’identité de l’utilisateur.

👉 Il permet donc le Single Sign-On (SSO) et la délégation d’authentification (ex. “Se connecter avec Google”).

Continuer la lecture →

Authentification par assertion

La technique de l’authentification basée sur des assertions (ou « claims-based identity ») est un concept extrêmement intéressant sur lequel est basé SAML. Un des principaux attraits de cette technologie est de permettre la fédération d’identité.

Principes

Très concrètement, un système de jetons de sécurité (STS an anglais, pour Security Token Service) permet la gestion de l’identité d’un utilisateur (et de ses droits). Un des grands intérêts de ce concept est de permettre des relations de confiance entre STS, ce qui permet à différents systèmes d’authentification de propager une identité, et donc de créer des fédérations d’identité.

Les briques

Il y a 3 composants dans un tel système :

  • Le fournisseur d’identité, qui est un STS ;
  • Un fédérateur d’identité, qui est aussi un STS ;
  • Une bibliothèque permettant d’utiliser les jetons, au niveau de l’application cible.

Chez Microsoft

Microsoft permet la mise en œuvre d’un tel mécanisme soit dans son propre système d’information, soit dans le cloud.

Attention : L’Active Directory d’Azure est différent de l’Active Directory classique, car ses fonctionnalités sont limitées à celles utiles pour la gestion d’identité. Il n’y a par exemple rien sur la gestion des politiques des postes Windows rattachés, ce qui est une fonctionnalité très importante dans Active Directory.

Dans le cas où on part d’un fournisseur d’identité interne (ex : Windows Server Active Directory with ADFS) pour se connecter à une application externe via Azure Active Directory, on a besoin d’une synchronisation entre le fournisseur d’identité et le fédérateur. ==> A creuser. A contrario, on peut utiliser Azure AD Access Control en tant que fédérateur d’identité, où la synchronisation est inutile, ce qui est beaucoup plus propre.

Voir aussi

SAML

Sources

Vulnérabilités

OAuth

OAuth est un protocole d’authentification permettant de déléguer l’authentification à un service web responsable du compte utilisateur. Il est décrit dans une RFC, la RFC6749.

Comme SAML, le jeton envoyé au service où on veut s’identifier est validé par un procédé cryptographique de signature. Ici, le format est JWT (JSON Web Token), à base de JSON puisque XML était déjà ringard, avant d’être réinventé (en moins bien) en tant que JSON.

L’autorisation est accordée sur un scope précis : il s’agit des actions qu’on peut appeler, comme lire les informations d’un client, les modifier, les supprimer, etc. Cette autorisation est destinée à une audience (= la cible, application ou API) précise, pour une durée déterminée.

Processus

Le client final doit passer par plusieurs étapes (et plusieurs acteurs) avant d’accéder à la ressource.

  1. Il demande au propriétaire de la ressource (resource owner), qui indique si le client est autorisé ou pas à accéder à la ressource demandée.
  2. Avec cette autorisation, le client demande à un serveur d’authentification un jeton d’accès aux ressources souhaitées.
  3. Enfin, avec le jeton d’accès fourni par le serveur d’authentification, il accède à la ressource demandée.

Tout ceci est spécifié dans la RFC6749.

Sources et informations

Voir aussi

IAM

Quelques définitions

Afin d’avoir les idées claires, voici quelques définitions aidant à appréhender la structuration d’une gestion de droits informatiques. Il est également utile d’être à l’aise avec la notion de DICP.

  • Un rôle est un ensemble d’habilitations nécessaires à un type d’utilisation d’une ressource.
  • Un rôle applicatif est un rôle propre à une (et une seule) application.
  • Un profil est un ensemble de rôles, souvent regroupés par métier.
  • L’habilitation est le droit d’effectuer une action sur une ressource, souvent associée à un périmètre (temporel, fonctionnel, géographique). C’est le niveau « unitaire ».

Pour une gestion claire, les rôles ne devraient être liés qu’à des profils, lesquels correspondent généralement à une fonction exercée au sein d’une organisation.

Principes de base

  • Identifier les systèmes et données sensibles
  • Limiter les accès à privilèges
  • Contrôler les utilisateurs et les systèmes

Document de référence

Voir aussi

  • SAML v2.0
  • OAuth 2.0
  • OpenID et OpenID Connect
  • XACML (eXtensible Access Control Markup Language), langage permettant de définir :
    • des autorisations ou des contrôles d’accès basés sur des attributs,
    • des contrôles d’accès à des points de décision (PDP, Policy Decision Point) puis de les transmettre à des points d’application (PEP, Policy Enforcement Point).
  • SCIM (System for Cross-domain Identity Management), système d’échanges de données, d’attributs, entre systèmes externes.

XACML permet par exemple de définir les droits d’un utilisateur chez un fournisseur cloud à partir de son IAM interne.