Configurer l'authentification via un fournisseur OIDC sur un OVHcloud Managed Private Registry
Découvrez comment configurer l'authentification via un fournisseur OIDC sur un OVHcloud Managed Private Registry
Objectif
Le service OVHcloud Managed Private Registry, un registre cloud native basé sur Harbor, vous permet de stocker, gérer et consulter vos images de conteneurs (artefacts OCI) et vos charts Helm.
Par défaut, pour vous connecter à vos registres privés OVHcloud Managed Private Registry, vous devez générer des identifiants (depuis l'espace client OVHcloud, l'APIv6 ou Terraform), puis vous connecter avec cet utilisateur et administrer les autres utilisateurs dans l'interface Harbor.
Vous pouvez cependant configurer un fournisseur Open ID Connect (OIDC), tel que Keycloak, pour l'authentification de votre OVHcloud Managed Private Registry.
- Tout d'abord, qu'est-ce qu'OIDC ?
OIDC signifie OpenID Connect. Il s'agit d'un standard ouvert et d'un protocole d'authentification décentralisé. Ce protocole permet de vérifier l'identité de l'utilisateur lorsque celui-ci tente d'accéder à un endpoint HTTPS protégé.
Il existe plusieurs fournisseurs OpenID Connect, comme Dex, Keycloak, Okta ou un fournisseur SaaS. Harbor les prend tous en charge. Dans ce tutoriel, nous utiliserons Keycloak.
- Qu'est-ce que Keycloak ?
Keycloak est une solution open source d'Identity and Access Management destinée aux applications et services modernes. Elle facilite la sécurisation des applications et des services avec peu ou pas de code. Vous trouverez davantage d'informations ici : documentation officielle de Keycloak.
Ce guide explique comment configurer l'authentification de votre service OVHcloud Managed Private Registry afin d'utiliser un fournisseur OIDC.
Prérequis
- Un OVHcloud Managed Private Registry.
- L'URL et le login/mot de passe de votre registre privé.
- Un fournisseur OIDC, comme une instance Keycloak, ainsi que les identifiants permettant d'y accéder.
Suivez le guide officiel si vous souhaitez installer Keycloak sur un cluster OVHcloud Managed Kubernetes.
En pratique
Configurer le fournisseur OIDC via l'API
L'API Explorer
Pour simplifier les choses, nous utilisons l'API Explorer, qui permet d'explorer, de découvrir et d'interagir avec l'API de manière interactive.
Si vous accédez à la section Container Registry de l'API Explorer, vous verrez les endpoints disponibles, tels que :
Endpoints d'API
- Configurer un fournisseur OIDC pour votre OVHcloud Managed Private Registry :
Effectuez une requête HTTP POST et renseignez les champs avec les informations du fournisseur Keycloak/OIDC.
Entrée :
Résultat :
Consultez la documentation Harbor pour connaître le détail des informations nécessaires.
Si vous oubliez d'activer l'option deleteUsers, vous obtiendrez l'erreur suivante : { "class": "Client::BadRequest", "message": "4 users exist, set parameter deleteUsers to delete them" }. En effet, lorsqu'un nouveau registre privé est créé, plusieurs utilisateurs sont créés. Vous devez donc activer l'option deleteUsers afin de supprimer les utilisateurs locaux existants et d'activer l'authentification OIDC.
Accédez maintenant à l'interface Harbor. De nouveaux boutons doivent apparaître, notamment Login via OIDC provider :
Lorsque vous cliquez sur le bouton Login via OIDC provider, vous êtes redirigé vers l'interface Keycloak.
Si vous n'activez pas le champ autoOnboard, une fenêtre doit apparaître dans l'interface Harbor pour vous demander de renseigner le nom d'utilisateur.
Lorsque cette option est cochée, l'attribut UserClaim doit être défini : Harbor lira la valeur de ce claim dans le jeton d'identité et l'utilisera comme nom d'utilisateur lors de l'enrôlement de l'utilisateur.
Cliquez sur le bouton Save pour vous connecter enfin à Harbor avec le fournisseur OIDC.
- Récupérer la configuration OIDC d'un registre existant :
Entrée :
Résultat :
- Mettre à jour le fournisseur OIDC d'un registre existant :
Avec cet endpoint d'API, nous pouvons par exemple ajouter les champs adminGroup et groupsClaim.
Lorsqu'un adminGroup est configuré, tous les utilisateurs appartenant à ce groupe disposent des droits d'administration sur Harbor.
Récupérez d'abord les informations relatives aux groupes dans Keycloak :
Vérifiez que le groupe contient au moins un membre :
Mettez ensuite la configuration à jour avec une requête PUT.
Résultat :
- Lister les utilisateurs
Lorsque vous vous connectez à l'interface Harbor avec un utilisateur issu d'un fournisseur OIDC, cet utilisateur est enregistré. Utilisez cet endpoint d'API pour lister les utilisateurs :
Entrée :
Résultat :
- Définir un utilisateur comme administrateur
Par défaut, un utilisateur créé dans un fournisseur OIDC ne dispose pas des droits d'administration. Pour accorder ces droits à un utilisateur, utilisez l'appel PUT suivant :
Entrée :
Résultat :
La réponse sera vide, mais vous devriez obtenir un code de statut HTTP 2xx indiquant que tout s'est déroulé correctement.
Lorsque vous vous reconnectez avec cet utilisateur, vous êtes désormais administrateur.
- Supprimer la configuration OIDC d'un registre existant :
Si vous souhaitez supprimer l'authentification avec la configuration OIDC, exécutez une action DELETE dans l'API :
Entrée :
Résultat :
La réponse sera vide, mais vous devriez obtenir un code de statut HTTP 2xx indiquant que tout s'est déroulé correctement.
Cette requête supprimera tous les utilisateurs.
Vous pouvez générer de nouveau les identifiants des utilisateurs depuis l'espace client OVHcloud, l'APIv6 ou Terraform, puis vous connecter avec ces nouveaux identifiants locaux.
Aller plus loin
Pour obtenir une vue d'ensemble du service OVHcloud Managed Private Registry, consultez la documentation OVHcloud Managed Private Registry.
-
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
-
Échangez avec notre communauté d'utilisateurs.