Penguins Unbound
Penguins Unbound > Past Meetings > 20090926 - LDAP Enterprise Authentication > 11.2 Schemas

11.2 Schemas

Page last modified 16:29, 21 Dec 2011 by goeko
    Table of contents
      1. 1.1. Schemas
      2. 1.2. Example Schema
    1. 2. Links

    Schemas

    Being LDAP is very flexible there are different Schemas for different types of data stored in an LDAP database.  The Schema is very similar to a  databases schema, they define the type and organization and relation of the data in LDAP.

     

    Often Schemas are built on top of each other, for example the inetorigperson schema is build on core therefor requires that the core b schema be loaded first.

     

    The Schemas are specified in the /etc/ldap/slapd.conf

     # Schema and objectClass definitions
    include         /etc/ldap/schema/core.schema
    include         /etc/ldap/schema/cosine.schema
    include         /etc/ldap/schema/nis.schema
    include         /etc/ldap/schema/inetorgperson.schema

     

    If you are going to be using LDAP with Radius you will need to load the RADIUS-LDAPv3.schema

     

    Example Schema

    # inetorgperson.schema -- InetOrgPerson (RFC2798)
    # $OpenLDAP: pkg/ldap/servers/slapd/schema/inetorgperson.schema,v 1.18.2.3 2008/02/11 23:2
    6:49 kurt Exp $
    ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
    ##
    ## Copyright 1998-2008 The OpenLDAP Foundation.
    ## All rights reserved.
    ##
    ## Redistribution and use in source and binary forms, with or without
    ## modification, are permitted only as authorized by the OpenLDAP
    ## Public License.
    ##
    ## A copy of this license is available in the file LICENSE in the
    ## top-level directory of the distribution or, alternatively, at
    ## <http://www.OpenLDAP.org/license.html>.
    #
    # InetOrgPerson (RFC2798)
    #
    # Depends upon
    #   Definition of an X.500 Attribute Type and an Object Class to Hold
    #   Uniform Resource Identifiers (URIs) [RFC2079]
    #       (core.schema)
    #
    #   A Summary of the X.500(96) User Schema for use with LDAPv3 [RFC2256]
    #       (core.schema)
    #
    #   The COSINE and Internet X.500 Schema [RFC1274] (cosine.schema)
    
    # carLicense
    # This multivalued field is used to record the values of the license or
    # registration plate associated with an individual.
    attributetype ( 2.16.840.1.113730.3.1.1
            NAME 'carLicense'
            DESC 'RFC2798: vehicle license or registration plate'
            EQUALITY caseIgnoreMatch
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
    
    # departmentNumber
    # Code for department to which a person belongs.  This can also be
    # strictly numeric (e.g., 1234) or alphanumeric (e.g., ABC/123).
    attributetype ( 2.16.840.1.113730.3.1.2
            NAME 'departmentNumber'
            DESC 'RFC2798: identifies a department within an organization'
            EQUALITY caseIgnoreMatch
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
    
    # displayName
    # When displaying an entry, especially within a one-line summary list, it
    # is useful to be able to identify a name to be used.  Since other attri-
    # bute types such as 'cn' are multivalued, an additional attribute type is
    # needed.  Display name is defined for this purpose.
    attributetype ( 2.16.840.1.113730.3.1.241
            NAME 'displayName'
            DESC 'RFC2798: preferred name to be used when displaying entries'
            EQUALITY caseIgnoreMatch
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
            SINGLE-VALUE )
    
    # employeeNumber
    # Numeric or alphanumeric identifier assigned to a person, typically based
    # on order of hire or association with an organization.  Single valued.
    attributetype ( 2.16.840.1.113730.3.1.3
            NAME 'employeeNumber'
            DESC 'RFC2798: numerically identifies an employee within an organization'
            EQUALITY caseIgnoreMatch
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
            SINGLE-VALUE )
    
    # employeeType
    # Used to identify the employer to employee relationship.  Typical values
    # used will be "Contractor", "Employee", "Intern", "Temp", "External", and
    # "Unknown" but any value may be used.
    attributetype ( 2.16.840.1.113730.3.1.4
            NAME 'employeeType'
            DESC 'RFC2798: type of employment for a person'
            EQUALITY caseIgnoreMatch
            SUBSTR caseIgnoreSubstringsMatch
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
    
    # jpegPhoto
    # Used to store one or more images of a person using the JPEG File
    # Interchange Format [JFIF].
    # Note that the jpegPhoto attribute type was defined for use in the
    # Internet X.500 pilots but no referencable definition for it could be
    # located.
    attributetype ( 0.9.2342.19200300.100.1.60
            NAME 'jpegPhoto'
            DESC 'RFC2798: a JPEG image'
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 )
    
    ...
    

     

    There are mulitple schemas in /etc/ldap/schema

     

    Links

    Schema Viewer (not sure which schemas are loaded)

              http://ldap.akbkhome.com/index.php

     

    The Ubuntu Guide to installing and configufing OpenLDAP

    https://help.ubuntu.com/community/OpenLDAPServer

     

    OpenLDAP Schema Definition

    http://www.openldap.org/doc/admin22/schema.html

    Powered by MindTouch Core