Configurer : Fédération d'utilisateurs pour l'authentification
Découvrez comment configurer l’authentification des utilisateurs via la gestion des identités fédérées.
Configurer : Fédération d'utilisateurs pour l'authentification
Découvrez comment configurer l’authentification des utilisateurs via la gestion des identités fédérées.
Comment configurer la fédération d'utilisateurs pour l'authentification ?
Dans cet article, les instructions pour configurer la fédération d'utilisateurs à utiliser comme protocole d'authentification sont décrites.
La fédération d'utilisateurs signifie que les utilisateurs peuvent s'authentifier auprès des solutions Efecte, construites sur la plate-forme Efecte Service Management, en utilisant les mêmes informations d'identification (nom d'utilisateur et mot de passe) que dans l'annuaire des clients.
Instructions étape par étape
1. La tâche de Pro pour l'authentification doit être configurée dans la plateforme Efecte Service Management, avant de configurer le composant Efecte Secure Access
2. Connectez-vous à la console d'administration Efecte Secure Access
3. Validez que la configuration est correctement stockée dans le composant Efecte Secure Access
- La validation peut être effectuée dans : https://{TENANT_NAME.com}/auth/ et utiliser le compte main.admin (et le mot de passe approprié lu à partir de la configuration du locataire).
4. En sélectionnant Fédération d'utilisateurs, une liste de tâches d'authentification devrait apparaître (si la liste est vide, attendez une minute pour transférer les données d'Efecte Service Management vers Efecte Secure Access ; si la liste est toujours vide.

5. Sélectionner « Modifier » dans la tâche concernée affiche les détails de la connexion LDAPS. Il est conseillé de vérifier que tous les paramètres sont configurés, notamment :
- Importer des utilisateurs : ACTIVÉ
- Mode d'édition : AD UNIQUEMENT
6. Après avoir enregistré la connexion, un menu Action apparaît dans le coin supérieur droit, permettant à l'administrateur de synchroniser tous les utilisateurs de LDAP vers Efecte Secure Access

7. Vérifiez que l' AD _GroupMapper est en place. Sélectionnez « Mappeurs » dans la barre supérieure de la fédération d'utilisateurs. Parmi les mappeurs par défaut, un ou plusieurs types de mappeurs group-ldap devraient être visibles.
- S'il n'y a pas d' AD _GroupMapper créé automatiquement, l'utilisateur peut en créer un, en cliquant sur le bouton bleu Ajouter un mappeur.

Exemple de mappeur de groupe AD


8. Une fois la configuration vérifiée, l'administrateur peut tenter de synchroniser tous les utilisateurs (mentionné dans l'un des écrans précédents). Un message similaire à celui-ci devrait s'afficher.


10. La configuration doit être effectuée maintenant et il est possible de tester l'authentification Supprimer
Dépannage
1. Si les journaux Efecte Secure Access indiquent des problèmes liés à la connexion SSL, comme par exemple :
Caused by: org. keycloak .models.ModelException: Querying of LDAP failed org. keycloak .storage.ldap.idm.query.internal.LDAPQuery@292d8e81 at org. keycloak .storage.ldap.idm.store.ldap.LD API dentityStore.fetchQueryResults(LD API dentityStore.java:289) at org. keycloak .storage.ldap.idm.query.internal.LDAPQuery.getResultList(LDAPQuery.java:174) ... 80 more Caused by: javax.naming.CommunicationException: simple bind failed: 10.0.2.110:636 [Root exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target] at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:219) at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2897) at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:347) at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:225) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:243)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)
at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:116)
at org.jboss.as.naming.InitialContext.init(InitialContext.java:101)
at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
at org.jboss.as.naming.InitialContext.<init>(InitialContext.java:91)
at org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:43)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:695)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.createLdapContext(LDAPContextManager.java:80)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.getLdapContext(LDAPContextManager.java:100)
at org.keycloak.storage.ldap.idm.query.internal.LDAPQuery.initPagination(LDAPQuery.java:213)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPOperationManager.searchPaginated(LDAPOperationManager.java:293)
at org. keycloak .storage.ldap.idm.store.ldap.LD API dentityStore.fetchQueryResults(LD API dentityStore.java:277) ... 81 more Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alert.createSSLException(Alert.java:131) at sun.security.ssl.TransportContext.fatal(TransportContext.java:324) at sun.security.ssl.TransportContext.fatal(TransportContext.java:267) at sun.security.ssl.TransportContext.fatal(TransportContext.java:262) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369) at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377) at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182) at sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)
at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383) at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435) at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:804) at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:73) at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1166) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:448) at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:421) at com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:359) at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:214) ... 102 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:456)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:323) at sun.security.validator.Validator.validate(Validator.java:271) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638) ... 121 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:451) ... 127 more
|
2. Si SSL est utilisé pour connecter ESA à Active Directory , ESA doit connaître le certificat présenté AD . Cette étape est manuelle et nécessite :
- Connectez-vous au conteneur ESA
- Allez dans /opt/esa (assurez-vous qu'il y a un fichier truststore.jks)
- Dans les environnements de test, vous pouvez exécuter la commande suivante (si vous n’avez pas de fichier de certificat) :
- echo -n | openssl s_client -connect AD :636 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > AD
- Mais dans les environnements de production, il est recommandé d'obtenir un certificat racine ou intermédiaire auprès du client , ceux-ci étant généralement plus valides que les certificats de niveau serveur.
- Un exemple pourrait être :
- echo -n | openssl s_client -connect 10.0.2.110:636 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > 10.0.2.110.crt
3. Une fois que vous avez le fichier de certificat, il doit être importé dans le fichier truststore.jks
- keytool -importcert -file NOM_DU_FICHIER_CERT.crt -keystore truststore.jks -alias "ALIAS_DU_CERTIFICAT"
- Par exemple : keytool -importcert -file AD _certificate.crt -keystore truststore.jks -alias AD _certificate