SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

101 CCNA Labs with Solutions.pdf
101 CCNA Labs with Solutions.pdf101 CCNA Labs with Solutions.pdf
101 CCNA Labs with Solutions.pdf
BiVnHu1
 
Active directory
Active directory Active directory
Active directory
deshvikas
 
Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPA
LDAPCon
 

Mais procurados (20)

101 CCNA Labs with Solutions.pdf
101 CCNA Labs with Solutions.pdf101 CCNA Labs with Solutions.pdf
101 CCNA Labs with Solutions.pdf
 
Packet tracer
Packet tracerPacket tracer
Packet tracer
 
Mikro tik advanced training
Mikro tik advanced trainingMikro tik advanced training
Mikro tik advanced training
 
Ccnp presentation [Day 1-3] Class
Ccnp presentation [Day 1-3] ClassCcnp presentation [Day 1-3] Class
Ccnp presentation [Day 1-3] Class
 
Active directory
Active directory Active directory
Active directory
 
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
 
Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPA
 
Lesson 2 slideshow
Lesson 2 slideshowLesson 2 slideshow
Lesson 2 slideshow
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Mikrotik Hotspot
Mikrotik HotspotMikrotik Hotspot
Mikrotik Hotspot
 
LAN Switching and Wireless: Ch1 - LAN Design
LAN Switching and Wireless: Ch1 - LAN DesignLAN Switching and Wireless: Ch1 - LAN Design
LAN Switching and Wireless: Ch1 - LAN Design
 
3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overview3 palo alto ngfw architecture overview
3 palo alto ngfw architecture overview
 
CCNA ppt Day 1
CCNA ppt Day 1CCNA ppt Day 1
CCNA ppt Day 1
 
Web Proxy Server
Web Proxy ServerWeb Proxy Server
Web Proxy Server
 
Firewall
FirewallFirewall
Firewall
 
Access Control List (ACL)
Access Control List (ACL)Access Control List (ACL)
Access Control List (ACL)
 
Role of OSI Layer when we open a webpage
Role of OSI Layer when we open a webpageRole of OSI Layer when we open a webpage
Role of OSI Layer when we open a webpage
 
Fhrp notes
Fhrp notesFhrp notes
Fhrp notes
 
CCNA presentation.
CCNA presentation.CCNA presentation.
CCNA presentation.
 
Advanced Captive Portal - pfSense Hangout June 2017
Advanced Captive Portal - pfSense Hangout June 2017Advanced Captive Portal - pfSense Hangout June 2017
Advanced Captive Portal - pfSense Hangout June 2017
 

Destaque

Koha presentation
Koha presentationKoha presentation
Koha presentation
BibLibre
 
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
Gihan Lahoud
 
Pictures And Music
Pictures And  MusicPictures And  Music
Pictures And Music
Bless_India
 
Meleane Vitae and Wayne Smethurst
Meleane  Vitae and Wayne SmethurstMeleane  Vitae and Wayne Smethurst
Meleane Vitae and Wayne Smethurst
Gihan Lahoud
 
W T S Resume Workshop 03
W T S  Resume  Workshop 03W T S  Resume  Workshop 03
W T S Resume Workshop 03
lecipollo
 
NCSU eLearning Certificates
NCSU eLearning CertificatesNCSU eLearning Certificates
NCSU eLearning Certificates
Ganesh Dhand
 

Destaque (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
 

Semelhante a Koha Integration: LDAP

Minnesota User Group_July 2015
Minnesota User Group_July 2015Minnesota User Group_July 2015
Minnesota User Group_July 2015
Zack 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 passwords
Francois 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 Analytics
Webtrends
 
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
Webtrends
 
Web 3 Scott Brinker
Web 3 Scott BrinkerWeb 3 Scott Brinker
Web 3 Scott Brinker
Mediabistro
 
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
Nho Vĩnh
 

Semelhante a Koha Integration: LDAP (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
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Koha Integration: LDAP

  • 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