Sécurité dans le cloud : OpenID Connect (OIDC) pour la gestion des identités numériques

Connaissances

8 min

lire

Dans cet article, nous allons explorer OpenID Connect (OIDC) et la façon dont il s'est imposé comme une solution essentielle pour relever les défis de la gestion des identités numériques et de la cybersécurité. Rejoignez-nous pour simplifier l'OIDC, en explorant son fonctionnement, ses avantages et notre retour d'expérience suite à sa mise en œuvre réussie avec nos clients, visant à atténuer les risques associés au partage d'informations d'identification à long terme et à la fuite potentielle d'informations aussi sensibles.

I. Qu'est-ce que l'OIDC ?

OpenID Connect (OIDC) est un protocole d'authentification basé sur la norme OAuth 2.0.

Alors qu'OAuth se concentre sur l'autorisation, OIDC introduit une couche de sécurité supplémentaire en permettant l'authentification. Il permet aux clients[1] d'authentifier les utilisateurs et de recevoir une confirmation de leur identité via un ID Token.

Reconnu pour son approche centrée sur l'utilisateur et sa facilité d'intégration dans les systèmes d'authentification existants, l'OIDC marque une évolution importante dans la gestion des identités numériques, offrant un mécanisme plus sécurisé et standardisé.

Les composants clés sont :

  1. ID Token: Jeton de sécurité au format JSON contenant l'identité de l'utilisateur et signé par le serveur d'authentification.
  2. UserInfo Endpoint: Service permettant d'obtenir des informations sur l'utilisateur après une authentification réussie.
  3. Discovery DocumentUn document JSON avec les métadonnées nécessaires pour les interactions client-serveur.
  4. Dynamic Client RegistrationUn processus permettant à un client de s'enregistrer auprès d'un serveur OIDC.

II. Fonctionnement général

‍Types de "Grants"

L'OIDC permet à un client, tel qu'une application web ou mobile, de vérifier l'identité de l'utilisateur et d'obtenir des informations de base sur son profil par l'intermédiaire d'un serveur d'authentification de confiance. Il utilise différents types de subventions pour faciliter les différents flux d'autorisation.

<span>Un "grant" dans ce contexte se réfère à une méthode ou un mécanisme par lequel une application obtient l'autorisation d'accéder à certaines ressources ou données. Chaque type de grant offre une approche différente pour obtenir cette autorisation, en fonction du contexte et des besoins de sécurité de l'application</span><br>

Les principaux types de grants sont les suivants :

Ces types de grants permettent différents scénarios d'authentification et d'autorisation des utilisateurs, répondant à une variété de types d'applications et d'exigences de sécurité.

Tokens

L'OIDC utilise des tokens pour faciliter l'authentification et l'autorisation dans les applications et services.  Les principaux tokens sont des jetons d'identification (ID Token) et d'accès (Access Token) :


Voici un exemple d'un token OIDC au format JSON :

Jeton OIDC au format JSON

Ce token comprend des champs standard tels que l'émetteur (iss), le sujet (sub), l'audience (aud), l'heure d'expiration (exp) et l'heure d'émission (iat), ainsi que des informations spécifiques à l'utilisateur telles que le nom et l'adresse électronique.

Découverte (Discovery)

OIDC (OpenID Connect) offre un mécanisme de découverte, une fonctionnalité essentielle pour faciliter l'interaction automatique entre les clients (comme les applications web ou mobiles) et le serveur d'authentification.

Voici quelques points clés de ce mécanisme de découverte de l'OIDC :

  1. Discovery Endpoint : Permet la récupération automatique de la configuration du serveur OIDC via un point d'accès standardisé.
  2. Récupération des métadonnées : Obtient automatiquement les URL et les configurations du serveur OIDC pour simplifier l'intégration du client.
  3. Clés publiques : Fournit les clés publiques du serveur pour la vérification sécurisée des signatures des tokens.


Sécurité et validation des tokens 

La sécurité de l'OIDC est assurée par des mécanismes rigoureux de validation des tokens. Les clients [1] doivent non seulement vérifier la signature des tokens, mais aussi s'assurer que le token est destiné à leur utilisation (en vérifiant le champ aud du token), que l'utilisateur est bien celui indiqué dans le token (en vérifiant le champ sub du token) et que le token n'a pas expiré (champs exp).


Exemple : Flux d'authentification OIDC entre GitHub Actions et AWS

Dans le contexte de l'intégration entre GitHub Actions et AWS via OIDC, le "Client Credentials Grant" est un mécanisme par lequel GitHub Actions s'authentifie auprès d'AWS en tant que client. Cela permet à GitHub Actions d'obtenir des identifiants AWS temporaires pour accéder aux ressources nécessaires sans avoir à stocker de manière permanente des clés d'accès AWS (à long terme) dans les configurations GitHub.

  1. Déclenchement d'un pipeline GitHub : Lorsqu'un pipeline GitHub est déclenché, GitHub récupère les informations d'identification à l'aide de l'action aws-actions/configure-aws-credentials. Cette action nécessite le paramètre role-to-assume. Elle met en œuvre la chaîne de résolution des informations d'identification du SDK AWS.

OIDC-github-action-yaml

  1. Demande d'identifiants à AWS IAM : La demande d'identifiant arrive chez le fournisseur d'identité d'AWS IAM. Ce fournisseur fait confiance à GitHub via des certificats, établissant ainsi une relation de fédération entre GitHub et AWS[source].
  2. Autorisation et attribution d'identifiants temporaires : Si autorisé, GitHub reçoit en retour des clés d'accès et un ID temporaires et peut alors assumer le rôle spécifié dans role-to-assume. GitHub Actions peut accéder aux ressources AWS nécessaires selon les permissions définies dans le rôle IAM[source].
Flux de travail de l'OIDC

III. Avantages

1. Authentification sans mot de passe

L'intégration d'OIDC marque un tournant vers une authentification sans mot de passe, privilégiant une sécurité accrue et une meilleure expérience utilisateur. Les mots de passe, souvent susceptibles d'être compromis, cèdent la place aux tokens d'authentification et aux assertions d'identité qu'OIDC utilise pour une expérience utilisateur plus sûre et transparente.

2. La sécurité

L'impact sur la sécurité des systèmes informatiques est important :

  1. Centralisation de la gestion des identités : L'OIDC centralise la gestion de l'identité, réduisant ainsi la complexité et les risques associés à la gestion de multiples systèmes d'authentification.
  2. Délégation de l'authentification : En déléguant l'authentification à des fournisseurs de services de confiance, les organisations limitent les risques de failles de sécurité internes.
  3. Tokens à durée de vie limitée : L'utilisation de tokens temporaires diminue le risque de compromission à long terme des identifiants, car même si un token est intercepté, il ne sera valide que pour une courte période.

3. Réglementations

L'adoption d'OpenID Connect (OIDC) aide les entreprises à se conformer aux réglementations en matière de protection des données, telles que le GDPR, de deux manières principales :

  1. Réduction de la gestion des données d'identité : OIDC diminue la nécessité de stocker et de gérer des données d'identité sensibles, alignant les pratiques avec les principes de minimisation des données du RGPD.
  2. Sécurité des données renforcée : En utilisant des tokens sécurisés et une authentification robuste, OIDC renforce la protection des données personnelles, un aspect clé de la conformité au RGPD.

4. Gestion centralisée des identités

L'adoption d'OpenID Connect (OIDC) offre une approche centralisée de la gestion des identités au sein des entreprises. Cela simplifie la gestion des utilisateurs en réduisant la complexité inhérente à la gestion de multiples systèmes d'authentification. De plus, en déléguant l'authentification à des fournisseurs de services de confiance, les organisations minimisent les risques de failles de sécurité internes.

5. L'intégration

Outre les avantages déjà mentionnés de l'intégration de l'OIDC, voici d'autres points avantageux à prendre en considération :

En résumé, l'OIDC contribue à une architecture de sécurité plus robuste, plus sûre et plus facile à gérer dans les systèmes informatiques modernes.

IV. Retour d'expérience

L'intégration d'AWS et de GitHub via OIDC est un cas d'usage courant visant à automatiser et à sécuriser le déploiement d'applications dans le cloud AWS depuis les pipelines CI/CD de  GitHub Actions.


Setup

    1. Configuration d'OIDC sur AWS :

   2. Configuration des GitHub Actions :


La configuration initiale de l'intégration entre AWS et GitHub est relativement simple. Néanmoins, la partie la plus critique et complexe concerne la configuration appropriée des rôles IAM. Il est essentiel de définir précisément la condition token.actions.githubusercontent.com:sub pour limiter spécifiquement les organisations, dépôts ou branches GitHub qui peuvent assumer ce rôle. Cette configuration est essentielle pour garantir une sécurité adéquate.

En ce qui concerne la configuration des GitHub Actions, la mise en place des permissions est simple :

permissions des actions github

Source : Configuration d'OpenID Connect dans Amazon Web Services - GitHub Docs

V. Conclusion

OIDC est un choix stratégique pour les entreprises qui souhaitent renforcer la sécurité de leurs infrastructures informatiques. C'est une solution complète qui intègre à la fois l'authentification et l'autorisation, <span>et facilite ainsi le développement d'applications sécurisées et respectueuses des réglementations en vigueur comme le RGPD.</span>

Les principaux avantages de l'OIDC sont les suivants:

Lexique

[1] Un client OIDC (OpenID Connect) est une application ou un service qui interagit avec un fournisseur d'identité (IDP) en utilisant le protocole OIDC pour authentifier les utilisateurs.

[2] Un fournisseur d'identité (Identity Provider) est un système ou un service qui authentifie les utilisateurs et fournit des informations d'identification aux applications et aux services.

Merci d'avoir lu cet article. Nous espérons qu'il vous a plu !

Contactez-nous pour plus d'informations sur notre accompagnement et notre expertise !