Jos työskentelet keskisuuressa tai suuressa yrityksessä, olet todennäköisesti päivittäin vuorovaikutuksessa LDAP: n kanssa.
oli kyseessä sitten Windows-toimialueen ohjain tai Linux-OpenLDAP-palvelin, LDAP-protokolla on erittäin hyödyllinen autentikoinnin keskittämiseen.
LDAP-hakemistosi kasvaessa saatat kuitenkin eksyä kaikkiin kirjauksiin, joita sinun on ehkä hallittava.
onneksi on komento, joka auttaa sinua etsimään LDAP-hakemistopuun tietueita : ldapsearch.
tässä opetusohjelmassa näemme, miten voit helposti hakea LDAP: tä ldapsearch-ohjelmalla.
käymme läpi myös komennon antamia vaihtoehtoja kehittyneiden LDAP-hakujen suorittamiseksi.
Sisällysluettelo
- Etsi LDAP-hakua käyttäen LDAP-hakua
- Etsi LDAP järjestelmänvalvojan tilillä
- LDAP-hakujen suorittaminen suodattimilla
- kaikkien objektien löytäminen hakemistopuusta
- käyttäjätilien löytäminen ldapsearch
- ja ldapsearchia
- tai operaattori, joka käyttää ldapsearch
- Negaatiosuodattimet käyttäen ldapsearch
- LDAP-palvelimen kokoonpanon löytäminen ldapsearch
- yleismerkkien käyttäminen LDAP-Hauissa
- LDAP-Hakuasetukset
- LDAP Extensible Match-suodattimia
- Supercharging default operators
- johtopäätös
Etsi LDAP-hakua käyttäen LDAP-hakua
helpoin tapa hakea LDAP-hakua on käyttää LDAP-hakua ”- x” – valinnalla yksinkertaiseen todennukseen ja määrittää hakukanta ”- b”: llä.
Jos et suorita hakua suoraan LDAP-palvelimella, joudut määrittelemään palvelimen valitsimella ”- H”.
$ ldapsearch -x -b <search_base> -H <ldap_host>
esimerkkinä mainittakoon, että sinulla on OpenLDAP-palvelin asennettuna ja käynnissä verkon 192.168.178.29-isännällä.
jos palvelimesi hyväksyy anonyymin todennuksen, voit suorittaa LDAP-hakukyselyn sitoutumatta ylläpitotiliin.
$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29
kuten näet, jos et määritä suodattimia LDAP-asiakas olettaa, että haluat suorittaa haun hakemistopuun kaikista olioluokista.
tämän seurauksena sinulle esitetään paljon tietoa. Jos haluat rajoittaa esitettyjä tietoja, aiomme selittää LDAP-suodattimet seuraavassa luvussa.
Etsi LDAP järjestelmänvalvojan tilillä
joissakin tapauksissa haluat ehkä suorittaa LDAP-kyselyt järjestelmänvalvojan tilinä, jotta sinulle voidaan esittää täydentäviä tietoja.
tämän saavuttamiseksi sinun on tehtävä sidontapyyntö LDAP-puun järjestelmänvalvoja-tilin avulla.
LDAP-hakua varten sinun täytyy suorittaa ”ldapsearch”- kysely bind DN: n ”- D” – valinnalla ja ”- W”: n avulla, jotta voit pyytää salasanaa.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W
esimerkkinä mainittakoon, että järjestelmänvalvojatililläsi on seuraava tunnettu nimi : ”cn=admin,dc=devconnected,dc=com”.
jotta LDAP-haku voitaisiin suorittaa tällä tilillä, on suoritettava seuraava kysely
$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29 -D "cn=admin,dc=devconnected,dc=com" -W
kun suoritat LDAP-haun järjestelmänvalvojan tilinä, saatat altistua käyttäjän salatuille salasanoille, joten varmista, että suoritat kyselysi yksityisesti.
LDAP-hakujen suorittaminen suodattimilla
tavallisen LDAP-hakukyselyn suorittaminen ilman suodattimia on todennäköisesti ajan ja resurssien tuhlausta.
useimmiten haluat suorittaa LDAP-hakukyselyn löytääksesi tiettyjä kohteita LDAP-hakemistopuustasi.
etsiäksesi LDAP-merkintää suodattimilla, voit liittää suodattimen ldapsearch-komennon loppuun : vasemmalla määritetään objektityyppi ja oikealla objektin arvo.
valinnaisesti voit määrittää objektista palautettavat attribuutit (käyttäjätunnus, käyttäjän salasana jne.)
$ ldapsearch <previous_options> "(object_type)=(object_value)" <optional_attributes>
kaikkien objektien löytäminen hakemistopuusta
jotta voit palauttaa kaikki LDAP-puussa olevat objektit, voit liittää ”objectclass” – suodin ja yleismerkin ”*” määrittääksesi, että haluat palauttaa kaikki objektit.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=*"
tätä kyselyä suoritettaessa sinulle esitetään kaikki puussa olevat objektit ja attribuutit.
käyttäjätilien löytäminen ldapsearch
– hakua käyttäen esimerkiksi sanotaan, että haluat löytää kaikki käyttäjätilit LDAP-hakemistopuusta.
oletuksena käyttäjätileillä on todennäköisesti ”tilin” rakenteellinen objektiluokka, jonka avulla voidaan rajata kaikki käyttäjätilit.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account"
oletuksena kysely palauttaa kaikki annetulle olioluokalle käytettävissä olevat attribuutit.
kuten edellisessä osiossa on määritelty, voit liittää valinnaisia attribuutteja kyselyysi, jos haluat rajata hakua.
esimerkiksi, jos olet kiinnostunut vain käyttäjän CN -, UID-ja kotihakemistosta, voit suorittaa seuraavan LDAP-haun
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account" cn uid homeDirectory
mahtava, olet suorittanut LDAP-haun onnistuneesti suodattimilla ja attribuuttivalitsimilla!
ja ldapsearchia
käyttävä operaattori, jotta ”ja” operaattorit erottaisivat useita suodattimia, on sulkeiden väliin liitettävä kaikki ehdot ja kyselyn alkuun on kirjoitettu ”&” – merkki.
$ ldapsearch <previous_options> "(&(<condition_1>)(<condition_2>)...)"
esimerkiksi sanotaan, että haluat löytää kaikkien tietueiden ”objektiluokan”, joka on yhtä kuin ”tili” ja ”UID”, joka on yhtä kuin ”john”, ajaisit seuraavan kyselyn
$ ldapsearch <previous_options> "(&(objectclass=account)(uid=john))"
tai operaattori, joka käyttää ldapsearch
jotta ”tai” operaattorit erottavat useita suodattimia, on sulkeiden väliin liitettävä kaikki ehdot ja kyselyn alkuun on kirjoitettu ” | ” – merkki.
$ ldapsearch <previous_options> "(|(<condition_1>)(<condition_2>)...)"
esimerkiksi, jos haluat löytää kaikki merkinnät, joiden objektiluokka on tyyppi ”tili” tai tai Tyyppi ”organizationalRole”, voit suorittaa seuraavan kyselyn
$ ldapsearch <previous_options> "(|(objectclass=account)(objectclass=organizationalRole))"
Negaatiosuodattimet käyttäen ldapsearch
joissakin tapauksissa haluat negatiivisesti vastata joitakin merkintöjä LDAP-hakemistopuusi.
saadakseen negatiivisen täsmäyssuodattimen, sinun täytyy liittää ehtosi(s) tekstiin ”!”luonne ja ehdot erotettu sulkemalla suluissa.
$ ldapsearch <previous_options> "(!(<condition_1>)(<condition_2>)...)"
esimerkiksi, jos haluat sovittaa kaikki merkinnät, joilla ei ole ”CN” – attribuuttia arvo ”john”, kirjoittaisit seuraavan kyselyn
$ ldapsearch <previous_options> "(!(cn=john))"
LDAP-palvelimen kokoonpanon löytäminen ldapsearch
yksi ldapsearch-komennon kehittynyt käyttö on hakea LDAP: n konfiguraatio puu.
Jos tunnet Openldapin, tiedät, että LDAP-hierarkiasi huipulla on globaali konfiguraatio-objekti.
joissakin tapauksissa haluat ehkä nähdä LDAP-määrityksesi attribuutteja, jotta voit muokata kulunvalvontaa tai muokata esimerkiksi pääkäyttäjän salasanaa.
etsi LDAP-asetuksia komennolla ”ldapsearch” ja määrittele LDAP-puun hakukannaksi ”CN=config”.
tämän haun suorittamiseksi sinun on käytettävä valitsinta ”-Y” ja määritettävä ”ulkoinen” todennusmekanismiksi.
$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
Huom : Tämä komento on suoritettava palvelimella suoraan, ei yhdeltä LDAP-asiakkaaltasi.
oletuksena tämä komento palauttaa paljon tuloksia, kun se palaa taaksepäin, skeemat ja moduulit.
Jos haluat rajoittaa haun tietokantakokoonpanoihin, voit määrittää ”olcDatabaseConfig” – olioluokan ldapsearch-ohjelmalla.
$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config "(objectclass=olcDatabaseConfig)"
yleismerkkien käyttäminen LDAP-Hauissa
toinen tehokas tapa etsiä LDAP-tietueiden luettelosta on käyttää yleismerkkejä, kuten asteriskia (”*”).
yleismerkillä on sama funktio kuin tähdellä, jota käytät regexissä : sitä käytetään vastaamaan mitä tahansa määritettä, joka alkaa tai päättyy tietyllä substraatilla.
$ ldapsearch <previous_options> "(object_type)=*(object_value)"$ ldapsearch <previous_options> "(object_type)=(object_value)*"
esimerkkinä voidaan sanoa, että halutaan löytää kaikki merkinnät, joiden attribuutti ”uid” alkaa kirjaimella ”j”.
$ ldapsearch <previous_options> "uid=jo*"
LDAP-Hakuasetukset
tässä opetusohjelmassa opit ldapsearch-perusvaihtoehdoista, mutta on monia muita, jotka saattavat kiinnostaa sinua.
LDAP Extensible Match-suodattimia
Extensible LDAP match-suodattimia käytetään nykyisten operaattoreiden (esimerkiksi tasa-arvo-operaattorin) ahtamiseen määrittämällä, minkä tyyppistä vertailua haluat tehdä.
Supercharging default operators
to supercharge a LDAP operator, you have to use the ”:=” syntax.
$ ldapsearch <previous_options> "<object_type>:=<object_value>"
esimerkiksi, jos haluat etsiä kaikkia tietueita, joiden ”CN” on yhtä suuri kuin ”john”, suorita seuraava komento
$ ldapsearch <previous_options> "cn:=john"# Which is equivalent to$ ldapsearch <previous_options> "cn=john"
kuten luultavasti huomasit, haun suorittaminen ”john” tai ”JOHN” palauttaa saman tarkan tuloksen.
tämän vuoksi haluat ehkä rajoittaa tulokset ”john” – täsmäykseen, jolloin haun kirjainkoko on herkkä.
ldapsearch-ohjelmalla voi lisätä lisäsuodattimia, jotka on erotettu”: ”- merkeillä.
$ ldapsearch <previous_options> "<object_type>:<op1>:<op2>:=<object_value>"
esimerkiksi hakua varten, joka on kirjainkokoinen, suoritettaisiin seuraava komento
$ ldapsearch <previous_options> "cn:caseExactMatch:=john"
Jos et tunne LDAP-ottelusuodattimia, tässä on lista kaikista käytettävissäsi olevista operaattoreista.
johtopäätös
tässä opetusohjelmassa opit, miten voit hakea LDAP-hakemistopuuta ldapsearch-komennolla.
olet nähnyt perustietojen ja attribuuttien etsimisen perusteet sekä monimutkaisten yhteensopivuussuodattimien rakentamisen operaattoreiden (ja, tai ja negatiivisten operaattoreiden) kanssa.
olet myös oppinut, että olemassa olevia operaattoreita on mahdollista supistaa käyttämällä extensible match-vaihtoehtoja ja määrittämällä käytettävä mukautettu operaattori.
Jos olet kiinnostunut kehittyneestä Linux-järjestelmän hallinnasta, meillä on sille omistettu kokonainen osio nettisivuilla, joten muista tarkistaa se!