Projet

Général

Profil

LDAP Authentication

Ajouté par Vincent Nguyen il y a environ 3 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 environ 3 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 environ 3 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 environ 3 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 environ 3 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 environ 3 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 environ 3 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 environ 3 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 d'un an

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 d'un an

Bonjour Damien,

as-tu passer la commande xivocc-dcomp up -d xuc ?

Enrique

RE: LDAP Authentication - Ajouté par Damien VARICLIER il y a plus d'un an

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 d'un an

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 d'un an

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 d'un an

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 d'un an

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 d'un an

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 d'un an

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 d'un an

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 plus d'un an

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 plus d'un an

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 plus d'un an

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.

    (1-21/21)