Aller au contenu principal

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.