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

How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...Altinity Ltd
 
DNIe en tu Active Directory
DNIe en tu Active DirectoryDNIe en tu Active Directory
DNIe en tu Active DirectoryChema Alonso
 
Hadoop & Big Data benchmarking
Hadoop & Big Data benchmarkingHadoop & Big Data benchmarking
Hadoop & Big Data benchmarkingBart Vandewoestyne
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022Flink Forward
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
Lightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedLightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedScyllaDB
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryEdson Oliveira
 
Microsoft Remote Desktop Services
Microsoft Remote Desktop ServicesMicrosoft Remote Desktop Services
Microsoft Remote Desktop ServicesRonnie Isherwood
 
Apache HBase at Airbnb
Apache HBase at Airbnb Apache HBase at Airbnb
Apache HBase at Airbnb HBaseCon
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dbaOsama Mustafa
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyYaroslav Tkachenko
 
Koha Integration: RFID and SIP2
Koha Integration: RFID and SIP2Koha Integration: RFID and SIP2
Koha Integration: RFID and SIP2ohiocore
 
Genesys SIP Server Architecture
Genesys SIP Server ArchitectureGenesys SIP Server Architecture
Genesys SIP Server ArchitectureRanjit Patel
 
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostRNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostChristoph Adler
 
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza SeattleBuilding Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza SeattleEvan Chan
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민NAVER D2
 

Tendances (20)

An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
 
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
How we broke Apache Ignite by adding persistence, by Stephen Darlington (Grid...
 
DNIe en tu Active Directory
DNIe en tu Active DirectoryDNIe en tu Active Directory
DNIe en tu Active Directory
 
Hadoop & Big Data benchmarking
Hadoop & Big Data benchmarkingHadoop & Big Data benchmarking
Hadoop & Big Data benchmarking
 
HDFS Erasure Coding in Action
HDFS Erasure Coding in Action HDFS Erasure Coding in Action
HDFS Erasure Coding in Action
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Lightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning SpeedLightweight Transactions at Lightning Speed
Lightweight Transactions at Lightning Speed
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
 
Microsoft Remote Desktop Services
Microsoft Remote Desktop ServicesMicrosoft Remote Desktop Services
Microsoft Remote Desktop Services
 
Apache HBase at Airbnb
Apache HBase at Airbnb Apache HBase at Airbnb
Apache HBase at Airbnb
 
Weblogic 101 for dba
Weblogic  101 for dbaWeblogic  101 for dba
Weblogic 101 for dba
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
03 hive query language (hql)
03 hive query language (hql)03 hive query language (hql)
03 hive query language (hql)
 
Koha Integration: RFID and SIP2
Koha Integration: RFID and SIP2Koha Integration: RFID and SIP2
Koha Integration: RFID and SIP2
 
Apache PIG
Apache PIGApache PIG
Apache PIG
 
Genesys SIP Server Architecture
Genesys SIP Server ArchitectureGenesys SIP Server Architecture
Genesys SIP Server Architecture
 
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostRNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance Boost
 
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza SeattleBuilding Scalable Data Pipelines - 2016 DataPalooza Seattle
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
 
[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민[225]yarn 기반의 deep learning application cluster 구축 김제민
[225]yarn 기반의 deep learning application cluster 구축 김제민
 

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
 
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
 
PHP Training Institute in Ambala ! Battra Computer Centre
PHP Training Institute in Ambala ! Battra Computer CentrePHP Training Institute in Ambala ! Battra Computer Centre
PHP Training Institute in Ambala ! Battra Computer Centrejatin batra
 

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
 
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
 
PHP Training Institute in Ambala ! Battra Computer Centre
PHP Training Institute in Ambala ! Battra Computer CentrePHP Training Institute in Ambala ! Battra Computer Centre
PHP Training Institute in Ambala ! Battra Computer Centre
 

Dernier

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Dernier (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

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