1 / 44

LDAP

LDAP. Aleksi Mustonen. LDAP. Mikä hakemisto on? Onko hakemisto tietokanta? X.500 LDAP: Toimintaperiaate Active Directory Muita tekniikoita (Ph) Käytännön osuus Yhteenveto. Hakemisto. Perinteinen puhelinluettelo on hakemisto Joukko tietyllä tavalla järjesteltyä tietoa

koto
Download Presentation

LDAP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LDAP Aleksi Mustonen

  2. LDAP • Mikä hakemisto on? • Onko hakemisto tietokanta? • X.500 • LDAP: Toimintaperiaate • Active Directory • Muita tekniikoita (Ph) • Käytännön osuus • Yhteenveto

  3. Hakemisto • Perinteinen puhelinluettelo on hakemisto • Joukko tietyllä tavalla järjesteltyä tietoa • Offline-hakemistoissa on päivitysongelmia • Sähköinen hakemisto tarjoaa etuja - Säästöt - Nopeus - Helppous

  4. Hakemisto • Yleisimpiä hakemistopalveluita henkilötietokannat • Hakulauseiden käyttö  rajatut tulosteet • Jotkut palvelut sopivat myös tietokoneiden omaan käyttöön (esim. DHCP)

  5. Hakemistot ja tietokannat • Molemmat ovat tiedon säilyttämiseen tarkoitettuja keskitetysti hallittuja varastoja • Erot eivät ole selkeitä • Käyttökohteet erilaisia  luokittelu • Hakemiston voidaan sanoa olevan tietokannan erityistapaus

  6. Luku-kirjoitussuhde • Hakemistojen sisältämää tietoa ei tarvitse päivittää usein mutta sitä tarvitaan usein - osoitetiedot - reititystaulut • Tietokannoissa yleensä päinvastoin • Asukasluku  raportointi?

  7. Tallennettavan tiedon muoto • Tietokannoissa yleensä ennaltamäärätty semanttinen merkitys (int, string, data?) • Hakemistoissa voidaan luoda uusia tietotyyppejä itse (skeemat) • Esim. tietotyypit rehtori, oppilas • Onko tästä mitään hyötyä?

  8. Tiedon hajautus • Sekä tietokantoja että hakemistoja voidaan hajauttaa usealle eri palvelimelle • Hakemistot hajautuksen suhteen parempia • Relaatiotietokannoissa tieto tallennetaan tauluihin  hajautetaan taulut • Useaan tauluun kohdistuva haku  liikennettä verkossa

  9. Tiedon hajautus • Hakemistossa käytössä puumalli • Kullakin palvelimella oma puun haara • Esim. Oppilastiedot osastojen mukaan • Suoritettaessa kysely osaston x oppilaista, liikennettä vain yhdeltä palvelimelta • Tieto lähempänä käyttäjää (vasteajat ym.) • Hallinnon jakaminen  tiedon ajantasaisuus

  10. Entäs osastokohtaiset tietokannat? • Kuten hakemistossakin, osaston x oppilaat osaston x palvelimella • Jokaisella osastolla oma palvelin • Lopputulos tarjoaa saman määrän tietoa ja palvelua kuin hakemisto mutta kyseessä on monta eri palvelua vs. yksi hakemisto. (Vaatii monta konfigurointia?)

  11. Tiedon monistus • Saman tiedon säilyttämistä useassa eri paikassa • Luotettavuus, saatavuus • Suhteellinen kuormitus vähenee • Tieto lähempänä käyttäjää • Tiedon yhtenäisyys hetkellä x kyseenalainen (synkronointi) - harvoin harmia

  12. Suorituskyky • Hakemistopalvelun käyttäjäkunta suurempi kuin tietokannoissa? • Hakemistopalvelun käyttäjäkunnan koon kasvu? • Esim. Kulunvalvonta – tietokanta - Ovien määrä vakio • Puhelinluettelo sähköisenä – hakemisto - Asiakaskunta voi kasvaa - Poikkeuksia

  13. Yhteensopivuus • Tietokannat usein ohjelmistokohtaisia • Eivät ymmärrä toisiaan • Päällekkäisyys, resurssit, ylläpito ongelmia • Hakemistopalveluissa protokolla standardoitu • Kilpailijoiden tuotteet puhuvat samaa kieltä • LDAP

  14. X.500 • ISO X.500 –standardi • Tarkoituksena luoda The Hakemisto • Joustava, monikäyttöinen • Monimutkainen • Nojaa OSI-malliin • X.519 Directory Access Protocol protokollaksi asiakkaiden ja palvelimen välille • Vaikea toteuttaa oikeasti  LDAP 1990 (IETF)

  15. LDAP • 1. versio RFC1487 • Nykyinen LDAPv3, RFC3377, 2002 • Asiakas muodostaa kyselyn, johon palvelin vastaa • Useiden osumien tapauksessa kukin palautetaan omassa viestissään • Lopetusviesti

  16. LDAP • Puumalli • Järjestöt, yritykset (hierarkia) • Informaatiotasot root, country, organization, organizational unit, canonical name (tai userid)  jälleen yritykset • X.500-hierarkiamallin mukainen tapa

  17. Puu • Kaikkien informaatiotasojen käyttö ei ole pakollista. Tasojen järjestystä ei voi vaihtaa

  18. Puu • Juuria vain yksi • Haaroja joka tasolla vaihteleva määrä • Jokainen puun solmu sisältää tietoa • Tieto on esitetty avain-arvopareina, parien merkkaaman tiedon riippuessa solmun informaatiotasosta (country, uid, ...) • Yksilöivät ja täydentävät attribuutit • Alemmalla tasolla aina kaikki ylempien tasojen yksilöivät attribuutit

  19. Yksilöiviä avaimia • Juuren attribuutteja ovat domain-komponentit, dc (aina yksilöiviä) • Dc:t ovat nimensä mukaisesti jonkin domainnimen osia. Esim. www.lut.fi koostuu kolmesta komponentista: • Dc=www, dc=lut, dc=fi • Maatasolla yksilöivä avain on maakoodi: c=FI • Organisaatiotasolla o=LTY • Ou, cn, uid

  20. Distinguished name • Kukin tietoalkio voidaan tunnistaa yksilöllisesti sen tunnusnimen dn avulla • Uid=0222188,ou=tlt_osasto,o=LTY,c=FI,dc=www,dc=lut,dc=fi • Vs. www.lut.fi/FI/LTY/tlt_osasto/0222188 • Vasemmanpuoleisin attribuutti omassa ryhmässään yksilöllinen, vaikkei kokonaisuudessa olisikaan (relative dn)

  21. LDIF ja olioluokat • Lightweight Directory Interchange Format • Solmujen sisältämän datan esitysmuoto • Ylimpänä dn • Olioluokan ilmoittamiseen objectClass-rivit • Esim. Person-olioluokka mahdollistaa parin tiedon merkkaamisen: telephoneNumber, seeAlso, sn, ... • organizationalPerson laajentaa Personia: katuosoite, ym. • Oliot määritellään skeemoilla

  22. Active Directory • Tulee mm. Windows Server 2003 mukana • Ei pelkästään Windowsille • LDAP-yhteensopiva • GUID (128bit) ja UPN (olio@domainnimi) • Win- ja Lin-resurssien yhteensovittaminen SADMS:n avulla (Samba Active Directory Member Services) • SADMS toimii graafisessa käyttöympäristössä • Vaatii vähintään yhden Win-AD-palvelimen

  23. CCSO Nameserver • Central Computing Services Office @ University of Illinois. • Palvelu tunnetaan myös nimellä Ph • Käytössä mm. LTY:ssa • Pääsääntöisesti sähköiseksi puhelinluetteloksi • Sisältää vain muutaman valmiin olioluokan, mutta ne sopivat hyvin henkilötiedon tallentamiseen • Yksinkertaisuus on valttia

  24. Käytännön osuus • Toteutetaan sähköpostiosoitteen automaattinen haku • Palvelinohjelmana OpenLDAP • Lahiverkot3 (sisäverkko) • Asiakasohjelmina Windows-alustalla Mozilla Thunderbird ja Microsoft Outlook Express

  25. Esivalmistelut • Aptitude install slapd • Tai pakettien haku netistä: • http://www.openldap.org/software/download • Tarvitaan myös Berkely Database taustalle • http://dev.sleepycat.com/downloads • Imuroidaan paketit koneelle hakemistoihin /home/lahi/berkeleydb_paketti/ /home/lahi/openldap_paketti/

  26. Epäonnistunut asennus #1 • Error: BDB/HDB: BerkeleyDB not available • Havaitaan, että BDB pitää tosiaan asentaa • Configure: error: BerkeleyDB version mismatch • Dokumenttien mukaan BDB 4.4.20 ja OpenLDAP 2.3.20 ovat yhteensopivia. Havaitaan, että ne eivät ole. • BDB:n voi poistaa komennolla /home/lahi/berkeleydb_paketti/db-4.4.20.NC/build_unix/make uninstall

  27. Epäonnistunut asennus #2 • Asetetaan ympäristömuuttujat käsin • Mutta se ei auta • Configure: error: BDB: BerkeleyDB version incompatible • Havaitaan erilaisia virheilmoituksia kokeiltaessa yhteensä kahdeksaa muuta yhteensopivaa OpenLDAP- ja BDB-versiota. • Lopulta: • http://www.openldap.org/faq/data/cache/1158.html • Palataan tähän hetken päästä.

  28. Aptitude install slapd • aptitude install slapd

  29. Asennus, BDB • Puretaan BDB:n tar-pallo: gunzip –c db-4.3.29.NC.tar.gz | tar xvfB – • Purkautuu hakemisto ./db-4.3.29.NC/ jonka sisällä mennään hakemistoon build_unix ja annetaan käskyt: ../dist/configure make make install

  30. Temppu • BDB on nyt käyttökunnossa hakemistossa /usr/local/BerkeleyDB.4.3 ...mutta ei ihan. • Debian ei osaa etsiä BDB:tä oikeasta paikkaa, joten kopioidaan tiedostot sinne mistä se niitä etsii: • cp /usr/local/BerkeleyDB.4.3/lib/* /usr/lib • cp /usr/local/BerkeleyDB.4.3/include/* /usr/include • Nyt BDB on OK

  31. Asennus, OpenLDAP • gunzip –c openldap-stable-20060227.tgz | tar xvfB – • cd openldap-2.3.20 • pico INSTALL ja pico README • ./configure (./configure –help) • Tässä välissä ei pitäisi tulla virheilmoituksia • make depend • make • make test suorittaa pitkän sarjan testejä, ei muuta • make install • Asennus on valmis

  32. Konfigurointi • LDAP-käyttäjä? • BDB ei vaadi toimenpiteitä • OpenLDAP:n varsinainen palvelinohjelma on nimeltään slapd • /usr/local/etc/openldap/slapd.conf • Lisäksi tarjolla olisi slurpd tiedon replikointiin, mutta koska palvelimia on vain yksi, käytetään slapd • Muut OpenLDAP-paketin ohjelmat ovat tiedon lisäämiseen ja poistamiseen

  33. slapd.conf • Koostuu kommentti- ja tavallisista riveistä • Kommentit erotetaan risuaidalla # • Tiedoston rakenne on seuraavanlainen: <globaalit asetukset> database <tietokannan 1 tyyppi> <tietokannan 1 asetukset> database <tietokannan 2 tyyppi> <tietokannan 2 asetukset> ...

  34. slapd.conf tarkemmin # Globaalit asetukset # Tässä määritellään käytettävät skeemat, eli mitä olioluokkia on käytössä include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema # Hakemiston tietokantaan ei tarvitse olla kaikilla pääsyä kaikkialle. # Oletuksena kuitenkin on. Siksi ao. lisätyt rivit ovat periaatteessa turhia, # mutta ne alleviivaavat kyseistä faktaa access to * by * read access to * by dn="cn=root,dc=lahiverkot,dc=net" write # Globaalit asetukset päättyvät

  35. slapd.conf tarkemmin # Tietokannan tyyppi, käytetään BDB:tä (vaihtoehtona HDB) database bdb # Loput tietokannan asetukset # Määritellään DN-pääte, jolla varustetut kyselyt # päätyvät tähän kantaan # Tämä on siis yksittäisen tietokannan DN suffix "dc=lahiverkot,dc=net" # Määritellään pääkäyttäjä, jonka toimia # ei rajoiteta mitenkään # vain rootdn, joka esittäytyy seuraavalla dn:llä, # saa suorittaa kirjoitusoperaatioita rootdn "cn=root,dc=lahiverkot,dc=net"

  36. slapd.conf tarkemmin # Tässä määritellään pääkäyttäjän salasana, joka on myös salakirjoitettu # Salasanana käytetään yllätyksellistä salasanaa ”salasana” rootpw {SSHA}yDrjRsc6KTZw1rIsjX9CCGr1GRDUENuW # Salakirjoitus on suoritettu slappasswd-ohjelmalla. Toinen tapa suorittaa # salaus olisi käyttäen shellissä perl-komentoa # perl -e "print crypt('tyst','ny');" # missä tyst on haluttu salasana ja ny on suolaa. Tämän jälkeen # salasana ilmoitettaisiin seuraavanlaisella rivillä: # rootpw {crypt}nycZx7J.ldnr2 # jos halutaan, ei tarvitse käyttää mitään salausta # vaan jättää salasana selkokielisenä: # rootpw vaikeajasalainensana

  37. slapd.conf tarkemmin # Määritellään hakemisto, jonne kannan tiedostot tallennetaan # Hakemisto täytyy käydä itse tekemässä, slapd ei sitä osaa. directory /usr/local/var/openldap-data # Lopuksi määritellään olioluokat, joita kantaan voidaan # tallentaa. Lisäksi merkataan, millaisia hakuja voidaan # tietojen suhteen suorittaa. index cn,sn,title,mail,uid eq,approx index objectClass eq # Jos käytössä olisi toinen tietokanta, kerrottaisiin # sen tyyppi ja asetukset tästä alkaen.

  38. Hakemiston käyttö: ldapadd • Palvelu käynnistetään komennolla /usr/local/libexec/slapd • Sammuttaminen: kill –INT <slapd-ps> • Jotta palvelusta olisi hyötyä, tarvitaan siihen tietoa: • /usr/local/bin/ldapadd –D ”cn=root,dc=lahiverkot,dc=net” –w salasana –f /usr/local/etc/openldap/lahiverkot.ldif

  39. Hakemiston käyttö: ldapsearch • Tiedon etsiminen hakemistosta • Seuraava käsky käy läpi kaikki hakemiston merkinnät: • ldapsearch –v –x –b ’dc=lahiverkot,dc=net’ –s sub • Hakemistossa on kuitenkin vasta juuri ja yksi henkilö, joten sinne voisi lisätä lisaa.lahiverkot.ldif-tiedoston sisällön

  40. Hakemiston käyttö: ldapmodify • hakemistoon on lisätty jo lisaa.lahiverkot.ldif-tiedoston sisältö • Nyt olemassaolevaa dataa muokataan: • Ldapmodify –x –W –D ”cn=root,dc=lahiverkot,dc=net” –f muokkaa.ldif • Ldapmodify suorittaa tiedostossa määritellyt muutokset

  41. Hakemiston käyttö: ldapdelete • Yksittäisen merkinnän poistaminen hakemistosta tapahtuu seuraavasti: • ldapdelete –v –x –D ”cn=root,dc=lahiverkot,dc=net” –W ”cn=Brian Kottarainen,dc=lahiverkot,dc=net” • Usean merkinnän poistaminen tapahtuu komennolla rm * tietokantahakemistossa

  42. Outlook Express ja LDAP • LDAP:n käyttöönotto helppoa: • Ohjelma käynnistetään • Tools-valikko  Accounts. • Internet Accounts-ikkuna aukeaa. Oikeasta ylälaidasta kohta Add  Directory Service • Uuteen ikkunaan kirjoitetaan koneen 3 IP-osoite: 192.168.1.13 • Painetaan Next, Yes, Next, Finish. • Internet Accounts  Properties  Advanced • Search Base-kohtaan kirjoitetaan haluttu hakemisto: ”dc=lahiverkot,dc=net” • Kokeillaan palvelua: Ruvetaan kirjoittamaan uutta viestiä. Osoiteriville kirjoitetaan ale ja painetaan Check. • Riville pitäisi ilmestyä Aleksi Mustonen

  43. Thunderbird ja LDAP • Tools  Account Settings • Sivupaneelista Composition & Addressing • Use a Different LDAP Server • Edit Directories • Add: palvelimen nimi, osoite, kannan dn • Ja kokeilemaan vaikka osoitekirjaan

  44. Yhteenveto • LDAP on kätevä, standardinmukainen protokolla luetteloitavan tiedon välittämiseen • Ei korvaa relaatiotietokantoja • Pienempään tarpeeseen riittää Ph • Käyttöönotto helppoa jos tietää mitä tekee • Dokumentaatioon ei pidä luottaa liikaa • Helppoa ylläpitää ja käyttää

More Related