Mémo Authentification OpenIDConnect

Mémo Authentification OpenIDConnect

Table des matières
Historique des modifications

1. Préambule

OpenIDConnect est une simple couche d’identification basée sur OAuth2.0 (lui-même étant un dispositif d’identification)

À partir de la v6.5.2, Project MonitorProject Monitor peut être utilisé avec l’authentification OpenIDConnect.

🚦
Vous devez disposer d’un fournisseur d’identité : (Identity provider). Dans la suite du document, IDP désigne votre Identity Provider (par exemple Azure AD / Keycloak).

Remarque 1

Données attendues par Virage :

  • Identification du client (clientId)
  • URL de redirection

Donnée fournie par Virage :

  • URL de Callback

Remarque 2

Dans la version 6.5.2, le provisionnement automatique des comptes depuis le fournisseur d’identité n’est pas disponible. Il sera disponible en version 6.5.3.

D’autre part, la correspondance entre l’identifiant dans Project MonitorProject Monitor et dans le fournisseur d’identité doit être identique (voir en fin de document). Cela peut nécessiter une reprise de données sur les implémentations Project MonitorProject Monitor existantes.

Remarque 3

Le module OIDC doit être complétement déployé sur le serveur d’application. La procédure d’installation est décrite dans le Dossier d’Exploitation

2. Configuration avec KeyCloak

  • Dans le fichier monitormaker.properties : configurer la stratégie d’authentification : OpenIdConnectAuthenticator
  • com.vc.mm.authenticator= com.vc.mm.modules.utilisateur.OpenIdConnectAuthenticator
    🚩
    Voir le Dossier d’exploitation pour plus d’informations sur les stratégies d’authentification disponibles.

Se connecter à l’interface d’administration de Project MonitorProject Monitor

  1. Cliquer sur Administration > Administration avancée > Authentification OpenIDConnect.
image
  1. Copier dans le presse-papier la valeur de la propriété URL de retour – Callback
image

Se connecter à l’interface d’administration de Keycloak

  1. Créer un nouveau client OpenIDConnect, qui sera spécifique à l’application Project MonitorProject Monitor
image
  1. Saisir un identifiant pour ce nouveau client, le protocole openid-connect doit être sélectionné :
image

Dans l’écran de configuration du client nouvellement créé :

  1. Sélectionner le choix public pour la propriété Access Type.
  2. Valoriser la propriété Valid Redirect URIs avec la valeur extraite depuis Project MonitorProject Monitor (URL de Retour – callback)
  3. Enregistrer les informations saisies
image
  1. Se rendre sur l’écran Realm Settings
  2. Copier dans le presse-papier l’URL du lien Open ID Endpoint Configuration :
image

Se rendre dans l’écran de configuration OpenIdConnect de Project MonitorProject Monitor :

  1. Saisir dans le champ Client ID le nom du client nouvellement déclaré à l’étape précédente.
  2. Coller dans le champ URL des métadonnées l’URL copié à l’étape précédente
  3. Cliquer sur Enregistrer.
image

Mapping entre les utilisateurs définis dans Project MonitorProject Monitor et dans Keycloak :

Afin que l’identification fonctionne, il est nécessaire de s’assurer que l’identifiant défini dans Project MonitorProject Monitor et Keycloak soit identique.

L’identifiant de l’utilisateur est disponible dans l’écran de détail de l’utilisateur sous Keycloak :

Cet identifiant correspond à la propriété sub contenue dans le token OpenIDConnect

image

3. Configuration avec AzureAD

Se connecter à l’interface d’administration de Project MonitorProject Monitor

  1. Cliquer sur Administration > Administration avancée > Authentification OpenIDConnect.
image
  1. Copier dans le presse-papier la valeur de la propriété URL de retour – Callback
image

Se connecter à l’interface d’administration AzureAD :

  1. Inscrire une nouvelle application.
image
  1. Coller l’url de retour - callback à cet endroit :
image
  1. Dans l’écran de détail de l’application, cliquer sur le bouton Points de terminaison
  2. Copier l’url Document sur les métadonnées Open ID Connect
  3. Copier également la valeur de ID Application (client)
image

Se rendre dans l’écran de configuration OpenIdConnect de Project MonitorProject Monitor :

  1. Saisir dans le champ « Client ID » le nom du client nouvellement déclaré à l’étape précédente
  2. Coller dans le champ URL des métadonnées l’URL copié à l’étape précédente.
  3. Enregistrer les modifications.
image

Se connecter à l’interface d’administration AzureAD :

  1. Créer un secret ( la notion de Secret est obligatoire sous Azure AD).
  2. Copier la valeur du secret dans le presse-papier et la reporter dans l’interface de configuration de Project MonitorProject Monitor
image

4. Tester la configuration

  • Créer vos utilisateurs dans Project MonitorProject Monitor si ce n’est pas déjà fait
  • Créer vos utilisateurs dans votre IDP si ce n’est pas déjà fait
  • Se connecter à l’application pour valider la configuration

5. Création automatique de compte

Avec la fonctionnalité OpenIDConnect, il est possible de créer automatiquement le compte d’un utilisateur à sa première connexion.

Les informations suivantes sont mémorisées lors de la création :

  • Identifiant
  • Nom
  • Prénom
  • Email

Pour activer cette option, le champ Créer automatiquement les comptes utilisateurs manquants à la connexion doit être coché :

Lors de cette création l’utilisateur ne dispose d’aucun droits ou rôle sur l’application. Il convient à l’administrateur fonctionnel d’associer à posteriori les rôles de l’utilisateur.

image

6. Modification de l’identifiant de connexion (Keycloak uniquement)

Par défaut l’identifiant de l’utilisateur dans Project MonitorProject Monitor est le même que celui du référentiel d’identité.

Il s’agit du champ sub.

Il est possible, même si cela n’est pas recommandé par le protocole OpenIDConnect, de modifier l’identifiant pour quelque chose de plus explicite, par exemple l’email de l’utilisateur.

Exemple de configuration
Exemple de configuration

7. Se connecter sans OpenIdConnect

Il est possible que certains utilisateurs de Project MonitorProject Monitor soient inconnus de l’IDP (Prestataire externe, consultant). Pour ces utilisateurs, il est possible de se connecter à Project MonitorProject Monitor par login et mot de passe avec l’url, si l’authentification locale est autorisée au niveau de l’utilisateur :

http://maplateforme/nex/login?local=true