32 lines
994 B
Python
32 lines
994 B
Python
from ldap3 import Server, Connection, ALL
|
|
import streamlit as st
|
|
|
|
BASE_DN = "dc=koszewscy,dc=waw,dc=pl"
|
|
LDAP_HOST = "gra-01.koszewscy.waw.pl"
|
|
LDAP_PORT = 389
|
|
|
|
st.set_page_config(page_title="LDAP Search", layout="wide")
|
|
|
|
host = st.text_input("Host", LDAP_HOST)
|
|
port = st.number_input("Port", value=LDAP_PORT, step=1)
|
|
bind_dn = st.text_input("Bind DN", f"cn=admin,{BASE_DN}")
|
|
password = st.text_input("Password", type="password")
|
|
base_dn = st.text_input("Base DN", BASE_DN)
|
|
search_filter = st.text_input("Filter", "(objectClass=*)")
|
|
|
|
if st.button("Search"):
|
|
server = Server(host, port=port, get_info=ALL)
|
|
conn = Connection(server, user=bind_dn, password=password, auto_bind=True)
|
|
ok = conn.search(
|
|
search_base=base_dn,
|
|
search_filter=search_filter,
|
|
attributes=["*"]
|
|
)
|
|
if ok:
|
|
st.write(f"Entries: {len(conn.entries)}")
|
|
for e in conn.entries:
|
|
st.code(e.entry_to_ldif())
|
|
else:
|
|
st.error(conn.result)
|
|
conn.unbind()
|