Portainer & Azure AD: Configurer l'authentification unique (SSO)
Portainer est un projet open-source qui offre une interface graphique (Web UI) pour la gestion simplifiée des conteneurs Docker. Dans cet article, nous verrons comment nous authentifier sur cette interface web en utilisant notre compte Office 365/Microsoft 365. Pour ce faire, il nous faudra configurer l’authentification unique dans Azure AD. Ce dernier est un service de gestion des identités et des accès basée sur le cloud. Il fait partie de Microsoft Entra et fournit de nombreuses fonctionnalités dont l’authentification multi-facteur, l’accès conditionnel et notamment l’ authentification unique.
Pré-requis
Pour suivre ce tutoriel, il vous faudra disposer d’une installation fonctionnelle de Portainer et d’un tenant Azure AD.
Configuration dans Azure AD
Nous allons nous connecter sur notre portail Azure et accéder au service Azure Active Directory.
Inscription d’application
Nous allons nommer notre application Portainer
Ici on saisit l’URL pour accéder à notre application Portainer. Pour moi c’est https://portainer.traefik.me
Dès que l’application est inscrite, nous serons redirigés vers l’interface ci-dessous. Il faudra noter l’ ID d’application (client) et l’ID de l’annuaire. Nous en aurons besoin plus tard.
Personnalisation et propriétés
Dans la partie URL de la page d’accueil, on saisit l’URL qui pointe vers notre instance Portainer. Pour moi c’est https://portainer.traefik.me
Ajout d’un secret client
Ici on ajoute un secret d’une durée de validité de 12 mois. Vous pouvez choisir la durée qui vous convient.
Notons la valeur du secret généré, nous en aurons besoin plus tard
Configuration du jeton
Ajoutons les revendications upn et email
Voilà
API autorisées
Dans la section API autorisées, les autorisations suivantes devraient automatiquement être ajoutées. Si ce n’est pas le cas, faites-le manuellement.
Ajoutons en plus, l’autorisation UserAuthenticationMethod.Readet accordons le consentement d’administrateur.
Configuration de Portainer
Nous allons saisir les informations suivantes en remplaçant le TENANT_ID
par l’ID de notre annuaire.
authUrl: https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/authorize
accessTokenUrl: https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token
resourceUrl: https://graph.microsoft.com/v1.0/me
logoutUrl: https://portainer.traefik.me/logout
userIdentifier: userPrincipalName
scopes: profile openid
Le client ID correspond à l’ID d’application (client) obtenu après l’inscription de notre application dans Azure. Et le client secret, correspond à la valeur du secret généré un peu plus tôt.
Demo
Maintenant en accédant à notre application Portainer, nous aurons le choix de nous authentifier avec notre compte Microsoft.
Après avoir saisi nos identifiants de connexion Microsoft, nous sommes invités à accorder notre consentement à la nouvelle application.
On accepte et voilà tout !