1. Préambule
SAML offre la possibilité aux utilisateurs de s’identifier de façon unique aux différentes applications web dont ils disposent.
A partir de la v6.0.6, Project Monitor peut être utilisé avec l’authentification SAML.
Dans le modèle SAML Project Monitor est un fournisseur de service (Service Provider).
Vous devez disposer d’un fournisseur d’identité : (Identity provider). Dans la suite du document, IDP désigne votre Identity Provider (par exemple Okta / Shibboleth / Keycloak ou ADFS – Microsoft Active Directory Federation Services).
Remarques
Données attendues par Virage :
- Fichier metadata du client
- Attribut d’authentification du client
Donnée fournie par Virage :
- Fichier metadata à intégrer à l’Identity Provider du client
2. Activer l’authentification SAML en 4 étapes
2.0 Prérequis technique : Uniquement pour les plateformes installées (hors SAAS)
- Dans le fichier monitormaker.properties : configurer la stratégie d’authentification : Saml2Authenticator
com.vc.mm.authenticator= com.vc.mm.modules.utilisateur.Saml2Authenticator
voir le Dossier d’exploitation pour plus d’informations sur les stratégies d’authentification disponibles
- Spécifique pour l’ADFS :
- Décompresser le fichier « Java Cryptography Extension » jce_policy-8.zip se trouvant dans le répertoire «%PM_HOME%\install\JDK » ou dans votre espace client http://file.viragegroup.com (public/livraison/install).
- Copier les fichiers « local_policy.jar » et « US_export_policy.jar » et les coller en remplacement de ceux existants dans le répertoire « %PM_HOME%\jre\lib\security ».
- Redémarrer le service Wildfly pour prendre en compte la modification.
2.1. Obtenir la configuration de votre IDP : fichier METADATA XML
- Obtenir auprès de votre IDP un fichier au format xml de metadata. Ce fichier permettra à Project Monitor de connaître votre IDP et communiquer avec lui.
- Spécifique pour Keycloak :
- Le fichier metadata à récupérer est celui du Realm (disponible depuis l’onglet de configuration « General »)
- Obtenir ou paramétrer dans votre IDP le code du champ contenant le login de l’utilisateur
- Spécifique pour l’ADFS :
- Lors de l’ajout de la règle pour faire le lien entre l’identifiant LDAP de l’Active Directory et PM veuillez spécifier les informations suivantes :
- Dans la fenêtre « Issuance Transform Rules », ajouter et configurer une règle.
- Dans le champ « Attribute Store » indiquer « Active Directory ».
- Dans la colonne « LDAP Attributes » sélectionner « SamAccountName ».
- Dans la colonne « Outgoing Claim Type » sélectionner « Name ID ».
- Ajout d’une deuxième ligne, dans la colonne « LDAP Attributes » sélectionner de nouveau « SamAccountName ».
- Dans la colonne « Outgoing Claim Type » inscrire le login que vous avez indiqué à PM (ex : login)
- Spécifique pour Keycloak :
- Lors de la configuration du client dans Keycloak
- Le champ clientID doit contenir l’url d’accès à la plateforme PM suffixée de « /sp » (ex : https://serveur.p-monitor.com/sp)
- Dans l’onglet « General », les champs « Valid Redirect URIs » et « Assertion Consumer Service POST Binding URL » doivent contenir l’adresse PM de réception SAML (ex : https://serveur.p-monitor.com/MonitorMakerWeb/api/auth/saml2/consume)
- Lors de la création d’un nouvea mapper depuis l’onglet « Mapper » de la confiugration du client
- Dans le champ « name » indiquer « login »
- Dans le champ « Mapper Type » sélectionner « User Property »
- Dans le champ « Property » indiquer « username »
- Dans le champ « Friendly name » indiquer « login »
- Dans le champ « SAML Attribute Name » indiquer « login »
- Lors de l'authentification, Project Monitor et l'IDP échangent des informations. Ce code est nécessaire à Project Monitor pour retrouver, parmi ces informations, laquelle contient le login utilisateur. Par exemple dans Shibboleth « urn:oid:0.9.2342.19200300.100.1.1 » ou bien selon l’IDP, « login » ou autre "
2.2 Déclarer votre IDP dans PM
- Aller sur la page Admin > Authentification SAML2
- Dans le premier champ de la page, coller le contenu XML du fichier metadata obtenu à l’étape 1.
- Renseigner le code du champ contenant le login. Ce code a été obtenu à l’étape 1.
- Spécifique pour l’ADFS :
- Fixer le temps maximal d'authentification à 8h
- Enregistrer
2.3 Générer la configuration de PM : Fichier METADATA XML
- Toujours sur la page Admin > Authentification SAML, dans la seconde partie de la page
- Cliquer sur "Générer" pour afficher l'ensemble des informations de Project Monitor qui seront nécessaires à l'IDP.
- A savoir :
- des metadata au format XML
- Assertion consumer service
- Service provider entity ID location
- Service provider entity ID binding
- Ces informations permettront à votre IDP de connaître Project Monitor en tant que Service Provider et de communiquer avec lui.
- Nota bene: En fonction du paramétrage de l'IDP, l'ensemble des informations ne sera pas forcément nécessaire
- Copier le contenu des metadata (xml). Ces metadata permettront à votre IDP de connaître Project Monitor en tant que Service Provider et de communiquer avec lui.
2.4. Déclarer Project Monitor dans votre IDP
- Créer Project Monitor en tant qu’application dans votre IDP.
- Fournir les metadata obtenues à l’étape 4 à votre IDP. 2 alternatives :
- Copier le xml dans un champ prévu à cet effet
- Ou reporter les valeurs Assertion consumer service, Service provider entity ID location et Service provider entity ID binding
3. Tester la configuration
- Créer vos utilisateurs dans Project 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
4. SAML avec AzureAD
- Les utilisateurs doivent être ajoutés dans l’application Azure AD et dans Project Monitor o Pour Project Monitor, il faudra le faire manuellement ou via des imports Pour Azure AD, il faut ajouter un utilisateur / groupe pour avoir les accès vers PM
Activer l’authentification SAML ● Le groupe AD doit contenir directement les utilisateurs. L’imbrication de groupes ne fonctionne pas dans Azure AD
Azure AD Pour utiliser et configurer le SSO SAML dans Azure AD, il faut réaliser depuis le centre d’administration Azure AD les étapes suivantes.
- Utiliser l’application d’entreprise ‘Demonstrateur-interne (up : adazure)’ présente dans Azure Active Directory :
- Configurer l’authentification unique dans l’application
Les détails de SAML sont affichés sur la page d’authentification unique. On retrouve également le mapping de login entre PM et Azure. Il faut télécharger le fichier XML.
3. Vérifier la liste des utilisateurs
Les utilisateurs qui doivent se connecter à PM avec le même identifiant de connexion doivent être présents dans l’application d’entreprise, dans la section Utilisateurs et Groupes Project Monitor Depuis l’administration, écran Authentification SAML 2 : La configuration XML téléchargée auparavant doit être ajoutée dans PM.
Le Login attribute de votre Id Provider doit être ajouté et enregistré.
Ajouter un utilisateur Depuis l’administration, et l’écran Utilisateurs, il faut ajouter les utilisateurs et vérifier qu’ils soient aussi ajoutés sur Azure AD
5. Se connecter sans SAML
Il est possible que certains utilisateurs de Project Monitor soient inconnus de l’IDP (Prestataire externe, consultant). Pour ces utilisateurs, il est possible de se connecter à Project Monitor par login et mot de passe avec l’url :
http://maplateforme/nex/login?local=true
6. Établir un mode exclusif de connexion
Par défaut les utilisateurs peuvent s’identifier à la fois avec le mode d’authentification SAML ainsi qu’avec le mode d’authentification local (url /neo/auth/auth.html?local=true ou nex/login?local=true)
Il est possible de désactiver pour tout ou partie des utilisateurs ce mode d’authentification local afin de ne permettre aux utilisateurs de n’utiliser que le mode d’authentification SAML.
Pour désactiver le mode d’authentification local, dans l’interface de paramétrage de l’authentification SAMLv2, cocher la case « accès par SSO exclusivement » :
Il est possible de déroger à ce paramétrage par défaut notamment lorsque :
- Certains utilisateurs de l’application ne sont pas référencés dans l’annuaire de l’organisation (intervenants externes)
- Certains utilisateurs techniques (interfaces) sont utilisés.
Pour autoriser un utilisateur spécifique à utiliser l’authentification locale par dérogation :
- Dans l’écran de détail d’un utilisateur, dans l’onglet « Paramètres », cocher la case « Authentification locale possible »