Forums » Discussions & Questions »
LDAP Authentication
Ajouté par Vincent Nguyen il y a presque 4 ans
Bonjour,
Je souhaite suivre cette doc:
https://documentation.xivo.solutions/projects/xivo-nextlts/en/latest/administrator/xivocc/system_configuration.html?highlight=ldap#ldap-authentication
au moment de reconstruire le container avec xivocc-dcomp up -d xuc
cela sort:
xivocc_pgxivocc_1 is up-to-date
xivocc_recording_server_1 is up-to-date
Recreating xivocc_xuc_1 ...
WARNING: Service "xuc" is using volume "/conf" from the previous container. Host mapping "/etc/docker/xuc" has no effect. Remove the existing containers (with Recreating xivocc_xuc_1 ... done
il manque quelque chose ?
Merci
Réponses (21)
RE: LDAP Authentication - Ajouté par Vincent Nguyen il y a presque 4 ans
en changeant avec qqch comme cela:
environment:
....
- CONFIG_FILE=/etc/docker/xuc/xuc.conf
volumes:
....
- /etc/docker/xuc:/etc/docker/xuc
je n'ai pas l'erreur, mais via le bout de code de la doc, aucune demande d'authentication ldap ne part.
RE: LDAP Authentication - Ajouté par Vincent Nguyen il y a presque 4 ans
Bon j'ai résolu le problème de container mais la syntaxe LDAP pour Active Directory n'est pas simple.
il y a un exemple quelque part?
RE: LDAP Authentication - Ajouté par Laurent MEILLER il y a presque 4 ans
Bonjour, en effet tout ce qui est Synchro/Authentification LDAP est ultra spécifique, et ce sont souvent des développements à façon fait par XIVO pour ses clients.
Cependant il existe ce wiki pour vous aider (un peu) dans la syntaxe des filtres LDAP pour configurer votre authent:
https://ldapwiki.com/wiki/Active%20Directory%20User%20Related%20Searches#section-Active+Directory+User+Related+Searches-AllUsers
RE: LDAP Authentication - Ajouté par Vincent Nguyen il y a presque 4 ans
Bon j'ai trouvé la config, je vais poster ici quand ce sera propre.
Question un peu liée.
Y-a-t-il une solution d'authentification MFA possible avec Xivo ? par exemple si on pouvait intégrer avec un serveur Radius qui fait le job ?
ou la seule solution est elle d'avoir une pre authentification (MFA si nécessaire) et travailler en mode SSO uniquement avec Xivo.
Merci pour la réponse.
RE: LDAP Authentication - Ajouté par Laurent MEILLER il y a presque 4 ans
Bonjour,
Oui n'hésitez pas à poster, je pense que ça pourra aider d'autres utilisateurs !
Pour ce qui est d'une authent MFA, c'est une très bonne question, je vais en discuter avec la R&D, c'est quelque chose qu'on a jamais abordé.
A ma connaissance, les différentes possibilités d'authentification sur XiVO sont à ce jour via :
- HTTPS Basic Authentication (user/mot de passe), c'est la solution installée par défaut
- LDAP
- SSO (CAS / Kerberos / OpenId Connect)
Donc si votre serveur d’authentification MFA sait utiliser les protocoles CAS ou OpenId, je pense que vous pourriez facilement le coupler à XIVO.
RE: LDAP Authentication - Ajouté par Vincent Nguyen il y a presque 4 ans
Comme beaucoup de personnes, il s'agit d'Azure AD.
A ce jour je ne vois que pre-authentification windows MFA + SSO Kerberos entre le Xivo et AD => je ne dis pas de bêtise ?
Idéalement supporter un serveur Radius (NPS dans le cas de AD) serait un vrai plus.
RE: LDAP Authentication - Ajouté par Vincent Nguyen il y a presque 4 ans
Configuration pour faire fonctionner XUC avec un LDAP de type Active Direcory.
Exemple de domain AD: company.local
User ayant les droits de query ldap sur AD: ldapquery, appartenant au groupe Built-in "Users"
OU contenant tous les Users AD: "MyOU"
authentication {
ldap {
managerDN = "cn=ldapquery,cn=Users,dc=company,dc=local" # user with read rights on the whole LDAP
managerPassword = "secret" # password for this user
url = "ldap://ldapurlAD:389" # ldap URI
searchBase = "ou=MyOU,dc=compnay,dc=local" # ldap entry to use as search base
userSearchFilter = "sAMAccountName=%s" # filter to use to search users by login, using a string pattern
}
}
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Bonjour à tous !
Je reviens sur ce sujet.
J'ai bien appliqué l'ensemble des paramètres de configuration pour une authentification LDAP, mais j'ai un problème : dès que je rentre ID et MDP, j'ai en message d'erreur "Identifiant ou mot de passe invalide".
Dans le log /var/log/xivocc/xuc/xuc.log j'ai :
2022-07-11 11:23:04,881 -2022.05.07- 6750 WARN c.x.AuthenticationController- User utilisateur not found in local repository
2022-07-11 11:23:04,886 -2022.05.07- 6755 WARN AuthenticationResult- Failed authentication: AuthenticationFailure(InvalidCredentials,Invalid credentials)
2022-07-11 11:23:06,183 -2022.05.07- 8052 WARN s.c.ChannelTracker- Unable to get current channels, retrying core show channels
Il semblerait que l’authentification aille chercher dans le Xivo et pas dans le LDAP.
Quand je fais un docker ps, tous les services sont lancés :
4f03dce37a35 xivoxc/xuc:2022.05.latest "bin/xuc_docker" 6 minutes ago Up 6 minutes 0.0.0.0:8090->9000/tcp, :::8090->9000/tcp xivocc_xuc_1
3535f290c960 xivoxc/xivo-webi:2022.05.latest "docker-php-entrypoi…" 2 hours ago Up 9 minutes xivo_webi_1
8de1d6c9dd8a xivoxc/xivo-nginx:2022.05.latest "/usr/local/bin/dock…" 2 hours ago Up 9 minutes xivo_nginx_1
5b8d047fdbc3 xivoxc/pack-reporting:2022.05.latest "/bin/sh -c 'echo \"W…" 3 days ago Up 9 minutes xivocc_pack_reporting_1
9acf002ed3a4 xivoxc/xivo-full-stats:2022.05.latest "/usr/local/bin/star…" 3 days ago Up 9 minutes xivocc_xivo_stats_1
2ed0e80e0f19 xivoxc/recording-server:2022.05.latest "bin/recording-serve…" 3 days ago Up 9 minutes 0.0.0.0:9400->9000/tcp, :::9400->9000/tcp xivocc_recording_server_1
b3256bc0082f xivoxc/xucmgt:2022.05.latest "bin/xucmgt_docker" 3 days ago Up 9 minutes 127.0.0.1:8070->9000/tcp xivocc_xucmgt_1
db992edbbedc xivoxc/pgxivocc:2022.05.latest "docker-entrypoint.s…" 3 days ago Up 9 minutes 0.0.0.0:5443->5432/tcp, :::5443->5432/tcp xivocc_pgxivocc_1
6d48aff8ca9a xivoxc/xivo-db-replication:2022.05.latest "/usr/local/bin/star…" 3 days ago Up 9 minutes xivo_db_replic_1
9d36701fe41a xivoxc/xivo-switchboard-reports:2022.05.latest "bin/xivo-switchboar…" 3 days ago Up 9 minutes 127.0.0.1:9510->9510/tcp xivo_switchboard_reports_1
f0c5f3bf463f xivoxc/xivo-outcall:2022.05.latest "bin/xivo-outcall-do…" 3 days ago Up 9 minutes xivo_outcall_1
3aa3b3d2b313 xivoxc/config-mgt:2022.05.latest "bin/config-mgt-dock…" 3 days ago Up 9 minutes 0.0.0.0:9100->9000/tcp, :::9100->9000/tcp xivo_config_mgt_1
7a7b23ad6e9d xivoxc/xivo-ctid:2022.05.latest "/usr/local/bin/dock…" 3 days ago Up 8 minutes xivo_ctid_1
4a4d5c135ca3 xivoxc/xivo-db:2022.05.latest "docker-entrypoint.s…" 3 days ago Up 9 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp xivo_db_1
722db49693c6 xivoxc/rabbitmq:2022.05.latest "docker-entrypoint.s…" 3 days ago Up 9 minutes xivo_rabbitmq_1
J'ai appliqué le timeout comme mentionné dans la doc à 7000 mais pas mieux.
Les identifiants pour aller interroger le LDAP sont pour l'instant les mêmes que ceux utilisés pour d'autres applications que nous avons, donc je suis sûr de la configuration LDAP.
Enfin, s'agissant d'un Active Directory, j"ai appliqué tout la procédure de la doc pour ajouter le certificat de l'AD dans le keystore.
Dans le fichier /etc/docker/compose/, j'ai essayer différentes possibilités dans la partie XUC (en commentaires dans la conf) mais pas mieux :
xuc:
image: "xivoxc/xuc:${XIVOCC_TAG}.${XIVOCC_DIST}"
ports:
- ${XUC_PORT}:9000
environment:
#- JAVA_OPTS=-Xms80m -Xmx512m -Djavax.net.ssl.trustStore=/customSslTrustStore/ldapCertTrustStore -Djavax.net.ssl.trustStorePassword=password
- JAVA_OPTS=-Xms80m -Xmx512m -Djavax.net.ssl.trustStore=/etc/docker/xuc-custom-truststore/ldapCertTrustStore -Djavax.net.ssl.trustStorePassword=password
#- CONFIG_FILE=/conf/xuc.conf
- CONFIG_FILE=/etc/docker/xuc/xuc.conf
#- JAVA_OPTS=-Xms80m -Xmx512m
- XIVO_HOST
- XIVO_SIPDRV
- CONFIG_MGT_HOST
- CONFIG_MGT_PORT
- RECORDING_SERVER_HOST
- RECORDING_SERVER_PORT
- XIVO_AMI_SECRET
- XIVO_AMI_PORT
- XIVO_CTI_VERSION
- API_eventUrl
- XIVO_DIRD_PROFILE
- SECURED_KRB5_PRINCIPAL
- APPLICATION_SECRET
- STOP_RECORDING_UPON_EXTERNAL_XFER
- ENABLE_RECORDING_RULES
- CAS_SERVER_URL
- CHAT_SERVER_ENABLE
- CHAT_SERVER_HOST
- CHAT_SERVER_PORT
- CHAT_SERVER_ADMIN_TOKEN
- CHAT_SERVER_SECRET
- PLAY_AUTH_TOKEN
- AUTH_EXPIRES
- AUTH_PREVENT_XUC_LOGIN
- TURN_SERVER_SECRET
- TURN_SERVER_CREDENTIAL_TTL
- TURN_SERVER_ENABLE
- STUN_SERVER_ENABLE
- DEPRECATED_API_HOST
- XUC_AUTH_SECRET
- OIDC_SERVER_URL
- ENABLE_OIDC
- OIDC_CLIENT_ID
- OIDC_AUDIENCE
volumes:
- /var/log/xivocc:/opt/docker/var/log
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /etc/docker/xuc:/etc/docker/xuc
- /etc/docker/xuc-custom-truststore:/customSslTrustStore
Du coup je sèche totalement car je ne sais pas quoi chercher d'autre...
Si quelqu'un a une idée je suis preneur ;)
D'avance merci à tous !
Damien.
RE: LDAP Authentication - Ajouté par Enrique Jeanne il y a plus de 2 ans
Bonjour Damien,
as-tu passer la commande xivocc-dcomp up -d xuc ?
Enrique
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Enrique bonjour,
Merci pour ta réponse.
En réponse à cette dernière, pour être certain que rien ne reste avec une ancienne conf, à chaque fois que je modifie un fichier je fais ces 3 commandes à la suite :
xivocc-dcomp stop xuc
xivocc-dcomp rm xuc
xivocc-dcomp up -d xuc
Lorsque je fais seulement xivocc-dcomp up -d xuc, j'ai le résultat suivant :
xivocc_pgxivocc_1 is up-to-date
xivocc_recording_server_1 is up-to-date
xivocc_xuc_1 is up-to-date
Damien.
RE: LDAP Authentication - Ajouté par Enrique Jeanne il y a plus de 2 ans
Il faudrait également commenter le volume - /etc/docker/xuc-custom-truststore:/customSslTrustStore pour rester en ldap et voir ce que cela donne ?
J'utilise une connexion ldap (pas de ldaps) sur la version Izar et cela fonctionne.
Quelles sont les versions avec la commande xivo-dcomp version ?
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Enrique bonjour !
La commande xivo-dcomp version me donne ça :
xivocc_xuc_1 2022.05.07
xivocc_xucmgt_1 2022.05.08
xivo_webi_1 2022.05.07
xivo_nginx_1 2022.05.01
xivocc_pack_reporting_1 2022.05.01
xivocc_xivo_stats_1 2022.05.04
xivocc_recording_server_1 2022.05.07
xivocc_pgxivocc_1 2022.05.01
xivo_db_replic_1 2022.05.05
xivo_switchboard_reports_1 2022.05.01
xivo_outcall_1 2022.05.02
xivo_config_mgt_1 2022.05.05
xivo_ctid_1 2022.05.01
xivo_db_1 2022.05.02
xivo_rabbitmq_1 2022.05.01
Pour le reste, dès que je commente la ligne indiquée et relance le tout, j'ai le container xivoxc/xuc:2022.05.latest qui ne fait que redémarrer toutes les 5 secondes.
Du coup j'ai commenté
#- JAVA_OPTS=-Xms80m -Xmx512m -Djavax.net.ssl.trustStore=/etc/docker/xuc-custom-truststore/ldapCertTrustStore -Djavax.net.ssl.trustStorePassword=password
et j'ai décommenté
- JAVA_OPTS=-Xms80m -Xmx512m
Le container redémarre bien, mais authentification toujours impossible.
J'ai par la suite modifié le fichier /etc/docker/xuc/xuc.conf et mettant uniquement l'adresse de l'AD (FQDN et IP) en ldap avec le port 389 mais pas mieux...
A chaque fois, reboot serveur pour être certain que tout soit pris en compte.
RE: LDAP Authentication - Ajouté par Enrique Jeanne il y a plus de 2 ans
Est-ce qu'en utilisant un outil comme ldapsearch, une requête fonctionne bien vers l'AD ?
Est-ce qu'il y a un firewall entre le xuc et l'AD ?
A quoi ressemble le fichier xuc.conf ?
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Ouille ça pique...
ldapsearch me retourne ça : ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Alors que dans le certificat de l'AD est bien installé.
Ceci fonctionne sur d'autres VM.
Chose étrange, dans /etc/ je n'ai pas de dossier ldap.
J'ai créé manuellement (sans conviction que ça fonctionne) ldap/ldap.conf dans /etc et dans le fichier ajouté les 2 lignes :
TLS_REQCERT demand
TLS_CACERT /usr/local/share/ca-certificates/mon-certificat-ad.crt
Comme pensé, ça n'a pas marché.
Concernant le pare-feu (pfSense), il est configuré pour que la VM puisse interroger l'AD (cette conf fonctionne déjà avec d'autres VM).
Enfin, le fichier xuc.conf est le suivant :
include "application.conf"
authentication {
#xivo = ""
ldap {
managerDN = "cn=xivo,ou=xivo,ou=Operateurs,dc=mon-domaine,dc=fr"
#managerDN = "xivo@mon-domaine.fr"
managerPassword = "motdepassesupercomplique"
url = "ldaps://dc1.mon-domaine.fr:636"
#url = "ldap://dc1.mon-domaine:389"
#url = ldap://192.168.10.240:389"
searchBase = "OU=Utilisateurs,DC=mon-domaine,DC=fr"
userSearchFilter = "sAMAccountName=%s"
#userSearchFilter = "(&(&(|(objectclass=person)(objectclass=user)))(samaccountname=%uid))"
}
}
Comme tu peux voir, j'ai essayé plein de choses et mis en commentaire ces dernières :)
RE: LDAP Authentication - Ajouté par Enrique Jeanne il y a plus de 2 ans
La conf côté xuc me semble correcte.
Si tu tapes cette commande, est-ce que cela fonctionne ?
ldapsearch -x -H ldap://192.168.10.240 -b "OU=Utilisateurs,DC=mon-domaine,DC=fr" -B "cn=xivo,ou=xivo,ou=Operateurs,dc=mon-domaine,dc=fr" -W
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
En remplaçant le -B par -D, ça marche !
Du coup j'ai modifié le fichier xuc.conf et docker-xivocc.yml . pour que tout se fasse en LDAP et pas en LDAPs, mais ça ne veut toujours pas...
J'ai dans le log :
2022-07-13 10:03:54,674 -2022.05.07- 240678 WARN c.x.AuthenticationController- User utilisateurtest not found in local repository
2022-07-13 10:03:54,674 -2022.05.07- 240678 WARN AuthenticationResult- Failed authentication: AuthenticationFailure(InvalidCredentials,Invalid credentials)
On dirait que l'authentification va chercher seulement dans la base locale du XIVO mais pas dans l'AD.
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Je viens de tester comme indiqué dans la doc pour désactiver l'authentification locale, pas mieux non plus :/
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus de 2 ans
Suite à la mise à jour vers la version 2022.05.09, pas mieux...
Je ne comprends vraiment pas pourquoi ça ne veut pas :/
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a environ 2 ans
Bonjour à tous :)
Je viens de passer la 2022.05.10, le problème est toujours présent.
Est-ce que quelqu'un aurait des pistes ?
D'avance merci et bon courage pour ceux qui reprennent le boulot :)
Damien.
RE: LDAP Authentication - Ajouté par Enrique Jeanne il y a environ 2 ans
Bonjour Damien,
Il me semble que j'avais un message similaire
`2022-07-13 10:03:54,674 -2022.05.07- 240678 WARN c.x.AuthenticationController- User utilisateurtest not found in local repository`
si le login ad était en majuscule et que je le renseignais en minuscule dans l'application.
Sur l'ipbx, est-ce que tu vois des choses concernant les authent dans /var/log/xivo-ctid.log ?
Enrique
RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a environ 2 ans
Enrique bonjour :)
Les identifiants sont tous en minuscule pour éviter ce genre de problème.
Suite à ton message, à tout hasard j'ai tenté de faire l'inverse et tout mettre en majuscules, mais ça n'a pas fonctionné.
Concernant le xivo-ctid.log, la seul info que je trouve concernant de l'authentification, c'est quand je me connecte avec le root :
(xivo_cti.authentication): LOGIN_SUCCESSFUL for {'user_id': '1', 'user_uuid': u'c95e2391-8c0a-4e31-8a5a-ce28103a42cd'}
Ensuite, dans le /var/log/xivocc/xuc/xuc.log j'ai ça quand je veux m'identifier :
c.x.AuthenticationController- User utilisateurtest not found in local repository
AuthenticationResult- Failed authentication: AuthenticationFailure(InvalidCredentials,Invalid credentials)
Du coup, pas plus de changement, donc pas plus de pistes malheureusement :/
Damien.