en
Sprog
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI-oversættelse
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

LDAP-godkendelse

LDAP

Sådan konfigureres LDAP-godkendelse

Oversigt
Erklæring af LDAP-godkendelsestilstand
På flyvebrugeroprettelsen
Gruppebaseret LDAP-login
Fejlfinding
Hjørnesituationer

 

Oversigt

LDAP (Lightweight Directory Access Protocol) er en softwareprotokol, der gør det muligt for alle at lokalisere organisationer, enkeltpersoner og andre ressourcer såsom filer og enheder i et netværk, hvad enten det er på det offentlige internet eller på et virksomheds intranet. LDAP er en "let" (mindre mængde kode) version af Directory Access Protocol (DAP), som er en del af X.500, en standard for bibliotekstjenester i et netværk. LDAP er lettere, fordi den i sin oprindelige version ikke inkluderede sikkerhedsfunktioner. Easy Redmine understøtter indbygget LDAP -godkendelse ved hjælp af en eller flere LDAP -mapper. De understøttede katalogtjenestetyper inkluderer Active Directory, OpenLDAP, eDirectory, Sun Java System Directory Server samt andre kompatible telefonbogstjenester.

Et LDAP-bibliotek er organiseret i et simpelt "træ" -hierarki, der består af følgende niveauer:

  1. Rootkataloget (startstedet eller kilden til træet), som forgrener sig til
  2. Lande, som hver forgrener sig til
  3. Organisationer, der forgrener sig til
  4. Organisatoriske enheder (afdelinger, afdelinger osv.), Der forgrener sig til (inkluderer en post til)
  5. Enkeltpersoner (som inkluderer personer, filer og delte ressourcer såsom printere)

 

Erklæring af LDAP-godkendelsestilstand

Gå til Administration, og klik på "LDAP-godkendelse" i menuen. Her finder du listen over alle eksisterende LDAP-godkendelsestilstande inklusive mulighederne for at teste eller slette en hvilken som helst. For at oprette en ny skal du klikke på den grønne knap "Ny godkendelsestilstand" i øverste højre hjørne.

LDAP-tjenesteudbyderen bruger en URL til at konfigurere forbindelsen til katalogserveren. For at generere URL'en til LDAP-forbindelsen skal følgende felter specificeres:

  • Navn: Et vilkårligt navn på biblioteket.
  • Host: LDAP-værtsnavnet (testserver).
  • Port: LDAP-porten (standard er 389).
  • LDAPS: Kontroller dette, hvis du vil eller skal bruge LDAPS til at få adgang til biblioteket.
  • Konto: Indtast et brugernavn, der har læseadgang til LDAP, ellers skal dette felt være tomt, hvis din LDAP kan læses anonymt (Active Directory-servere tillader normalt ikke anonym adgang).
  • Adgangskode: Adgangskode til kontoen.
  • Base DN: Det øverste niveau af dit LDAP-katalogtræ (eksempel: dc = eksempel, dc = com).
  • LDAP-filter: Filtre kan bruges til at begrænse antallet af brugere eller grupper, der har adgang til en applikation. I det væsentlige begrænser filteret, hvilken del af LDAP-træet applikationen synkroniserer fra. Et filter kan og skal skrives til både bruger- og gruppemedlemskab. Dette sikrer, at du ikke oversvømmer din applikation med brugere og grupper, der ikke har brug for adgang.
     

    Prøvefiltre

    (advarsel) Disse filtre er skrevet til Active Directory. For at bruge dem til noget som OpenLDAP, skal attributterne ændres.

    Dette vil kun synkronisere brugere i gruppen 'CaptainPlanet' - dette skal anvendes på Brugerobjektfilter:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    Og dette vil søge efter brugere, der er medlem af denne gruppe, enten direkte eller via reden:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    (Info) Vigtigt at have Active Directory memberOf: 1.2.840.113556.1.4.1941 hvis du vil finde indlejrede grupper (skal ikke erstatte den numeriske streng) i CaptainPlanet-gruppen.

    Dette vil søge efter brugere, der er medlem af en eller alle 4-grupper (ild, vind, vand, hjerte)

    (&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
  • Timeout (i sekunder): Hvis LDAP-udbyderen ikke får et LDAP-svar inden for den specificerede periode, afbryder den læseforsøget. Heltallet skal være større end nul. Et heltal mindre end eller lig med nul betyder, at der ikke er specificeret nogen læsetimeout, hvilket er ækvivalent med at vente på reaktionen uendeligt, indtil det modtages, hvilket som standard er den oprindelige opførsel. Hvis denne egenskab ikke er specificeret, er standard at vente på svaret, indtil det er modtaget.
  • On-the-fly brugeroprettelse: Ved at kontrollere dette får enhver LDAP -bruger automatisk oprettet sin Easy Redmine -konto første gang, han logger på Easy Redmine. Ellers bliver du nødt til manuelt at oprette brugeren i Easy Redmine for hver LDAP -bruger, der ønsker at logge ind.

Egenskaber (eksempler):

  • Login attribut: Det login-navn, som en bruger logger på og godkendes under.
  • Fornavn-attribut: Attribut til fornavn.
  • Efternavn attribut: Attribut til efternavn.
  • E-mail-attribut: Attribut til e-mail-adresse.

Easy Redmine -brugere skal nu kunne godkende ved hjælp af deres LDAP -brugernavn og adgangskode, hvis deres konti er indstillet til at bruge LDAP til godkendelse (tjek indstillingen "Godkendelsestilstand", når du redigerer brugerens profil).

For at teste dette skal du oprette en Easy Redmine-bruger med et login, der matcher hans LDAP-konto (normalt vil Easy Redmine rådgive dig ved at slå LDAP-data op), vælg den nyoprettede LDAP i rullelisten Autentificeringstilstand (dette felt er kun synlig på kontoskærmen, hvis en LDAP erklæres) og lad hans adgangskode være tom. Prøv at logge ind på Easy Redmine ved hjælp af LDAP brugernavn og adgangskode.

 

På flyvebrugeroprettelsen

Ved at tjekke on-the-fly brugeroprettelse, vil enhver LDAP -bruger automatisk få sin Easy Redmine -konto oprettet første gang, han logger på Easy Redmine.
Til det skal du angive navnet på LDAP -attributter (fornavn, efternavn, e -mail), der skal bruges til at oprette deres Easy Redmine -konti.

Her er et typisk eksempel ved hjælp af Active Directory:

Navn = Min kataloghost = host.domain.org Port = 389 LDAPS = ingen konto = MyDomain \ Brugernavn (eller Brugernavn @ MyDomain afhængigt af AD-server) Adgangskode = Base DN = CN = brugere, DC = vært, DC = domæne, DC = org On-the-fly bruger oprettelse = ja Attributter Login = sAMAccountName Fornavn = givet navn Efternavn = sN E-mail = mail

Her er et andet eksempel på Active Directory med et kompartmenteret intranet:

Navn = Bare en beskrivelse af siden for godkendelsestilstande Host = DepartmentName.OrganizationName.local Port = 389 LDAPS = ingen konto = DepartmentName \ UserName (eller UserName @ MyDomain afhængigt af AD-server eller bind DN uid = Manager, cn = brugere, dc = MyDomain, dc = com) Adgangskode = Base DN = DC = Afdelingsnavn, DC = Organisationsnavn, DC = lokal On-the-fly bruger oprettelse = ja Attributter Login = sAMAccountName Fornavn = givet navn Efternavn = sN E-mail = mail

Bemærk, at LDAP-attributnavne er store og små bogstaver.

Dynamisk bindekonto

Ovenstående opsætning kræver en særlig konto på biblioteksserveren, som Easy Redmine bruger til at forudgodkende. Det er muligt at bruge søgeordet $ login i kontofeltet, som derefter ville blive erstattet af det aktuelle login. Adgangskoden kan efterlades tom i dette tilfælde, for eksempel:

Konto: $login@COMPANY.DOMAIN.NAME

or

Konto: firma \ $ login

Base DN-varianter

Selvom det er meget muligt, at Base DN ovenfor er standard for Active Directory, bruger Active Directory på min arbejdsgivers site ikke brugerbeholderen til standardbrugere, så disse instruktioner sendte mig ned ad en lang og smertefuld sti. Jeg anbefaler også at prøve bare "DC = vært, DC = domæne, DC = org", hvis login mislykkes med indstillingerne der.

 

Gruppebaseret LDAP-login

Hvis du bare vil tillade login til brugere, der tilhører en bestemt LDAP -gruppe, skal du følge instruktionerne herunder. De er baseret på OpenLDAP LDAP -server og Easy Redmine.

1. (OpenLDAP-server) Aktivér medlem af overlay

1.1. Opret en fil:

vim ~ / memberof_add.ldif

Med indhold nedenfor:

dn: cn = modul, cn = config
objectClass: olcModuleList
cn: modul
olcModulePath: / usr / lib / ldap
olcModuleLoad: memberof

1.2. Opret en fil:

vim ~ / memberof_config.ldif

Med indhold nedenfor:

dn: olcOverlay = memberof, olcDatabase = {1} hdb, cn = config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignorere
olcMemberOfRefInt: sandt
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: medlem
olcMemberOfMemberOfAD: memberOf

1.3. Indlæs dem. Det afhænger af din OpenLDAP-konfiguration, så vi vil foreslå nogle muligheder:

sudo ldapadd -c-Y EXTERNAL -H ldapi: /// -f memberof_add.ldif
sudo ldapadd -c-Y EXTERNAL -H ldapi: /// -f memberof_config.ldif

Eller:

ldapadd -D cn = admin, cn = config -w "password" -H ldapi: /// -f memberof_add.ldif
ldapadd -D cn = admin, cn = config -w "password" -H ldapi: /// -f memberof_config.ldif

En genstart er IKKE nødvendig, hvis du bruger en dynamisk runtime-konfigurationsmotor (slapd-config).

1.4. (Valgfrit) Test det:

ldapsearch -D cn = admin, dc = eksempel, dc = com -x -W -b 'dc = eksempel, dc = com' -H 'ldap: //127.0.0.1: 389/' '(& (objectClass = posixAccount ) (memberOf = cn = ldapeasyredmine, ou = grupper, dc = eksempel, dc = com)) '

2. (OpenLDAP -server) Opret gruppen. I dette eksempel er brugeren "ldap_user_1", og gruppen er "ldapeasyredmine":

dn: cn = ldapeasyredmine, ou = grupper, dc = eksempel, dc = com
cn: ldapeasyredmine
beskrivelse: Medarbejdere kan logge ind på Easy Redmine billetsystem
medlem: cn = ldap_user_1, ou = mennesker, dc = eksempel, dc = com
objectclass: groupOfNames
objektklasse: top

Juster "dn" og "cn" s, så de passer til din DIT-struktur

3. (Easy Redmine) Rediger LDAP -godkendelsestilstand. I mit tilfælde er "ldap_user_1" en "posixAccount" objektklasse:

Base DN: dc = eksempel, dc = com
Filter: (& (objectClass = posixAccount) (memberOf = cn = ldapeasyredmine, ou = grupper, dc = eksempel, dc = com))

 

Fejlfinding

Hvis du vil bruge on-the-fly-brugeroprettelse, skal du sørge for, at Easy Redmine kan hente alle de nødvendige oplysninger fra din LDAP for at oprette en gyldig bruger.
For eksempel fungerer on-the-fly-brugeroprettelse ikke, hvis du ikke har gyldige e-mail-adresser i dit bibliotek (du får en 'ugyldig brugernavn / adgangskode' fejlmeddelelse, når du prøver at logge ind).
(Dette er ikke sandt med nyere Easy Redmine -versioner; dialogboksen til oprettelse af brugere er udfyldt med alt, hvad den kan finde fra LDAP -serveren, og beder den nye bruger om at udfylde resten.)

Sørg også for, at du ikke har noget brugerdefineret felt markeret som påkrævet til brugerkonti. Disse brugerdefinerede felter forhindrer, at brugerkonti oprettes undervejs.

Fejl i login -systemet rapporteres ikke med nogen reel information i Easy Redmine -logfiler, hvilket gør det vanskeligt at løse fejl. Du kan dog finde de fleste oplysninger, du skal bruge Wireshark mellem din Easy Redmine -vært og LDAP -serveren. Bemærk, at dette kun fungerer, hvis du har tilladelser til at læse netværkstrafik mellem de to værter.

Du kan også bruge værktøjet 'ldapsearch' til at teste, om dine indstillinger er korrekte. Log ind på Linux -maskinen, der er vært for din Easy Redmine (og installer muligvis ldaputils) og kør dette:

ldapsearch -x -b  "dc=example,dc=com" -H ldap://hostname/ -D "DOMAIN\USER" -w mypassword [searchterm]

Hvis det lykkes, får du en liste over annoncens indhold, der matcher din søgeforespørgsel. Derefter ved du, hvordan du udfylder felterne i LDAP -konfigurationen i Easy Redmine.

Alternative måder at verificere funktionaliteten på

  • Prøv at fjerne LDAP-filtre, som, hvis de er forkert indstillet, kan slette de brugere, du vil finde.
  • Ved siden af ​​"Login-attributen" er et bogikon. Hvis du klikker på den, og LDAP er indstillet korrekt, udfyldes de "sædvanlige attributter" automatisk af den aktuelle LDAP-server. I stedet for tekstfelter vises markeringer i en sag, som brugeren ønsker at ændre indstillingerne. I de fleste tilfælde behøver brugeren slet ikke at udfylde dette. Hvis dette fungerer, er det sandsynligvis, at alt andet fungerer.
  • For forbindelsesproblemer kan du bruge knappen "Test" på LDAP-serverfortegnelsen. Pas på, dette tjener kun til at teste, om du kan oprette forbindelse til LDAP. Det almindelige problem er, at administratorer ikke udfylder LDAP-systembrugeren, selv når LDAP-indstillinger stadig er beskyttet. I dette tilfælde kører testen OK, fordi forbindelsen fungerer, men ingen brugere kan tilføjes, fordi LDAP ikke "ser" nogen.
  • For at teste, om LDAP virkelig fungerer, kan nummeret "Tilgængelige brugere" også bruges - hvis dets værdi er 0, returnerer LDAP ingen data og er sandsynligvis forkert indstillet. Hvis der er et nummer, kan du klikke på det for at udvide og se, hvad LDAP viser (og juster filtrene i overensstemmelse hermed).

Konto værdi format

Brugernavnet til bindingsoplysningerne skal muligvis specificeres som en DN snarere end som en UPN (user@domain.com) eller som domain \ user, som påpeget af denne kommentar i kilde: trunk / leverandør / plugins / rubin-net-ldap-0.0.4 / lib / netto / ldap.rb:

  # Som beskrevet under #bind kræver de fleste LDAP-servere, at du leverer en komplet DN # som en bindingsoplysning sammen med en autentificator såsom en adgangskode.

Derfor bruger med MyDomain \ MyUserName eller MyUserName@MyDomain.com brugernavn angiver muligvis kun MyUserName som et let Redmine login navn.

Langsom LDAP-godkendelse

Hvis LDAP-godkendelsen er langsom, og du har en AD-klynge, skal du prøve at specificere i værtsfeltet en af ​​de AD-fysiske servere. Det kan hjælpe.

OpenDS

Hvis du bruger OpenDS -serveren, har du muligvis problemer med anmodningskontrollen "Sidenes resultater" sendt med den første forespørgsel, der søger efter brugeren med den angivne loginattribut. Denne anmodningskontrol 1.2.840.113556.1.4.319 er som standard ikke tilladt for anonyme brugere, hvilket forhindrer Easy Redmine i at finde brugeren i biblioteket, selv før bindingen finder sted.

Tilføj en global ACI som denne

./dsconfig -h SERVER_IP -p 4444 -D cn = "Directory Manager" -w PASSWORD -n set-access-control-handler-prop --trustAll - tilføj global-aci: \ (targetcontrol = \ "1.2.840.113556.1.4.319 \" \) \ \ (version \ 3.0 \; \ acl \ \ "Anonym \ kontrol \ adgang \ til \ 1.2.840.113556.1.4.319 \" \; \ allow \ \ (læs \) \ userdn = \ "ldap: /// nogen \" \ ; \)

Bemærk: Indtast kommandoen på en linje, brug undslipning nøjagtigt som angivet (\ efter "acl" er beregnet til at være "\" for mellemrum).

Nogle brugere kan ikke logge ind

problem: En specifik OU af brugere kan ikke logge på (ugyldig bruger eller adgangskode), mens alle andre er. Brugerne er på et eksternt sted, men brugere i de andre OU'er på det samme sted får ikke denne fejl.

Opløsning: Problemet er sandsynligvis ikke relateret til forkerte indstillinger, men snarere et Active Directory (AD) -problem. De brugere, der ikke kunne oprette forbindelse, havde feltet "Logon til" indstillet til en bestemt pc i AD-brugerens egenskaber (AD-administration). Efter at have ændret det til "Logon fra overalt", skal det fungere. Mere specifikt skal dette felt indstilles til: AD-bruger -> Egenskaber -> Konto -> Logon fra overalt.

Problemer med log-in, når du bruger LDAPS uden et gyldigt certifikat

Du kan støde på problemer med at logge ind, når du bruger LDAPS uden et gyldigt certifikat. I Redmine 4 valideres altid LDAPS -certifikat. Med et ugyldigt certifikat kan brugerne ikke logge ind. Selvfølgelig kan den korrekte og langsigtede løsning er at bruge et gyldigt certifikat. Men indtil du opnår dette, er den midlertidige løsning at gå til Administration >> LDAP-godkendelse >> Rediger respektive godkendelsestilstand.

Skift indstillingen til LDAPS (uden certifikat kontrol).

Med Easy Redmine Server-løsningen kan du ændre den i løs vægt fra skinnerne
skinner r "AuthSource.update_all (verify_peer: false)" -e produktion

eller via SQL
UPDATE auth_sources set verify_peer = 0;

 

Hjørnesituationer

  • Når du importerer / opretter brugere automatisk fra LDAP, foretrækkes standardindstillingen for brugertype, der er indtastet i formularen til oprettelse af brugere, end standardindstillingen for brugertype, der er indtastet på LDAP. Når brugeren er oprettet, kan denne indstilling ikke senere ændres (medmindre du opretter en ny LDAP).

Prøv Easy Redmine i 30 dages gratis prøveperiode

Fuldstændige funktioner, SSL-beskyttet, daglige backups, i din geolocation