Rabbitmq + Samba AD

Rabbitmq + Samba AD
« kdy: 07. 09. 2022, 10:46:02 »
Ahoj,
nema nekdo funckni konfiguraci rabbitmq proti AD/ldapu s bind uzivatelem, nejlepe proti samotne Samba AD?
Zkousel jsem:
https://www.rabbitmq.com/ldap.html
https://stackoverflow.com/questions/58970322/how-to-configure-rabbitmq-with-ldap-for-ad-groups apod.,

ale jediny vysledek i pres zapnute logovani network_unsafe je:
Kód: [Vybrat]
2022-09-07 10:22:07 =ERROR REPORT====
** Generic server <0.3216.0> terminating
** Last message in was {submit,#Fun<rabbit_auth_backend_ldap.14.130291405>,<0.3323.0>,reuse}
** When Server state == {from,<0.3323.0>,#Ref<0.1575869796.3397124098.189438>}
** Reason for termination ==
** {error,noSuchObject}
2022-09-07 10:22:07 =CRASH REPORT====
  crasher:
    initial call: worker_pool_worker:init/1
    pid: <0.3216.0>
    registered_name: []
    exception exit: {{error,noSuchObject},[{gen_server2,terminate,3,[{file,"src/gen_server2.erl"},{line,1183}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,236}]}]}
    ancestors: [ldap_pool_sup,rabbit_sup,<0.273.0>]
    message_queue_len: 0
    messages: []
    links: [<0.3214.0>,<0.3324.0>]
    dictionary: [{{parse_memo_table,rabbit_semver_parser},#Ref<0.1575869796.3397255169.196445>},{ldap_conns,#{{false,["DC1_FQDN","DC2_FQDN","DC3_FQDN"],[{timeout,10000},{log,#Fun<rabbit_auth_backend_ldap.12.130291405>},{port,636},{idle_timeout,300000},{anon_auth,false}]} => <0.3324.0>}},{timeouts,{dict,1,16,16,8,80,48,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[],[],[],[],[[{false,["DC3_FQDN","DC2_FQDN","DC1_FQDN"],[{timeout,10000},{log,#Fun<rabbit_auth_backend_ldap.12.130291405>},{port,636},{idle_timeout,300000},{anon_auth,false}]}|#Ref<0.1575869796.3397124097.196446>]],[],[],[],[],[],[],[],[],[],[],[]}}}},{worker_pool_worker,true},{rand_seed,{#{jump => #Fun<rand.3.47293030>,max => 288230376151711743,next => #Fun<rand.5.47293030>,type => exsplus},[157340505717612509|275064144784962344]}},{worker_pool_name,ldap_pool}]
    trap_exit: false
    status: running
    heap_size: 2586
    stack_size: 28
    reductions: 187199
  neighbours:
    neighbour: [{pid,<0.3324.0>},{registered_name,[]},{initial_call,{erlang,apply,2}},{current_function,{eldap,loop,2}},{ancestors,[]},{message_queue_len,0},{links,[<0.3216.0>]},{trap_exit,false},{status,waiting},{heap_size,987},{stack_size,6},{reductions,15336},{current_stacktrace,[{eldap,loop,2,[{file,"eldap.erl"},{line,517}]}]}]
2022-09-07 10:22:07 =SUPERVISOR REPORT====
     Supervisor: {local,ldap_pool_sup}
     Context:    child_terminated
     Reason:     {error,noSuchObject}
     Offender:   [{pid,<0.3216.0>},{id,1},{mfargs,{worker_pool_worker,start_link,[ldap_pool]}},{restart_type,transient},{shutdown,4294967295},{child_type,worker}]

2022-09-07 10:22:07 =CRASH REPORT====
  crasher:
    initial call: cowboy_stream_h:request_process/3
    pid: <0.3323.0>
    registered_name: []
    exception exit: {{{error,noSuchObject},{gen_server2,call,[<0.3216.0>,{submit,#Fun<rabbit_auth_backend_ldap.14.130291405>,<0.3323.0>,reuse},infinity]}},[]}
    ancestors: [<0.3322.0>,<0.3101.0>,<0.3100.0>,rabbit_web_dispatch_sup,<0.3089.0>]
    message_queue_len: 0
    messages: []
    links: [<0.3322.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 6772
    stack_size: 28
    reductions: 5148
  neighbours:
2022-09-07 10:22:07 =ERROR REPORT====
Ranch listener {acceptor,{0,0,0,0,0,0,0,0},15672}, connection process <0.3322.0>, stream 1 had its request process <0.3323.0> exit with reason {{error,noSuchObject},{gen_server2,call,[<0.3216.0>,{submit,#Fun<rabbit_auth_backend_ldap.14.130291405>,<0.3323.0>,reuse},infinity]}} and stacktrace []


Coz je spanelska vesnice, ktera se neda debugovat...
Diky


Re:Rabbitmq + Samba AD
« Odpověď #1 kdy: 07. 09. 2022, 11:05:07 »
dostal jsi návratovou hodnotu noSuchObject (to je chybová hláška ldapu), takže asi máš špatně vyplněné údaje pro AD

Re:Rabbitmq + Samba AD
« Odpověď #2 kdy: 07. 09. 2022, 12:39:53 »
Tak to je jediny, co vim. Kdyz mi to ale nevypise ani ldap dotazy, tak vim stejne nic...

Re:Rabbitmq + Samba AD
« Odpověď #3 kdy: 07. 09. 2022, 15:01:34 »
podle callstacku to spadlo při bindu, tj. nespíš samotný bind user. A trace logy ti více neřeknou? Nemáš logy z Samby AD? Tam bude na co se dotazoval.

Pokud chceš konkrétní radu, ukaž jak vypadá tvoje konfigurace a jak vypadá výstup třeba z ldapsearch na bind usera.

Nebo si mezi rabbita a ldap dej nějakou logující proxy.

Re:Rabbitmq + Samba AD
« Odpověď #4 kdy: 08. 09. 2022, 10:51:33 »
Tu puvodni konfiguraci jsem smazal a napsal ji uplne znova (copy-paste z dokumentace a odstranovani zejmena v advanced.config pri porovnani zakladnich konfiguraci ze stackoverflow apod.), ten bind se na prvni pokus chytnul. Nesikovne je, ze aby clovek videl ty LDAP dotazy, tak nejenze musi zapnout to logovani, ale musi i prepnout na debug cely rabbit. A nemoznost reloadu konfigurace taky neni nejstastnejsi reseni.

Kazdopadne vyreseno pro zakladni vyuziti.


Re:Rabbitmq + Samba AD
« Odpověď #5 kdy: 08. 09. 2022, 23:03:20 »
Tu puvodni konfiguraci jsem smazal a napsal ji uplne znova (copy-paste z dokumentace a odstranovani zejmena v advanced.config pri porovnani zakladnich konfiguraci ze stackoverflow apod.), ten bind se na prvni pokus chytnul. Nesikovne je, ze aby clovek videl ty LDAP dotazy, tak nejenze musi zapnout to logovani, ale musi i prepnout na debug cely rabbit. A nemoznost reloadu konfigurace taky neni nejstastnejsi reseni.

Kazdopadne vyreseno pro zakladni vyuziti.

rabbitmq umožňuje ldap konfiguraci aplikovat runtime, např. přes rabbitmqctl eval, není potřeba kvůli tomu otáčet proces. Jinak, to že neumí reload konfigurace je omezení návrhu, mají fronty v paměti v rámci těch instancí, které tu konfiguraci používají, něco se dá měnit přes runtime, třeba ten ldap.