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).

Configurer l'authentification OpenID Connect​

L'authentification se paramètre à la page Administration > Authentification > Configuration OpenId Connect.

Étape 1 : Activer l'authentification​

Activez l'authentification OpenID Connect :

  • Activer l'authentification OpenID Connect : active/dĂ©sactive l'authentification OpenId Connect.
  • Mode d'authentification : indique si l'authentification doit se faire uniquement par OpenId Connect ou en utilisant Ă©galement l'authentification locale (Mixte). En mode mixte, des utilisateurs créés manuellement dans Centreon (et non identifiĂ©s par OpenID) pourront Ă©galement se connecter.

Lors du paramétrage, il est recommandé d'activer le mode "mixte". Cela vous permettra de garder l'accès au compte local admin en cas de configuration erronée.

Étape 2 : Configurer les informations d'accès au fournisseur d'identité​

Renseignez les informations du fournisseur d'identité :

  • URL de base : dĂ©finit l'URL de base du fournisseur d'identitĂ© pour les points d'entrĂ©e OpenId Connect (obligatoire).
  • Point d'entrĂ©e d'autorisation : dĂ©finit le point d'entrĂ©e d'autorisation, par exemple /authorize (obligatoire).
  • Point d'entrĂ©e de jeton : dĂ©finit le point d'entrĂ©e du jeton, par exemple /token (obligatoire).
  • Identifiant client : dĂ©finit l'ID client (obligatoire).
  • Secret de client : dĂ©finit le secret client (obligatoire).
  • PortĂ©es : dĂ©finit la portĂ©e du fournisseur d'identitĂ©, par exemple openid. SĂ©parez diffĂ©rentes portĂ©es par des espaces.

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

  • Valeur de la dĂ©claration de connexion : dĂ©finit quelle variable renvoyĂ©e par les points d'entrĂ©e Point d'entrĂ©e de jeton d'introspection ou Point d'entrĂ©e d'information utilisateur doit ĂŞtre utilisĂ©e pour authentifier l'utilisateur. Par exemple sub ou email.
  • Point d'entrĂ©e de fin de session : dĂ©finit le point d'entrĂ©e de dĂ©connexion, par exemple /logout.

Suivant votre fournisseur d'identité, définissez l'un ou l'autre des deux endpoints suivants :

  • Point d'entrĂ©e de jeton d'introspection : dĂ©finit le point d'entrĂ©e du jeton d'introspection, par exemple /introspect (obligatoire).
  • Point d'entrĂ©e d'information utilisateur : dĂ©finit le point d'entrĂ©e des informations utilisateur, par exemple /userinfo.

Vous pouvez également configurer :

  • Utiliser l'authentification basique pour l'authentification du point d'entrĂ©e de jeton : si cette option est activĂ©e, la mĂ©thode Authorization: Basic sera utilisĂ©e. Activez cette option si votre fournisseur d'identitĂ© le demande.
  • DĂ©sactiver la vĂ©rification du pair : permet de dĂ©sactiver la validation des pairs SSL. Le certificat du fournisseur d'identitĂ© ne sera pas vĂ©rifiĂ© : cette option ne doit ĂŞtre utilisĂ©e qu'Ă  des fins de test.

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

Vous pouvez activer Enregistrer les authentifications via le menu Administration > Paramètres > Débogage pour comprendre les échecs d'authentification et améliorer votre configuration.

Étape 3 : Configurer les conditions d'authentification​

  • Vous pouvez ajouter des adresses IP en liste blanche ou liste noire. Si vous laissez ces deux champs vides, toutes les adresses IP seront autorisĂ©es Ă  accĂ©der Ă  l'interface Centreon.

    • Adresses de clients de confiance : Si vous entrez des adresses IP dans ce champ, seules ces adresses IP seront autorisĂ©es Ă  accĂ©der Ă  l'interface Centreon. Toutes les autres adresses IP seront bloquĂ©es. SĂ©parez les adressses IP par des virgules.
    • Adresses de clients sur liste noire : Ces adresses IP seront bloquĂ©es. Toutes les autres adresses IP seront autorisĂ©es.
  • Vous pouvez Ă©galement dĂ©finir des conditions selon lesquelles les utilisateurs seront autorisĂ©s Ă  se connecter ou non, en fonction des donnĂ©es reçues par un point d'entrĂ©e particulier.

    • Activer les conditions sur le fournisseur d'identitĂ©.
    • DĂ©finissez quel attribut et quel point d'entrĂ©e seront utilisĂ©s pour valider les conditions.
    • Pour l'option DĂ©finir les valeurs des conditions autorisĂ©es, dĂ©finissez quelles valeurs renvoyĂ©es par ce point d'entrĂ©e seront autorisĂ©es. Si vous entrez plusieurs valeurs, toutes devront ĂŞtre remplies pour que la condition soit validĂ©e. Tous les utilisateurs qui tentent de se connecter avec une autre valeur ne pourront pas se connecter.

    Dans l'exemple ci-dessous, la valeur de Chemin de l'attribut des conditions est status et la valeur de Définir les valeurs des conditions autorisées est activated. Si le point d'entrée Point d'entrée d'introspection vous donne la réponse suivante, l'utilisateur est autorisé à se connecter :

    {
    ...
    "name": "OpenId Connect OIDC",
    "given_name": "OpenId Connect",
    "family_name": "OIDC",
    "preferred_username": "oidc",
    "email": "oidc@localhost",
    "email_verified": false,
    ...
    "status": "activated"
    }

    Actuellement, seules les valeurs de type chaîne de caractères peuvent être utilisées.

Étape 4 : Gérer la création d'utilisateurs​

Si vous activez l'import automatique des utilisateurs, les utilisateurs qui se connecteront à Centreon pour la première fois seront créés dans la configuration Centreon. (Activer l'option n'importe pas automatiquement tous les utilisateurs de votre infrastructure.)

  • Activer l'importation automatique : active/dĂ©sactive l'import automatique des utilisateurs. Si l'import automatique des utilisateurs est dĂ©sactivĂ©, vous devrez crĂ©er chaque utilisateur manuellement avant que celui-ci ne se connecte.
  • Modèle de contact : sĂ©lectionnez un modèle de contact qui sera appliquĂ© aux nouveaux utilisateurs importĂ©s. Cela permet notamment de gĂ©rer le paramĂ©trage par dĂ©faut des notifications.
  • Attribut de l'email : dĂ©finit quelle variable renvoyĂ©e par les points d'entrĂ©e Point d'entrĂ©e de jeton d'introspection ou Point d'entrĂ©e d'information utilisateur doit ĂŞtre utilisĂ©e pour rĂ©cupĂ©rer l'adresse email de l'utilisateur.
  • Attribut du nom complet : dĂ©finit quelle variable renvoyĂ©e par les points d'entrĂ©e Point d'entrĂ©e de jeton d'introspection ou Point d'entrĂ©e d'information utilisateur doit ĂŞtre utilisĂ©e pour rĂ©cupĂ©rer le nom complet de l'utilisateur.

Étape 5 : Gérer les autorisations​

Si vous activez l'option Activer la gestion automatique, les utilisateurs qui se connectent à Centreon se verront automatiquement accorder des droits, car ils seront liés à des groupes d'accès selon les règles que vous avez définies.

  • DĂ©finissez quel attribut et quel point d'entrĂ©e seront utilisĂ©s pour rĂ©cupĂ©rer des valeurs afin d'appliquer des relations avec des groupes d'accès.
  • Appliquer uniquement le premier rĂ´le: si plusieurs rĂ´les sont trouvĂ©s pour un utilisateur spĂ©cifique dans les informations du fournisseur d'identitĂ©, alors seul le premier rĂ´le sera appliquĂ©. Si l'option est dĂ©sactivĂ©e, tous les rĂ´les seront appliquĂ©s.
  • Faites correspondre un attribut extrait du fournisseur d'identitĂ© avec le groupe d'accès auquel vous souhaitez que l'utilisateur appartienne.

Par exemple, le Point d'entrée d'introspection vous donne la réponse suivante et l'option Appliquer uniquement le premier rôle est activée. Le Chemin de l'attribut de rôles sera realm_access.roles et l'option Définir la relation entre les rôles et les groupes d'accès ACL établira une relation entre la valeur centreon-editor et un groupe d'accès défini dans Centreon :

{
...
"realm_access": {
"roles": ["centreon-editor", "centreon-admin", "user"]
},
...
}

Lors de la récupération des attributs, Centreon va fusionner les attributs récupérés dans le JWT (JSON Web Token) avec ceux récupérés dans le point d'entrée sélectionné en donnant priorité aux attributs du JWT. Ainsi, si un attribut est disponible dans le JWT et dans le point d'entrée sélectionné, alors l'attribut retenu sera celui provenant du JWT.

À chaque connexion de l'utilisateur, la gestion des autorisations est réinitialisée pour prendre en compte toute nouvelle information en provenance du fournisseur d'identité.

Étape 6 : Gérer les groupes de contacts​

Si vous activez l'option Activer la gestion automatique, les utilisateurs qui se connectent à Centreon seront rattachés aux groupes de contacts que vous avez définis.

  • DĂ©finissez quel attribut et quel point d'entrĂ©e seront utilisĂ©s pour rĂ©cupĂ©rer des valeurs afin de crĂ©er des relations avec des groupes d'accès.
  • Faites correspondre les attributs extraits du fournisseur d'identitĂ© avec les groupes de contacts auxquels vous souhaitez que l'utilisateur appartienne.

Par exemple, le Point d'entrée d'introspection vous donne la réponse suivante. Le Chemin de l'attribut de groupes sera groups et l'option Définir la relation entre les groupes et les groupes de contact établira une relation entre la valeur Linux et un groupe de contacts défini dans Centreon :

{
...
"groups": ["Windows", "Linux", "DBA"],
...
}

Lors de la récupération des attributs, Centreon va fusionner les attributs récupérés dans le JWT (JSON Web Token) avec ceux récupérés dans le point d'entrée sélectionné en donnant priorité aux attributs du JWT. Ainsi, si un attribut est disponible dans le JWT et dans le point d'entrée sélectionné, alors l'attribut retenu sera celui provenant du JWT.

À chaque connexion de l'utilisateur, la gestion des groupes est réinitialisée pour prendre en compte toute nouvelle information en provenance du fournisseur d'identité.

Étape 7 : Configurer le fournisseur d'identité​

Configurez votre fournisseur d'identité pour ajouter l'application Centreon à utiliser le protocole OpenID Connect pour authentifier vos utilisateur, et pour autoriser l'uri de redirection suivante une fois vos utilisateurs authentifiés :

{protocol}://{server}:{port}/centreon/authentication/providers/configurations/openid

Remplacez {protocol}, {server} et {port} par l'URI permettant d'accéder à votre serveur Centreon. Par exemple : https://centreon.domain.net/centreon/authentication/providers/configurations/openid

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
User Information Endpointhttps://graph.microsoft.com/oidc/userinfo
End Session Endpoint
Scopeopenid
Login claim valueemail
Client ID{clientId}
Client Secret{clientSecret}

Remplacez ${tenantId}, ${clientId} et ${clientSecret} par vos propres valeurs.