Zammad: Integración de autenticación LDAP

Creado en 4 nov. 2016  ·  49Comentarios  ·  Fuente: zammad/zammad

Deseo de Zammad de Markus Pfeiler:
"Por favor, proporcione algún tipo de complemento / integración de autenticación LDAP; de lo contrario, no podemos usar el sistema de emisión de boletos para nada :( fuera de las cuentas de Facebook y Google no son una opción en ninguna empresa con más de 10 empleados; idealmente, estos canales están bloqueados en el primero línea de defensa por una buena razón :)"

feature backlog proposal

Comentario más útil

¿Alguna noticia sobre esto?

Todos 49 comentarios

¿Es esto un duplicado de #58?

@wagnst Este es el número nuevo, el número 58 es viejo y ya está cerrado.

Nota: Estamos trabajando en funciones "preparadas para empresas" para el primer trimestre de 2017 que incluirán la integración de LDAP. Manténganse al tanto.

@rolfschmidt tal vez ADFS con OAuth2 es una solución a corto plazo

¿Alguna noticia sobre esto?

El soporte LDAP sería increíble. ¿Alguna actualización sobre cuándo veremos estas funciones y qué otras funciones empresariales se están implementando?

¿Hay noticias? El primer trimestre de 2017 está llegando en los últimos días :)
¿Alguna posibilidad de obtener esto en la actualización de abril?

¡Sí, esta característica sería genial!
Somos una organización con alrededor de 4000 usuarios y 50 agentes y planeamos reemplazar OTRS con Zammad. Pero sin autenticación LDAP no tiene sentido.

Pequeña actualización, estamos en estado de prueba. Al menos habrá una integración LDAP de prueba beta disponible en la próxima versión (y después de esa versión lo llamaremos estable).

Una pequeña vista previa sobre cómo usarlo (cualquier comentario es bienvenido, tratamos de hacerlo lo más fácil posible (con detección automática de la configuración de ldap), al estilo de Zammad):
ldap-preview

@bchynds

El soporte LDAP sería increíble. ¿Alguna actualización sobre cuándo veremos estas funciones y qué otras funciones empresariales se están implementando?

Funciones empresariales: la más importante es la gestión de roles (y otras como fuera de la oficina e intercambio).

Eso se ve bonito. Esperamos probar esto con nuestros 25k usuarios cuando esté disponible.

Eso se ve bonito. Esperamos probar esto con nuestros 25k usuarios cuando esté disponible.

🎉

Hola,

¿Hay una migración/fusión de usuarios de agentes existentes con LDAP?

¿Hay una migración/fusión de usuarios de agentes existentes con LDAP?

Para identificar a los usuarios existentes, busque el inicio de sesión y la dirección de correo electrónico en la base de usuarios existente (uno de ellos debe coincidir).

Hola,

Me acabo de dar cuenta de que la integración de ldap ahora está en la rama delevop. Ahora estoy en modo de prueba y estoy trabajando en "Analizar entradas con una configuración determinada..." durante unos 10 minutos.

Pero tenemos alrededor de 25k Usuarios en nuestro AD. Esperaré un poco.

@Julian0o eres rápido hombre!

Ahora estoy en modo de prueba y estoy trabajando en "Analizar entradas con una configuración determinada..." durante unos 10 minutos.

¿Se inició el programador? En nuestro entorno de prueba con 9.000 usuarios, tarda unos 60 segundos.

PD: Puede iniciar los trabajos en segundo plano en cola también manualmente con rails r 'Delayed::Worker.new.work_off'

-Martín

Estaba demasiado rápido :) Olvidé especificar un rol de administrador y ahora soy un usuario normal :)

@martini
¿Tienes algún consejo para arreglar eso? Solo me falta el OTRS Config.pm ahora :D

Para recuperar el rol de administrador, haga lo siguiente:

rails c
u = User.find_by(email: '[email protected]')
u.roles = Role.where(name: ['Agent', 'Admin'])
u.save!

A continuación, vuelva a iniciar sesión y será administrador.

¡Gracias! Ahora segundo intento ;)

PD: ¿Hay alguna forma de obtener estos comandos sin profundizar en el código?

PD: ¿Hay alguna forma de obtener estos comandos sin profundizar en el código?

La mayoría son comandos estándar de Rails. Pero tal vez deberíamos crear una hoja de trucos....

image

La sincronización inicial tomó alrededor de 10 minutos.
Ahora me sale un error:

An error occurred: Can't connect to '' on port '389', Connection refused - connect(2) for 127.0.0.1:389
El host LDAP configurado es " ldaps://xxx.lan "

Editar: hacer un segundo intento con la dirección IP estricta y no la dirección dns donde hay 5 direcciones IP detrás.

¿Es posible obtener el registro/producción.registro?

@martini Puedo enviar el registro a su dirección de correo. ¿Dónde debería ir?

@martini Puedo enviar el registro a su dirección de correo. ¿Dónde debería ir?

soporte en zammad punto com

Bien, ahora está funcionando y la sincronización continúa. Ahora sincronizando 45 Minutos con 6k/22k.
¿OTRS también sincroniza a los usuarios?

Pero, ¿por qué no puedo cambiar el mapeo de uid? Usamos el nombre principal de usuario para el mapeo de inicio de sesión del agente.

Y por qué solo puedo asignar administrador y agente como "rol". ¿Solo falta la gestión de roles o es la gestión de roles final?

Bien, ahora está funcionando y la sincronización continúa. Ahora sincronizando 45 Minutos con 6k/22k.

Solo un aviso, trabajamos para acelerar esto (~3 veces más rápido).

¿OTRS también sincroniza a los usuarios?

Los agentes (y las asignaciones de roles) se sincronizan en OTRS. Los clientes no, lo que genera problemas:

a) si el cliente es eliminado de ldap (problemas de historial y revisión)
b) desea buscar tickets a través de los atributos del cliente: sin descripción general, sin activadores, sin sla con atributos del cliente (no es posible, porque los datos se encuentran en un mínimo de 2 fuentes de datos)
c) problemas de rendimiento para consultas ldap (también pueden estar relacionados con la red)

Pero, ¿por qué no puedo cambiar el mapeo de uid? Usamos el nombre principal de usuario para el mapeo de inicio de sesión del agente.

Actualmente intentamos detectar automáticamente todas las configuraciones. Si tiene ideas sobre cómo mejorar/enriquecer los ajustes de configuración.

Y por qué solo puedo asignar administrador y agente como "rol". ¿Solo falta la gestión de roles o es la gestión de roles final?

La gestión de roles estará allí en la próxima versión (aquí puede definir roles con permisos). Si desea probarlo en su instalación (instalación de paquete), descargue https://raw.githubusercontent.com/zammad/zammad/develop/app/assets/javascripts/app/controllers/role.coffee y vuelva a compilar los activos.

screen shot 2017-04-19 at 16 30 04

Está bien, eso tiene sentido.

Acabo de darme cuenta de que puedes iniciar sesión a través de samaccountname y Mail. ¡Ese es un buen comportamiento! Para nosotros: UPN = dirección de correo

Creo que el tiempo de sincronización no es un problema porque solo la sincronización inicial lleva un tiempo.

Asesoramiento para la autodetección de etiquetas. Usamos muchos servicios de microsoft (skype para negocios, intercambio,...). De forma predeterminada, puede excluir todos los atributos que comienzan con "ms". No necesita la configuración de intercambio o la configuración de sip de los usuarios en Zammad (creo). Eso podría acelerar todo.
Mi cuenta de usuario tiene unos 45 ms de atributos.

Para el complemento de roles, necesito información adicional o buscar en Google;) Cargué el archivo pero no sé cómo precompilar los activos.

EDITAR: ¡Estoy en una buena manera de instalar el complemento de rol!

Ahora, de repente, la sincronización se detuvo... Ya reinicié todos los servicios y el servidor por completo. ¿Algún consejo para reiniciar la sincronización?

Ya lo hice rails r 'Delayed::Worker.new.work_off'

Actualización: ¡Zammad lo hizo solo! 👍
¡Solo esperé y de repente la sincronización terminó!

¿La sincronización descarga fotos desde el directorio activo? Los almacenamos en el atributo thumbnailPhoto.

Siguiente pregunta: ¿Con qué frecuencia se ejecuta la sincronización? Ahora son 24 horas más tarde y no hubo una nueva sincronización.

¿La sincronización descarga fotos desde el directorio activo? Los almacenamos en el atributo thumbnailPhoto.

No ahora. ¡Pero una buena idea!

Siguiente pregunta: ¿Con qué frecuencia se ejecuta la sincronización? Ahora son 24 horas más tarde y no hubo una nueva sincronización.

Hay un trabajo en la tabla del programador que inicia la sincronización cada hora (por supuesto, el script/scheduler.rb debe estar ejecutándose).

Compruebe si los trabajos existen a través de la consola de Rails:

Scheduler.where(name: 'Import Jobs')

Para (re)crear el trabajo, haga lo siguiente:

Scheduler.create_or_update(
  name:          'Import Jobs',
  method:       'ImportJob.start_registered',
  period:        1.hour,
  prio:          1,
  active:        true,
  updated_by_id: 1,
  created_by_id: 1
)

=> #<:relación i="5">]>

Pero la interfaz web dice:
última sincronización

20.04.2017 09:30 - 20.04.2017 09:51

Hola , @Julian0o . ¿Puedes verificar el Setting.get('import_backends') ? Debe haber una entrada LDAP. Si es así, ejecute el comando ImportJob.all y publique el resultado. Tenga en cuenta que la salida contiene datos confidenciales como el PW y su asignación en el atributo payload . El contenido de payload no es relevante y puede eliminarse por completo.

La salida es demasiado grande para pegarla desde la consola Ruby. ¿Hay alguna manera de obtener la salida en un archivo?

Lo siento, soy un novato rubí total :)

Intente ImportJob.last.attributes.except('payload').inspect , ya que solo nos interesa la última ejecución. Si todavía es demasiado grande, puede usar File.write('/tmp/zammad_ldap.txt', ImportJob.last.attributes.except('payload').inspect) para escribirlo en el archivo /tmp/zammad_ldap.txt .

irb(main):001:0> ImportJob.last.attributes.except('payload').inspect
=> "{\"id\"=>10, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>122, \"created\"=>10, \"updated\"=>27, \"unchanged\"=>22256, \"failed\"=>0, \"sum\"=>22415, \"role_ids\"=>{3=>{\"created\"=>10, \"updated\"=>25, \"unchanged\"=>22220, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>2, \"unchanged\"=>36, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>1, \"unchanged\"=>5, \"failed\"=>0}}}, \"started_at\"=>Fri, 21 Apr 2017 08:32:15 UTC +00:00, \"finished_at\"=>Fri, 21 Apr 2017 08:44:07 UTC +00:00, \"created_at\"=>Fri, 21 Apr 2017 08:32:15 UTC +00:00, \"updated_at\"=>Fri, 21 Apr 2017 08:44:07 UTC +00:00}"

EDITAR: Cambió

Last sync

21.04.2017 10:32 - 21.04.2017 10:44

¡Gracias! Hm, eso es extraño 🤔 ¿Puede proporcionar el resultado de esta declaración:
ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect

Esta misma declaración es utilizada por el controlador frontend LDAP que es responsable de representar el texto.

Estoy bastante seguro de que lo hiciste, pero solo por razones de cordura: ¿Has intentado volver a cargar la página?

irb(main):001:0> ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect
=> "{\"id\"=>12, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>110, \"created\"=>0, \"updated\"=>14, \"unchanged\"=>14176, \"failed\"=>0, \"sum\"=>22415, \"role_ids\"=>{3=>{\"created\"=>0, \"updated\"=>14, \"unchanged\"=>14145, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>31, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>5, \"failed\"=>0}}}, \"started_at\"=>Fri, 21 Apr 2017 10:33:07 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Fri, 21 Apr 2017 10:33:07 UTC +00:00, \"updated_at\"=>Fri, 21 Apr 2017 10:40:31 UTC +00:00}"

Lo noté en la mañana después de arrancar la PC. Así que hice una recarga dura :)
Ahora se está ejecutando una sincronización. Tal vez fue un problema de un temporizador.

Extraño 🤔 Esto también me parece bien. Ok, solo avísanos si hay algo.

¡Hola!

También probé el conector LDAP y encontré el mismo problema que Julian0o ( https://github.com/zammad/zammad/issues/350#issuecomment -295259450) y no declaré ningún grupo de administración. Entonces, gracias a @martini , usé el fragmento de rieles para recuperar el rol de administrador.

Nunca completé una importación LDAP pero los grupos parecían estar ya sincronizados.
Ahora mi usuario todavía parece tener el rol de Cliente y no puedo cambiar ninguna configuración.
image

Afortunadamente, todavía puedo realizar tareas administrativas, así que creé un usuario administrador independiente, pero aún no puedo cambiar nada en el primer usuario.

¿Alguna idea sobre esto?

Pude resolver esto ejecutando una vez más los comandos de rieles de martinis. 👍

Pero todavía tengo una pregunta: ¿está bien que los permisos del grupo se sincronicen incluso antes de que se realice la sincronización inicial?
En mi caso, me di cuenta de que se habrían sincronizado demasiados usuarios y salí de LDAP-Connection-Wizard, pero me encontré con la situación explicada anteriormente.

El LDAP-Import está colgado desde ayer
zammadldap
¿Es posible detener/reiniciar la importación?

Hola , @SGVubmluZ0cK : ¿puede usar la consola de administración de Rails y proporcionarme el resultado de cada uno de los siguientes tres comandos?

Setting.get('import_backends')

ImportJob.last.attributes.except('payload').inspect

ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect

¡Gracias!

Eso es lo que dice la consola de administración de Rails:

irb(main):004:0> Setting.get('import_backends')
=> ["Import::Ldap"]
irb(main):005:0> ImportJob.last.attributes.except('payload').inspect
=> "{\"id\"=>55, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>2, \"created\"=>2, \"updated\"=>0, \"unchanged\"=>496, \"failed\"=>0, \"sum\"=>2403, \"role_ids\"=>{3=>{\"created\"=>2, \"updated\"=>0, \"unchanged\"=>493, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>3, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>1, \"failed\"=>0}}}, \"started_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"updated_at\"=>Wed, 26 Apr 2017 10:00:11 UTC +00:00}"
irb(main):006:0> ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect
=> "{\"id\"=>55, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>2, \"created\"=>2, \"updated\"=>0, \"unchanged\"=>496, \"failed\"=>0, \"sum\"=>2403, \"role_ids\"=>{3=>{\"created\"=>2, \"updated\"=>0, \"unchanged\"=>493, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>3, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>1, \"failed\"=>0}}}, \"started_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"updated_at\"=>Wed, 26 Apr 2017 10:00:11 UTC +00:00}"

¡Muchas gracias!

Hola , @SGVubmluZ0cK : a primera vista, todo me parece bien. Seguramente no lo es. ¿Podrías por favor crear un nuevo problema? Hay algunas preguntas sobre su sistema/configuración que necesito saber para profundizar más. También hay una solicitud para su archivo production.log que sería genial si pudiera proporcionarla.
También copie y pegue el resultado de los comandos de arriba en su nuevo problema para que tengamos todo en su lugar. ¡Gracias!

Hola , @Julian0o : el problema en el que Zammad eliminó sus asignaciones de funciones debido a la falta de asignación de funciones del grupo LDAP a Zammad se solucionó con la confirmación anterior. Los usuarios ahora mantendrán su asignación de roles local si no se especifica ninguna asignación. Pero si se especifica una asignación, LDAP es la fuente principal para las asignaciones de funciones. Se agradecen los comentarios 🤓

Hola chicos. ¿Es posible la autenticación a través de ADFS o en las tarjetas para versiones futuras? 😃

¡Hola @kmclea16!

Sí, ADFS es posible ya que Zammad usa la gran gema omniauth para autenticar y sincronizar usuarios a través de proveedores externos. Ya existe una joya que proporciona ADFS para omniautenticación.

Sin embargo, no hay ningún plan para implementar esto en un futuro cercano, pero no debería ser tan difícil . Quién sabe, tal vez alguien pueda proporcionar una solicitud de extracción. Sería genial si pudieras crear un nuevo problema para eso.

La autenticación LDAP ya está lista para el próximo lanzamiento de la versión 1.6 de Zammad 🎉 No dude en abrir nuevos problemas si tiene problemas con esta funcionalidad.

@ kmclea16 : sería genial ver el problema de ADFS o incluso una solicitud de extracción 👀

¿Fue útil esta página
0 / 5 - 0 calificaciones