Aller au contenu principal
Version: 21.10

Configurer une authentification par OpenId Connect

Centreon est compatible avec l'authentification OAuth 2.0 / OpenId Connect.

Il est possible d'utiliser un fournisseur d'identité (IdP) tel que Microsoft Azure AD, Okta, Keycloak, LemonLDAP::NG ou tout autre IdP compatible avec le flux d'autorisation via un code (Authorization Code Grant).

L'authentification se paramètre à la page Administration > Paramètres > Centreon web, section Authentication by OpenId Connect.

  • La case Enable OpenId Connect authentication permet d'activer ou de désactiver l'authentification OpenId Connect.
  • Le champ Authentication mode indique si l'authentification doit avoir lieu uniquement par OpenId Connect ou en utilisant également l'authentification locale (mixte).
  • Le champ Trusted client addresses indique quelles sont les adresses IP/DNS des clients de confiance (correspond à l'adresse du reverse proxy). Chaque client de confiance est séparé par une virgule.
  • Le champ Blacklist client addresses indique quelles sont les adresses IP/DNS des clients qui seront refusés.
  • Le champ Base Url définit l'URL de base de l'IdP pour les points de terminaison OpenId Connect (obligatoire).
  • Le champ Authorization Endpoint définit le point de terminaison d'autorisation, par exemple /authorize (obligatoire).
  • Le champ Token Endpoint définit le point de terminaison du jeton, par exemple /token (obligatoire).
  • Le champ Introspection Token Endpoint définit le point de terminaison du jeton d'introspection, par exemple /introspect (obligatoire).
  • Le champ User Information Endpoint définit le point de terminaison des informations utilisateur, par exemple /userinfo.
  • Le champ End Session Endpoint définit le point de terminaison de déconnexion, par exemple /logout.
  • Le champ Scope définit la portée de l'IdP, par exemple «openid». Portée séparée par espace.
  • Le champ Login claim value définit la variable qui est renvoyée par les points de terminaison Introspection Token Endpoint ou User Information Endpoint pour authentifier l'utilisateur. Par exemple sub ou email.
  • La case Redirect Url définit l'URL de redirection après connexion pour accéder à votre serveur Centreon, par exemple https://192.168.0.1/centreon/index.php.
  • Client ID défini l'ID client.
  • Client Secret défini le secret client.
  • La case Use Basic Auth for Token Endpoint Authentication oblige à utiliser la méthode Authorization: Basic.
  • Disable SSL verify peer permet de désactiver la validation des pairs SSL, ne doit être utilisé que pour des tests

image

Selon le fournisseur d'identité, il est nécessaire de saisir plusieurs portées (scope) afin de récupérer la valeur (claim) qui identifiera l'utilisateur. Ceci est indiqué dans la documentation de configuration du fournisseur.

Il est possible de définir une URL complète pour les points de terminaison au cas où la base de l'URL est différente des autres.

Il est possible de ne pas spécifier le champ Redirect Url, dans ce cas, le serveur Centreon enverra au fournisseur de service sa propre URL.

Si vous souhaitez importer automatiquement l'utilisateur après la connexion, vous pouvez configurer un serveur LDAP et activer l'importation automatique. Assurez-vous que "l'attribut de connexion" de la configuration LDAP sera identique à la "valeur de la demande de connexion".

Vous pouvez activer Authentification debug via le menu Administration > Parameters > Debug pour comprendre les échecs d'authentification et améliorer votre configuration.

Exemples de configuration​

Voici un exemple de configuration pour Microsoft Azure Active Directory:

ChampsValeurs
Base Urlhttps://login.microsoftonline.com/${tenantId}/oauth2/v2.0
Authorization Endpoint/authorize
Token Endpoint/token
Introspection Token Endpoint/introspect
User Information Endpointhttps://graph.microsoft.com/oidc/userinfo
End Session Endpoint
Scopeopenid
Login claim valueemail
Redirect Urlhttps://${ipCentreon}/centreon/index.php
Client ID${clientId}
Client Secret${clientSecret}

Veuillez remplacer ${tenantId}, ${ipCentreon}, ${clientId} et ${clientSecret} par vos propres valeurs.