Mise en cache des fournisseurs oidc pour améliorer les performances #48

Merged
wpetit merged 1 commits from issue-47 into develop 2025-03-07 13:42:41 +01:00
Owner

Description

Cette pull request vise à améliorer les performances de l'authentification OIDC en mettant en cache les fournisseurs OIDC. Actuellement, chaque requête d'authentification entraîne la création d'un nouveau fournisseur OIDC, ce qui peut générer une charge importante sur l'endpoint d'auto-configuration du serveur Ory Hydra. En stockant les fournisseurs OIDC dans un cache pour une période déterminée, nous pouvons réduire le nombre de requêtes à cet endpoint et améliorer les performances globales du système.

Lié à #47.

Changements

Les changements apportés dans cette pull request incluent :

  • La création d'un cache pour stocker les fournisseurs OIDC, basé sur une carte (map) où la clé est l'URL de l'émetteur et la valeur est le fournisseur OIDC correspondant.
  • La modification de la méthode getClient() pour vérifier si un fournisseur pour l'URL d'émetteur donnée est déjà présent dans le cache avant de créer un nouveau fournisseur OIDC.
  • La gestion de la durée de vie du cache pour éviter que les fournisseurs OIDC ne restent en cache indéfiniment.
  • La gestion des erreurs qui pourraient survenir lors de la création d'un fournisseur OIDC ou lors de l'accès au cache.

Les principaux fichiers modifiés sont :

  • internal/proxy/director/layer/authn/oidc/authenticator.go : modification de la méthode getClient() pour utiliser le cache.
  • internal/proxy/director/layer/authn/oidc/layer.go : ajout de la configuration du cache pour les fournisseurs OIDC.
  • internal/proxy/director/layer/authn/oidc/options.go : ajout de l'option OIDCProviderCacheTimeout pour configurer la durée de vie du cache.
  • internal/setup/authn_oidc_layer.go : mise à jour de la configuration de l'authentification OIDC pour utiliser le cache.

Ces changements visent à améliorer les performances et la scalabilité de l'authentification OIDC en réduisant la charge sur l'endpoint d'auto-configuration du serveur Ory Hydra.

## Description Cette pull request vise à améliorer les performances de l'authentification OIDC en mettant en cache les fournisseurs OIDC. Actuellement, chaque requête d'authentification entraîne la création d'un nouveau fournisseur OIDC, ce qui peut générer une charge importante sur l'endpoint d'auto-configuration du serveur Ory Hydra. En stockant les fournisseurs OIDC dans un cache pour une période déterminée, nous pouvons réduire le nombre de requêtes à cet endpoint et améliorer les performances globales du système. Lié à #47. ## Changements Les changements apportés dans cette pull request incluent : * La création d'un cache pour stocker les fournisseurs OIDC, basé sur une carte (`map`) où la clé est l'URL de l'émetteur et la valeur est le fournisseur OIDC correspondant. * La modification de la méthode `getClient()` pour vérifier si un fournisseur pour l'URL d'émetteur donnée est déjà présent dans le cache avant de créer un nouveau fournisseur OIDC. * La gestion de la durée de vie du cache pour éviter que les fournisseurs OIDC ne restent en cache indéfiniment. * La gestion des erreurs qui pourraient survenir lors de la création d'un fournisseur OIDC ou lors de l'accès au cache. Les principaux fichiers modifiés sont : * `internal/proxy/director/layer/authn/oidc/authenticator.go` : modification de la méthode `getClient()` pour utiliser le cache. * `internal/proxy/director/layer/authn/oidc/layer.go` : ajout de la configuration du cache pour les fournisseurs OIDC. * `internal/proxy/director/layer/authn/oidc/options.go` : ajout de l'option `OIDCProviderCacheTimeout` pour configurer la durée de vie du cache. * `internal/setup/authn_oidc_layer.go` : mise à jour de la configuration de l'authentification OIDC pour utiliser le cache. Ces changements visent à améliorer les performances et la scalabilité de l'authentification OIDC en réduisant la charge sur l'endpoint d'auto-configuration du serveur Ory Hydra.
wpetit changed title from feat: cache oidc.Provider to reduce pressure on OIDC identity provider (#47) to Mise en cache des fournisseurs oidc pour améliorer les performances 2025-03-07 10:13:11 +01:00
wpetit force-pushed issue-47 from 9d506b58d9 to 2df74bad4f 2025-03-07 11:15:31 +01:00 Compare
lgourvenec approved these changes 2025-03-07 11:54:34 +01:00
lgourvenec left a comment
Owner

Test OK en local.
Renouvellement au bout d'une heure OK
Erreur en cas d'hydra non disponible OK

Test OK en local. Renouvellement au bout d'une heure OK Erreur en cas d'hydra non disponible OK
wpetit merged commit ac7b7e8189 into develop 2025-03-07 13:42:41 +01:00
wpetit deleted branch issue-47 2025-03-07 13:42:42 +01:00
Sign in to join this conversation.
No description provided.