Python LDAP -eksempel

Python LDAP -eksempel

LDAP er en lett katalogtilgangsprotokoll. Det er en internettprotokoll som fungerer på TCP/IP, og den brukes til å få tilgang til/hente informasjonen fra katalogene. Alle katalogene er ikke å foretrekke; Det brukes vanligvis til å få tilgang til de katalogene som er aktive.

Funksjoner/egenskaper ved LDAP

LDAP er kjent for å være en funksjonell modell; Det er enkelt og unikt på grunn av dens evne til å unngå duplisering av data for å holde innholdet trygt og sammenhengende. Noen av de viktigste egenskapene til LDAP er som følger.

  • LDAP er kjent for å være en open source implementeringsprotokoll og kan lastes ned gratis fra Internett.
  • Den har en viktig funksjon som omhandler datasikkerhet. Ettersom det støtter transportlagssikkerhet (TLS), kan sensitive data enkelt sikres fra snatchers.
  • LDAP er også gunstig når det gjelder å støtte databasesystemene. Når den lagrer kataloger og lar brukeren velge databasen i henhold til serverinformasjonen.

LDAP har mange funksjoner angående tjenestene den leverer. Vi vil fremheve noen av dem her.

For autentisering av klienten

Siden LDAP er lett tilgjengelig og danner mange operasjoner for å koble/koble til/fra en LDAP -server, forårsaker det rettighetene på tilgangen og beskytter den private informasjonen. Den autentiserer klientene som bestiller tilkoblingsforespørselen, slik at bare den autentiske og gyldige brukeren kan kobles til. For godkjenningsprosessen opprettes en klientøkt og avsluttes med å bruke funksjonene. Som bind/unbind, forlate.

For spørring av informasjon

Det inkluderer sammenlignings- og søkefunksjoner som brukes til å hente informasjonen fra katalogen. I denne situasjonen spiller en server en viktig rolle, ettersom den utfører mange handlinger ved å følge funksjonene som Search, sammenligne oppføring.

Endring av dataene

Endring av data omfatter tillegg, sletting og modifisering av lagrede data i den spesifiserte katalogen. Hovedfunksjonene inkluderer.

1. Legg til en oppføring.

2. Slett oppføringen av data.

3. Endring av dataene.

Denne modifiseringen er i begge ender. For eksempel etablerer klienten en økt med serveren ved å bruke vertsnavnet og portnummeret på klientsiden. For sikkerhetsformål bruker brukeren IDS og passord for godkjenningen. Mens serveren er serveren i stand til å lese, oppdatere og søke i dataene.

LDAP -interaksjon mellom klienten og serveren

Det ligner på noen av de enkle kundeserver-interaksjonene. I dette tilfellet bruker klienten protokollfunksjonene mot serveren. Nedenfor punktene forklarer dette samspillet kort.

  1. En klient sender en protokollforespørsel til serveren.
  2. Serveren utfører forskjellige operasjoner på katalogen som søk osv.
  3. Responsen fra serveren blir sendt tilbake til klienten.

Flere programvare kan enkelt opprette en tilkobling og lage en LDAP -server. Men alle av dem krever kataloger. Hvis brukeren ikke er villig til å installere katalogserveren på systemet, men ønsker å bruke LDAP, kan brukeren bruke Four11, Bigfoot, etc. Opprettelsen av LDAP -klienten er enkel ettersom det er SDK på mange andre språk som C ++, Java, etc. For å være LDAP -klient, trenger brukeren å utføre noen oppgaver.

  • For programmeringsspråket ditt, ta en SDK.
  • Bruk funksjonen til SDK for å lage LDAP.
  • Etter disse trinnene, utfører nå operasjoner på LDAP.

Opprettelse av LDAP -bruker

Nå oppretter vi en LDAP -bruker ved å bruke skriptet på Python -språk. En CSV -fil brukes. Etter opprettelse kan skriptet endres ytterligere i henhold til kravene, som å legge til et klikkbibliotek som oppretter enkeltbrukere.

Trinn 1: Installer kravene

Det første trinnet er å installere forutsetningene for brukeroppretting. Dette innebærer installasjon av "Python-LDAP".

# Pip install python-ldap

Trinn 2: Bruke Python fra en forbindelse med LDAP

Dette trinnet er å bygge en forbindelse med LDAP. For det første importerer du LDAP, SYS og LDAP_ADMIN_DN -moduler fra Python -biblioteket. Da vil vi definere en funksjon som bærer vert og passord som et argument for en funksjon.

Hovedfunksjonen er skrevet inne i kroppen til den 'prøv' delen av eksepsjonell håndtering. Dette vil eliminere forekomsten av ethvert stort problem, og hvis det oppstår noen minuttfeil, kastes en unntaksforespørsel, som løses ved fangstmetoden (). Dette er ikke beskrevet her.

Når du beveger deg tilbake mot koden, bygges tilkoblingen ved å bruke den underskrevne linjen.

# Ldap_conn = ldap.Initialiser (ldap_host) import ldap
Importer Sys
Importer LDAP_ADMIN_DN
def try_ldap_bind (ldap_host, admin_pass):
prøve:
LDAP_Conn = LDAP.Initialize (ldap_host)
unntatt LDAP.SERVER NEDE:
Skriv ut ("Kan ikke kontakte LDAP -serveren")
Avslutt (4)
prøve:
LDAP_Conn.simple_bind_s (ldap_admin_dn, admin_pass)
Bortsett fra (LDAP.UGYLDIGE LEGITIMASJON):
Skriv ut ("Dette passordet er feil!")
sys.Avslutt (3)
Print ("Autentisering vellykket")

Hvis passordet eller vertsnavnet ikke er riktig, vises en melding at passordet ikke er riktig. Ellers viser det en melding om at godkjenningen er vellykket når det gjelder riktig legitimasjon.

Trinn 3: CSV -fillasting

Etter å ha importert CSV -modulen, tar vi en tom rekke. For å åpne den allerede opprettet CSV -filen, brukes her Open () -funksjonskommandoen. Filen åpnes ved å bruke et objekt. Dette objektet og begge filene sendes som parametere for den åpne funksjonen (). Hver linje i koden anses som linje for linje gjennom leserfunksjonen.

#Vusers_Reader = CSV.leser (brukere_csv_file)

Alle verdiene legges inn i matrisen ved å bruke en for loop. Hvert ord er plassert ved hver indeks av en matrise. For eksempel er det første ordet brukernavnet; Det er plassert ved nullindeksene til den matrisen. En lignende prosess brukes for alle indeksene. Disse ordene er til stede i variabelen 'bruker'. Nå er disse vedlagt med "brukere_to_import" -arrayen gjennom vedleggsfunksjonen.

# brukere_to_import.vedlegg (bruker)

Slik er dataene som er til stede i CSV -filen lastes nå.

Importer CSV
brukere_to_import = []
med åpen ('fil.csv ',' rb ') som brukere_csv_file:
brukere_reader = CSV.leser (brukere_csv_file)
for rad i brukere_reader:
bruker =
'Brukernavn': rad [0],
'Passord': rad [1],
'FirstName': Row [2],
'LastName': Row [3],
'gruppe': rad [4],
'Shell': rad [5],
'Hosts': Row [6],

brukere_to_import.vedlegg (bruker)

Trinn 4: Brukeroppretting på LDAP -serveren

Fra CSV -filen oppretter vi en bruker ved hjelp av en funksjon. Det første trinnet omhandler å definere en funksjon som heter 'create_user'. For eksempel tilfellet med gruppen vi har:

# Gid = find_gid (bruker ['gruppe']) def create_user (bruker, admin_pass):
dn = 'uid =' + bruker ['brukernavn'] + ',' + ldap_base_dn
fullname = bruker ['FirstName'] + + bruker ['lastName']
home_dir = home_base + '/' + bruker ['brukernavn']
gid = find_gid (bruker ['gruppe'])
lastchange = int (matematikk.gulv (tid () / 86400)))

Det tar brukernavnet og passordet til administratoren. Inne i funksjonskroppen er hvert felt i brukeropprettingsskjemaet fylt med informasjonsstykke det får. Denne informasjonen lagres i variablene. Disse variablene brukes mens du tildeler verdiene i matrisen. Til slutt bruker vi vedleggsfunksjonen for å binde verdiene. Her brukes en if-uttalelse. Dette vil sjekke lengden på "bruker" -arrayen gjennom Len ().

# if (len (bruker ['hosts'])):
# oppføring.Legg til (('vert', bruker ['hosts'])) oppføring = []
inngang.forlenge([
('ObjectClass', ["Person", "Organisatorisk person",
"Inetorgperson", "PosixAccount", "Top", "ShadowAccount", "HostObject"]), ('uid', bruker ['brukernavn']),
('CN', fullnavn),
('Givenavn', bruker ['FirstName']),
('Sn', bruker ['LastName']),
('Mail', bruker ['e -post']),
('uidnumber', str (bruker ['uid'])),
('GidNumber', Str (GID)),
('Loginshell', bruker ['Shell']),
('Homedirectory', home_dir),
('Shadowmax', "99999"),
('Shadowwarning', "7"),
('Shadowlastchange', Str (lastchange)), ('UserPassword', bruker ['passord'])
])
if (len (bruker ['hosts'])):
inngang.Legg til ('Vert', bruker ['Hosts']))

Den samme prosessen med array -erklæring brukes her. Hver indeks for matrisen inneholder verdien fra innholdet som er til stede i CSV -filen. Denne gangen får hvert indeksnummer også variabelnavnet som vi har brukt i funksjonen ovenfor.

Nå som vi beveger oss mot den siste fasen av brukeropprettelsen, vil vi her bygge en forbindelse når brukeren opprettes ved å tilordne hver verdi av matrisen. Bruk igjen en prøve kropp for å ignorere feil. Til slutt vil vi bruke unbind -funksjonen for å lukke forbindelsen.

# LDAP_Conn.unbind_s () ldap_conn = ldap.Initialize (ldap_host)
LDAP_Conn.simple_bind_s (ldap_admin_dn, admin_pass)
prøve:
LDAP_Conn.add_s (dn, oppføring)
endelig:
LDAP_Conn.unbind_s ()

Konklusjon

'Python LDAP -eksempel' tar sikte på å gi LDAP -protokollens funksjoner, funksjoner og brukeropprettelsesfunksjon. Vi har kort forklart denne protokollens viktige aspekter ved å fremheve samspillet mellom server og klient. Vi er håpefulle at denne opplæringen vil være fordelaktig for brukeren angående LDAP -implementering på Python -språket.