Size: a a a

2021 July 29

MM

Maksim M in NOC Project
я не вижу вывода
источник

M

Muslim in NOC Project
ldap://ad.domain.ru:389 - cleartext - user: ad.domain.ru\admin - not lazy - unbound - closed - <no socket> - tls not started - not listening - SyncStrategy - internal decoder
источник

MM

Maksim M in NOC Project
хотя стоп
источник

MM

Maksim M in NOC Project
это ок
источник

G

Gitlab in NOC Project
источник

MM

Maksim M in NOC Project
# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------
# Check LDAP User info debugging utility
# ----------------------------------------------------------------------
# Copyright (C) 2007-2018 The NOC Project
# See LICENSE for details
# ----------------------------------------------------------------------
import ldap3
from ldap3 import SIMPLE, SYNC, ALL, SASL, SUBTREE, NTLM, BASE, ALL_ATTRIBUTES, Entry, Attribute
# NOC modules
from noc.main.models.authldapdomain import AuthLDAPDomain
from noc.core.management.base import BaseCommand
from noc.core.mongo.connection import connect
from noc.services.login.backends.loader import loader
from noc.services.login.backends.ldap import LdapBackend
from noc.core.comp import smart_text

connect()

def ad_search_by_user(connection, user, path_root):
   user_info = {
       "user_dn": user
   }
   adFltr = "(&(objectclass=user)(mail=" + user + "))"
   #print(adFltr)
   result = connection.search(search_base=path_root,
                       search_filter=adFltr,
                       search_scope=SUBTREE,
                       attributes=["*"],
                       size_limit=0)
   if result:
       print(connection.entries)
       entry = connection.entries[0]
       attrs = entry.entry_attributes_as_dict
       for k, v in attrs.items():
           if "whenChanged" in k:
               continue
           if "mDBUseDefaults" in k:
               continue
           if k in attrs:
               value = attrs[k]
               if isinstance(value, (list, tuple)):
                   value = smart_text(value)
               user_info[k] = value
       return user_info
   else:
       print(
           "No user: %s", user
       )


def handle(backend, user, path_root=None, sync=False, *args, **kwargs):
   backend = loader[backend]
   auth = backend()
   ldap_domain = AuthLDAPDomain.get_default_domain()
   print(ldap_domain.root)
   server_pool = auth.get_server_pool(ldap_domain)
   connect = ldap3.Connection(server_pool, user=ldap_domain.bind_user, password=ldap_domain.bind_password)
   if not connect.bind():
       print(
           "Cannot bind as %s to search groups",
           ldap_domain.bind_user
       )
       connect = None
   if not path_root:
       path_root = ldap_domain.root
   result = ad_search_by_user(connect, user, ldap_domain.root)
   print(result)

user = "usermail"
handle(backend="ldap", user=user)
источник

MM

Maksim M in NOC Project
в поле юзер внизу укажите к примеру почту юзера который есть у вас в системе
источник

AA

Andrey Aversant in NOC Project
источник

AA

Andrey Aversant in NOC Project
возможно, стоит изучить тут
источник

MM

Maksim M in NOC Project
о неожиданно )
источник

MM

Maksim M in NOC Project
но это не точно
источник

M

Muslim in NOC Project
вот так?  -  handle(backend="ldap", user=admin@ad.domain.ru)
источник

MM

Maksim M in NOC Project
user = "usermail"
handle(backend="ldap", user=user
источник

MM

Maksim M in NOC Project
вот так
источник

M

Muslim in NOC Project
тоже так думаю что нужно добавить что предложили в этой теме
kwargs = {"user": "cn=%s,%s" % (user, ldap_domain.get_user_search_dn())}
источник

M

Muslim in NOC Project
>>> user = "admin@ad.domain.ru"
>>> handle(backend="ldap", user=user)

2021-07-29 16:57:36,115 [noc.core.loader.base] [authbackend] Loading ldap
CN=Users,DC=ad,DC=domain,DC=ru
No user: %s admin@ad.domain.ru
None
источник

MM

Maksim M in NOC Project
CN=Users,DC=ad,DC=domain,DC=ru
источник

MM

Maksim M in NOC Project
вот тут если убрать CN=users
источник

MM

Maksim M in NOC Project
в настройках
источник

MM

Maksim M in NOC Project
если бы не было подключения к ЛДап то была бы другая ошибка
источник