SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
LDAP
 Joe Atzberger, LibLime




KohaCon 2009: Plano, TX
Need LDAP Tools?
• Apache Directory Server & Studio (client)
  http://directory.apache.org/
• Open Source (Apache license)
• Newer than openldap and more stable.
• Runs on OSX, Win32 and linux.
  “We strive to increase LDAP awareness, comfort and adoption to bring
                           Modern LDAP Renaissance.”
  forth what we call the
Need LDAP Tools?

• OpenLDAP - http://www.openldap.org/
 • includes command line tools:
    ldapsearch, ldapadd, etc.
• Net::LDAP - CPAN perl module
LDAP Timing
• Koha LDAP does not go grab all your users
  as a “dump”. That is what IMPORT is for.
  Instead it updates when they try to login.
• Implications: lightweight, happening in
  realtime. Somewhat literal, no XSL or
  other conditional processing.
<ldapserver> bind
<hostname>ldap://auth.example.com:389</hostname>
<base>dc=example,dc=com</base>
<user>cn=Admin,dc=example,dc=com</user> <!-- DN, if not anonymous -->
<pass>s3cur1T</pass>              <!-- password, if not anonymous -->

  • So you can anonymous bind (not recommended)
  • Otherwise, specify user for bind
  • bind-as-auth: others have hacked Koha to do it, but not
  cleanly enough to get into HEAD. So I’m not presenting it.
<ldapserver> options
<ldapserver> options

<replicate>1</replicate><!-- add new users from LDAP to Koha database -->
<update>1</update>      <!-- update existing users in Koha database -->
<ldapserver> options

<replicate>1</replicate><!-- add new users from LDAP to Koha database -->
<update>1</update>      <!-- update existing users in Koha database -->




                      Default is ON for both.
Know your own Schema
• For example,
                                        version: 1
                                        dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
                                        objectClass: top
                                        objectClass: person
                                        objectClass: organizationalPerson

  inetOrgPerson,                        objectClass: inetOrgPerson
                                        cn: Barbara Jensen
                                        cn: Babs Jensen

  RFC#2798:                             displayName: Babs Jensen
                                        sn: Jensen
                                        givenName: Barbara
  http://www.ietf.org/rfc/rfc2798.txt   initials: BJJ
                                        title: manager, product development
                                        uid: bjensen
                                        mail: bjensen@siroe.com
                                        telephoneNumber: +1 408 555 1862
                                        facsimileTelephoneNumber: +1 408 555 1992
                                        mobile: +1 408 555 1941
                                        roomNumber: 0209
                                        carLicense: 6ABC246
                                        o: Siroe
                                        ou: Product Development
                                        departmentNumber: 2604
                                        employeeNumber: 42
                                        employeeType: full time
                                        preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
                                        labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
                                             Pick data Koha cares about
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
version: 1
dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
                                             Pick data Koha cares about
cn: Barbara Jensen
cn: Babs Jensen
displayName: Babs Jensen
sn: Jensen
givenName: Barbara
initials: BJJ
title: manager, product development
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
carLicense: 6ABC246
o: Siroe
ou: Product Development
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
preferredLanguage: fr, en-gb;q=0.8, en;q=0.7
labeledURI: http://www.siroe.com/users/bjensen My Home Page
Pick data Koha cares about
sn: Jensen
givenName: Barbara
initials: BJJ
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
o: Siroe
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
Pick data Koha cares about
sn: Jensen
givenName: Barbara
initials: BJJ
uid: bjensen
mail: bjensen@siroe.com
telephoneNumber: +1 408 555 1862
facsimileTelephoneNumber: +1 408 555 1992
mobile: +1 408 555 1941
roomNumber: 0209
o: Siroe
departmentNumber: 2604
employeeNumber: 42
employeeType: full time
Data Koha Cares About
• You define it with <ldapserver> <mapping>
  element in koha-conf.xml

• But some fields are required.
• And some of those are *really* required.
• See perldoc C4::Auth_with_ldap
The <mapping>
<mapping>
  <firstname      is=quot;givennamequot;      ></firstname>
  <surname        is=quot;snquot;             ></surname>
  <address        is=quot;postaladdressquot; ></address>
  <city           is=quot;lquot;              >Athens, OH</city>
  <zipcode        is=quot;postalcodequot;     ></zipcode>
  <branchcode     is=quot;branchquot;         >MAIN</branchcode>
  <userid         is=quot;uidquot;            ></userid>
  <password       is=quot;userpasswordquot;   ></password>
  <email          is=quot;mailquot;           ></email>
  <categorycode   is=quot;employeetypequot;   >PT</categorycode>
  <phone          is=quot;telephonenumberquot;></phone>
</mapping>
The <mapping>
<mapping>
  <firstname      is=quot;givennamequot;      ></firstname>
  <surname        is=quot;snquot;             ></surname>
  <address        is=quot;postaladdressquot; ></address>
  <city           is=quot;lquot;              >Athens, OH</city>
  <zipcode        is=quot;postalcodequot;     ></zipcode>
  <branchcode     is=quot;branchquot;         >MAIN</branchcode>
  <userid         is=quot;uidquot;            ></userid>
  <password       is=quot;userpasswordquot;   ></password>
  <email          is=quot;mailquot;           ></email>
  <categorycode   is=quot;employeetypequot;   >PT</categorycode>
  <phone          is=quot;telephonenumberquot;></phone>
</mapping>
The <mapping>
<mapping>
  <firstname      is=quot;givennamequot;      ></firstname>
  <surname        is=quot;snquot;             ></surname>
  <address        is=quot;postaladdressquot; ></address>
  <city           is=quot;lquot;              >Athens, OH</city>
  <zipcode        is=quot;postalcodequot;     ></zipcode>
  <branchcode     is=quot;branchquot;         >MAIN</branchcode>
  <userid         is=quot;uidquot;            ></userid>
  <password       is=quot;userpasswordquot;   ></password>
  <email          is=quot;mailquot;           ></email>
  <categorycode   is=quot;employeetypequot;   >PT</categorycode>
  <phone          is=quot;telephonenumberquot;></phone>
</mapping>
The <mapping>
<mapping>
  <firstname      is=quot;givennamequot;      ></firstname>
  <surname        is=quot;snquot;             ></surname>
  <address        is=quot;postaladdressquot; ></address>
  <city           is=quot;lquot;              >Athens, OH</city>
  <zipcode        is=quot;postalcodequot;     ></zipcode>
  <branchcode     is=quot;branchquot;         >MAIN</branchcode>
  <userid         is=quot;uidquot;            ></userid>
  <password       is=quot;userpasswordquot;   ></password>
  <email          is=quot;mailquot;           ></email>
  <categorycode   is=quot;employeetypequot;   >PT</categorycode>
  <phone          is=quot;telephonenumberquot;></phone>
</mapping>
The <mapping>
    <mapping>
      <firstname      is=quot;givennamequot;      ></firstname>
      <surname        is=quot;snquot;             ></surname>
      <address        is=quot;postaladdressquot; ></address>
      <city           is=quot;lquot;              >Athens, OH</city>
      <zipcode        is=quot;postalcodequot;     ></zipcode>
      <branchcode     is=quot;branchquot;         >MAIN</branchcode>
      <userid         is=quot;uidquot;            ></userid>
      <password       is=quot;userpasswordquot;   ></password>
      <email          is=quot;mailquot;           ></email>
      <categorycode   is=quot;employeetypequot;   >PT</categorycode>
      <phone          is=quot;telephonenumberquot;></phone>
    </mapping>

  Koha fields
in borrowers.*
The <mapping>
    <mapping>
      <firstname      is=quot;givennamequot;      ></firstname>
      <surname        is=quot;snquot;             ></surname>
      <address        is=quot;postaladdressquot; ></address>
      <city           is=quot;lquot;              >Athens, OH</city>
      <zipcode        is=quot;postalcodequot;     ></zipcode>
      <branchcode     is=quot;branchquot;         >MAIN</branchcode>
      <userid         is=quot;uidquot;            ></userid>
      <password       is=quot;userpasswordquot;   ></password>
      <email          is=quot;mailquot;           ></email>
      <categorycode   is=quot;employeetypequot;   >PT</categorycode>
      <phone          is=quot;telephonenumberquot;></phone>
    </mapping>

  Koha fields
in borrowers.*
The <mapping>
    <mapping>
      <firstname      is=quot;givennamequot;      ></firstname>
      <surname        is=quot;snquot;             ></surname>
      <address        is=quot;postaladdressquot; ></address>
      <city           is=quot;lquot;              >Athens, OH</city>
      <zipcode        is=quot;postalcodequot;     ></zipcode>
      <branchcode     is=quot;branchquot;         >MAIN</branchcode>
      <userid         is=quot;uidquot;            ></userid>
      <password       is=quot;userpasswordquot;   ></password>
      <email          is=quot;mailquot;           ></email>
      <categorycode   is=quot;employeetypequot;   >PT</categorycode>
      <phone          is=quot;telephonenumberquot;></phone>
    </mapping>

  Koha fields
in borrowers.*
The <mapping>
    <mapping>
      <firstname      is=quot;givennamequot;      ></firstname>
      <surname        is=quot;snquot;             ></surname>
      <address        is=quot;postaladdressquot; ></address>
      <city           is=quot;lquot;              >Athens, OH</city>
      <zipcode        is=quot;postalcodequot;     ></zipcode>
      <branchcode     is=quot;branchquot;         >MAIN</branchcode>
      <userid         is=quot;uidquot;            ></userid>
      <password       is=quot;userpasswordquot;   ></password>
      <email          is=quot;mailquot;           ></email>
      <categorycode   is=quot;employeetypequot;   >PT</categorycode>
      <phone          is=quot;telephonenumberquot;></phone>
    </mapping>

  Koha fields                 LDAP fields
in borrowers.*                in Schema
The <mapping>
   <mapping>
     <firstname      is=quot;givennamequot;      ></firstname>
     <surname        is=quot;snquot;             ></surname>
     <address        is=quot;postaladdressquot; ></address>
     <city           is=quot;lquot;              >Athens, OH</city>
     <zipcode        is=quot;postalcodequot;     ></zipcode>
     <branchcode     is=quot;branchquot;         >MAIN</branchcode>
     <userid         is=quot;uidquot;            ></userid>
     <password       is=quot;userpasswordquot;   ></password>
     <email          is=quot;mailquot;           ></email>
     <categorycode   is=quot;employeetypequot;   >PT</categorycode>
     <phone          is=quot;telephonenumberquot;></phone>
   </mapping>

  Koha fields                LDAP fields
               ==>
in borrowers.*               in Schema
The <mapping>
   <mapping>
     <firstname      is=quot;givennamequot;      ></firstname>
     <surname        is=quot;snquot;             ></surname>
     <address        is=quot;postaladdressquot; ></address>
     <city           is=quot;lquot;              >Athens, OH</city>
     <zipcode        is=quot;postalcodequot;     ></zipcode>
     <branchcode     is=quot;branchquot;         >MAIN</branchcode>
     <userid         is=quot;uidquot;            ></userid>
     <password       is=quot;userpasswordquot;   ></password>
     <email          is=quot;mailquot;           ></email>
     <categorycode   is=quot;employeetypequot;   >PT</categorycode>
     <phone          is=quot;telephonenumberquot;></phone>
   </mapping>

  Koha fields                LDAP fields
               ==>
in borrowers.*               in Schema
The <mapping>
   <mapping>
     <firstname      is=quot;givennamequot;      ></firstname>
     <surname        is=quot;snquot;             ></surname>
     <address        is=quot;postaladdressquot; ></address>
     <city           is=quot;lquot;              >Athens, OH</city>
     <zipcode        is=quot;postalcodequot;     ></zipcode>
     <branchcode     is=quot;branchquot;         >MAIN</branchcode>
     <userid         is=quot;uidquot;            ></userid>
     <password       is=quot;userpasswordquot;   ></password>
     <email          is=quot;mailquot;           ></email>
     <categorycode   is=quot;employeetypequot;   >PT</categorycode>
     <phone          is=quot;telephonenumberquot;></phone>
   </mapping>
                                                Default Values
  Koha fields                LDAP fields
               ==>
in borrowers.*               in Schema
Required Data: 3 Kinds
Required Data: 3 Kinds

• Required by database
Required Data: 3 Kinds

• Required by database
• Required for login
Required Data: 3 Kinds

• Required by database
• Required for login
• Required by you
Required by database
    mysql> show full columns from borrowers;
          -- field req`d where Null=NO

Easy:
• surname
• address
• city
Required by database
    mysql> show full columns from borrowers;
          -- field req`d where Null=NO

Easy:                     Tricky:
• surname                  • branchcode
• address                  • categorycode
• city
Required by database
    mysql> show full columns from borrowers;
          -- field req`d where Null=NO

Easy:                     Tricky:
• surname                  • branchcode
• address                  • categorycode
                      MUST MATCH VALID
• city                  KOHA VALUES
Required by login
userid:
• can come from
   from anything
• but it better be
   unique
Required by login
                     password:
userid:
                     • branchcode
• can come from
   from anything
                     • categorycode
• but it better be
   unique
The End

    LDAP
 Joe Atzberger, LibLime




KohaCon 2009: Plano, TX

Contenu connexe

Tendances

Android Security
Android SecurityAndroid Security
Android SecurityArqum Ahmad
 
kali linux Presentaion
 kali linux Presentaion kali linux Presentaion
kali linux PresentaionDev Gandhi
 
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemSadia Bashir
 
Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaEdureka!
 
The linux file system structure
The linux file system structureThe linux file system structure
The linux file system structureTeja Bheemanapally
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
 
Linux operating system - Overview
Linux operating system - OverviewLinux operating system - Overview
Linux operating system - OverviewAshita Agrawal
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linuxnejadmand
 
DNS server configuration
DNS server configurationDNS server configuration
DNS server configurationSanguine_Eva
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentationnishantsri
 
Facebook Forensics Toolkit(FFT)
Facebook Forensics Toolkit(FFT)Facebook Forensics Toolkit(FFT)
Facebook Forensics Toolkit(FFT)Shuvo Sarker
 
Hosting a website on IIS Server
Hosting a website on IIS ServerHosting a website on IIS Server
Hosting a website on IIS ServerDinesh Vasamshetty
 

Tendances (20)

Android Security
Android SecurityAndroid Security
Android Security
 
kali linux Presentaion
 kali linux Presentaion kali linux Presentaion
kali linux Presentaion
 
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File System
 
Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | Edureka
 
Ubuntu OS.pptx
Ubuntu OS.pptxUbuntu OS.pptx
Ubuntu OS.pptx
 
Linux basics
Linux basicsLinux basics
Linux basics
 
Linux file system
Linux file systemLinux file system
Linux file system
 
Windows forensic artifacts
Windows forensic artifactsWindows forensic artifacts
Windows forensic artifacts
 
Linux distributions
Linux    distributionsLinux    distributions
Linux distributions
 
The linux file system structure
The linux file system structureThe linux file system structure
The linux file system structure
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
Linux operating system - Overview
Linux operating system - OverviewLinux operating system - Overview
Linux operating system - Overview
 
Software management in linux
Software management in linuxSoftware management in linux
Software management in linux
 
DNS server configuration
DNS server configurationDNS server configuration
DNS server configuration
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Windowsforensics
WindowsforensicsWindowsforensics
Windowsforensics
 
Linux Presentation
Linux PresentationLinux Presentation
Linux Presentation
 
15 Setup BIND 9
15 Setup BIND 915 Setup BIND 9
15 Setup BIND 9
 
Facebook Forensics Toolkit(FFT)
Facebook Forensics Toolkit(FFT)Facebook Forensics Toolkit(FFT)
Facebook Forensics Toolkit(FFT)
 
Hosting a website on IIS Server
Hosting a website on IIS ServerHosting a website on IIS Server
Hosting a website on IIS Server
 

En vedette

En vedette (20)

Koha Cronjobs
Koha CronjobsKoha Cronjobs
Koha Cronjobs
 
Opac customization
Opac customizationOpac customization
Opac customization
 
Koha presentation
Koha presentationKoha presentation
Koha presentation
 
Butler - Security Lessons Learned from an Ezproxy Admin
Butler - Security Lessons Learned from an Ezproxy AdminButler - Security Lessons Learned from an Ezproxy Admin
Butler - Security Lessons Learned from an Ezproxy Admin
 
Carver IT Security for Librarians
Carver IT Security for LibrariansCarver IT Security for Librarians
Carver IT Security for Librarians
 
Training on Koha
Training on KohaTraining on Koha
Training on Koha
 
The State of Library Management Systems 2016
The State of Library Management Systems 2016The State of Library Management Systems 2016
The State of Library Management Systems 2016
 
120116 workforce development pull-up banner - 0987
120116   workforce development pull-up banner - 0987120116   workforce development pull-up banner - 0987
120116 workforce development pull-up banner - 0987
 
Pictures And Music
Pictures And  MusicPictures And  Music
Pictures And Music
 
ISO 9712
ISO 9712ISO 9712
ISO 9712
 
Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009Wwek 1 Literacy Tues Afternoon 2009
Wwek 1 Literacy Tues Afternoon 2009
 
Module 6 Powerpont Educ W200
Module 6 Powerpont Educ W200Module 6 Powerpont Educ W200
Module 6 Powerpont Educ W200
 
Ch2
Ch2Ch2
Ch2
 
Restaurant
RestaurantRestaurant
Restaurant
 
Meleane Vitae and Wayne Smethurst
Meleane  Vitae and Wayne SmethurstMeleane  Vitae and Wayne Smethurst
Meleane Vitae and Wayne Smethurst
 
W T S Resume Workshop 03
W T S  Resume  Workshop 03W T S  Resume  Workshop 03
W T S Resume Workshop 03
 
A better you
A better youA better you
A better you
 
My Wish for Jacinda
My Wish for JacindaMy Wish for Jacinda
My Wish for Jacinda
 
NCSU eLearning Certificates
NCSU eLearning CertificatesNCSU eLearning Certificates
NCSU eLearning Certificates
 
Logarska Valley (Logarska dolina), Slovenia images
Logarska Valley (Logarska dolina), Slovenia imagesLogarska Valley (Logarska dolina), Slovenia images
Logarska Valley (Logarska dolina), Slovenia images
 

Similaire à LDAP TITLE

DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?
DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?
DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?TechWell
 
Building a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profitBuilding a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profitBen Limmer
 
Modernizing i5 Applications
Modernizing i5 ApplicationsModernizing i5 Applications
Modernizing i5 ApplicationsZendCon
 
Minnesota User Group_July 2015
Minnesota User Group_July 2015Minnesota User Group_July 2015
Minnesota User Group_July 2015Zack Domangue
 
Securing the Web without site-specific passwords
Securing the Web without site-specific passwordsSecuring the Web without site-specific passwords
Securing the Web without site-specific passwordsFrancois Marier
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsWebtrends
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsWebtrends
 
Lessons Learned - Building YDN
Lessons Learned - Building YDNLessons Learned - Building YDN
Lessons Learned - Building YDNDan Theurer
 
Web 3 Scott Brinker
Web 3 Scott BrinkerWeb 3 Scott Brinker
Web 3 Scott BrinkerMediabistro
 
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...Nordic APIs
 
Data-Driven Software Design
Data-Driven Software DesignData-Driven Software Design
Data-Driven Software DesignPatrick McKenzie
 
No Person is an Island: How Relationships Make Things Better
No Person is an Island: How Relationships Make Things BetterNo Person is an Island: How Relationships Make Things Better
No Person is an Island: How Relationships Make Things BetterIan Glazer
 
Supliful's $1.1M pitch deck for white-label influencer supplements
Supliful's $1.1M pitch deck for white-label influencer supplementsSupliful's $1.1M pitch deck for white-label influencer supplements
Supliful's $1.1M pitch deck for white-label influencer supplementsPitch Decks
 
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.Amazon Web Services
 
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...Roy Zimmer
 
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory Compliance
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory ComplianceOil & Water, Peanut Butter & Jelly, DevOps & Regulatory Compliance
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory ComplianceTechWell
 
C how to Program_ Nho Vĩnh Share.pdf
C how to Program_ Nho Vĩnh Share.pdfC how to Program_ Nho Vĩnh Share.pdf
C how to Program_ Nho Vĩnh Share.pdfNho Vĩnh
 

Similaire à LDAP TITLE (20)

DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?
DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?
DevOps and Regulatory Compliance—Like Oil and Water or Peanut Butter and Jelly?
 
Building a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profitBuilding a Single Page Application using Ember.js ... for fun and profit
Building a Single Page Application using Ember.js ... for fun and profit
 
Modernizing i5 Applications
Modernizing i5 ApplicationsModernizing i5 Applications
Modernizing i5 Applications
 
Minnesota User Group_July 2015
Minnesota User Group_July 2015Minnesota User Group_July 2015
Minnesota User Group_July 2015
 
Securing the Web without site-specific passwords
Securing the Web without site-specific passwordsSecuring the Web without site-specific passwords
Securing the Web without site-specific passwords
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
Lessons Learned - Building YDN
Lessons Learned - Building YDNLessons Learned - Building YDN
Lessons Learned - Building YDN
 
Web 3 Scott Brinker
Web 3 Scott BrinkerWeb 3 Scott Brinker
Web 3 Scott Brinker
 
Designing code
Designing codeDesigning code
Designing code
 
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
 
Scim overview
Scim overviewScim overview
Scim overview
 
Data-Driven Software Design
Data-Driven Software DesignData-Driven Software Design
Data-Driven Software Design
 
No Person is an Island: How Relationships Make Things Better
No Person is an Island: How Relationships Make Things BetterNo Person is an Island: How Relationships Make Things Better
No Person is an Island: How Relationships Make Things Better
 
Supliful's $1.1M pitch deck for white-label influencer supplements
Supliful's $1.1M pitch deck for white-label influencer supplementsSupliful's $1.1M pitch deck for white-label influencer supplements
Supliful's $1.1M pitch deck for white-label influencer supplements
 
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
 
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...
Taking Your Customers to the Cleaners: Historical Patron Data Cleanup and Rou...
 
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory Compliance
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory ComplianceOil & Water, Peanut Butter & Jelly, DevOps & Regulatory Compliance
Oil & Water, Peanut Butter & Jelly, DevOps & Regulatory Compliance
 
Database repair
Database repairDatabase repair
Database repair
 
C how to Program_ Nho Vĩnh Share.pdf
C how to Program_ Nho Vĩnh Share.pdfC how to Program_ Nho Vĩnh Share.pdf
C how to Program_ Nho Vĩnh Share.pdf
 

Dernier

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 

Dernier (20)

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 

LDAP TITLE

  • 1. LDAP Joe Atzberger, LibLime KohaCon 2009: Plano, TX
  • 2. Need LDAP Tools? • Apache Directory Server & Studio (client) http://directory.apache.org/ • Open Source (Apache license) • Newer than openldap and more stable. • Runs on OSX, Win32 and linux. “We strive to increase LDAP awareness, comfort and adoption to bring Modern LDAP Renaissance.” forth what we call the
  • 3. Need LDAP Tools? • OpenLDAP - http://www.openldap.org/ • includes command line tools: ldapsearch, ldapadd, etc. • Net::LDAP - CPAN perl module
  • 4. LDAP Timing • Koha LDAP does not go grab all your users as a “dump”. That is what IMPORT is for. Instead it updates when they try to login. • Implications: lightweight, happening in realtime. Somewhat literal, no XSL or other conditional processing.
  • 5. <ldapserver> bind <hostname>ldap://auth.example.com:389</hostname> <base>dc=example,dc=com</base> <user>cn=Admin,dc=example,dc=com</user> <!-- DN, if not anonymous --> <pass>s3cur1T</pass> <!-- password, if not anonymous --> • So you can anonymous bind (not recommended) • Otherwise, specify user for bind • bind-as-auth: others have hacked Koha to do it, but not cleanly enough to get into HEAD. So I’m not presenting it.
  • 7. <ldapserver> options <replicate>1</replicate><!-- add new users from LDAP to Koha database --> <update>1</update> <!-- update existing users in Koha database -->
  • 8. <ldapserver> options <replicate>1</replicate><!-- add new users from LDAP to Koha database --> <update>1</update> <!-- update existing users in Koha database --> Default is ON for both.
  • 9. Know your own Schema • For example, version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson inetOrgPerson, objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen RFC#2798: displayName: Babs Jensen sn: Jensen givenName: Barbara http://www.ietf.org/rfc/rfc2798.txt initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 10. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 11. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 12. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 13. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 14. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson Pick data Koha cares about cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 15. version: 1 dn: cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson Pick data Koha cares about cn: Barbara Jensen cn: Babs Jensen displayName: Babs Jensen sn: Jensen givenName: Barbara initials: BJJ title: manager, product development uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 carLicense: 6ABC246 o: Siroe ou: Product Development departmentNumber: 2604 employeeNumber: 42 employeeType: full time preferredLanguage: fr, en-gb;q=0.8, en;q=0.7 labeledURI: http://www.siroe.com/users/bjensen My Home Page
  • 16. Pick data Koha cares about sn: Jensen givenName: Barbara initials: BJJ uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 o: Siroe departmentNumber: 2604 employeeNumber: 42 employeeType: full time
  • 17. Pick data Koha cares about sn: Jensen givenName: Barbara initials: BJJ uid: bjensen mail: bjensen@siroe.com telephoneNumber: +1 408 555 1862 facsimileTelephoneNumber: +1 408 555 1992 mobile: +1 408 555 1941 roomNumber: 0209 o: Siroe departmentNumber: 2604 employeeNumber: 42 employeeType: full time
  • 18. Data Koha Cares About • You define it with <ldapserver> <mapping> element in koha-conf.xml • But some fields are required. • And some of those are *really* required. • See perldoc C4::Auth_with_ldap
  • 19. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping>
  • 20. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping>
  • 21. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping>
  • 22. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping>
  • 23. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields in borrowers.*
  • 24. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields in borrowers.*
  • 25. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields in borrowers.*
  • 26. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields LDAP fields in borrowers.* in Schema
  • 27. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields LDAP fields ==> in borrowers.* in Schema
  • 28. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Koha fields LDAP fields ==> in borrowers.* in Schema
  • 29. The <mapping> <mapping> <firstname is=quot;givennamequot; ></firstname> <surname is=quot;snquot; ></surname> <address is=quot;postaladdressquot; ></address> <city is=quot;lquot; >Athens, OH</city> <zipcode is=quot;postalcodequot; ></zipcode> <branchcode is=quot;branchquot; >MAIN</branchcode> <userid is=quot;uidquot; ></userid> <password is=quot;userpasswordquot; ></password> <email is=quot;mailquot; ></email> <categorycode is=quot;employeetypequot; >PT</categorycode> <phone is=quot;telephonenumberquot;></phone> </mapping> Default Values Koha fields LDAP fields ==> in borrowers.* in Schema
  • 31. Required Data: 3 Kinds • Required by database
  • 32. Required Data: 3 Kinds • Required by database • Required for login
  • 33. Required Data: 3 Kinds • Required by database • Required for login • Required by you
  • 34. Required by database mysql> show full columns from borrowers; -- field req`d where Null=NO Easy: • surname • address • city
  • 35. Required by database mysql> show full columns from borrowers; -- field req`d where Null=NO Easy: Tricky: • surname • branchcode • address • categorycode • city
  • 36. Required by database mysql> show full columns from borrowers; -- field req`d where Null=NO Easy: Tricky: • surname • branchcode • address • categorycode MUST MATCH VALID • city KOHA VALUES
  • 37. Required by login userid: • can come from from anything • but it better be unique
  • 38. Required by login password: userid: • branchcode • can come from from anything • categorycode • but it better be unique
  • 39. The End LDAP Joe Atzberger, LibLime KohaCon 2009: Plano, TX