Strona 1 z 3

LDAP, roszerzenie opisu użytkownika

: 13 grudnia 2011, 12:42
autor: pokrak79
Witam.
P
otrzebuję przetestować przejście z LDAP-a na AD.
Pole użytkownika ma zawierać dodatkowy opis np. kolor oczu.

Utworzyłem plik pole.ldif

Kod: Zaznacz cały

dn: cn=pole,cn=schema,cn=config 
objectClass: olcSchemaConfig 
cn: pole  
objectClasses: (   
1.3.6.1.4.1.4203.666.1.100   
NAME 'color'   
DESC 'Color'  
 SUP inetOrgPerson   
STRUCTURAL   MAY ( color)  
 )
Dodaję do systemu poleceniem:

Kod: Zaznacz cały

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/pole.ldif
Nie wykazał żadnych błędów.

Plik użytkownika z dodanym polem ,,color'':

Kod: Zaznacz cały

dn: uid=kolorowy,ou=people,dc=server,dc=world 
objectClass: inetOrgPerson 
objectClass: posixAccount 
objectClass: shadowAccount 
uid: kolorowy 
sn: www 
givenName: www
 cn: www 
displayName: www 
uidNumber: 1005 
gidNumber: 1005 
userPassword: {crypt}$6$CHWnPWpB$bDPNEcOMKi4vkAwl4Lk3EZy2mtTZADjjylBlpTuu7FtAPH$ 
gecos: www 
color: zielony
 loginShell: /bin/bash
homeDirectory: /home/kolorowy 
shadowExpire: -1 
shadowFlag: 0 
shadowWarning: 7 
shadowMin: 0 
shadowMax: 99999 
shadowLastChange: 15317

Próba założenia użytkownika:

Kod: Zaznacz cały

root@local:/etc/ldap# ldapadd -x -D cn=admin,dc=server,dc=world -W -f ldapuser.ldif 
Enter LDAP Password: 
adding new entry "uid=kolorowy,ou=people,dc=server,dc=world" 
ldap_add: Undefined attribute type (17)         additional info: color: attribute type undefined
Z góry dziękuję za pomoc w rozwiązaniu problemu.

: 13 grudnia 2011, 13:24
autor: Unit

Kod: Zaznacz cały

objectClasses: (   
1.3.6.1.4.1.4203.666.1.100   
NAME 'color'   
DESC 'Color'  
 SUP inetOrgPerson   
STRUCTURAL   MAY ( color)  
 )
musisz mieć zaimportowane w jakimś schemacie np.:
cat /etc/ldap/slapd.conf:

Kod: Zaznacz cały

include /etc/ldap/schema/color.schema

: 13 grudnia 2011, 14:03
autor: pokrak79
Dodałem wpis do /etc/ldap/slapd.conf

Kod: Zaznacz cały

peset slapd

Próba:

Kod: Zaznacz cały

root@local:/etc/ldap# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/pole.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=pole,cn=schema,cn=config"

root@local:/etc/ldap# ldapadd -x -D cn=admin,dc=server,dc=world -W -f ldapuser.ldif
Enter LDAP Password:
adding new entry "uid=kolorowy,ou=people,dc=server,dc=world"
ldap_add: Undefined attribute type (17)
        additional info: color: attribute type undefined

: 13 grudnia 2011, 14:07
autor: Unit

Kod: Zaznacz cały

additional info: color: attribute type undefined
dalej nie widzi tego atrybutu.
Dopisz go do dowolnego schematu w /etc/ldap/schema/, a nie w slapd.conf

: 13 grudnia 2011, 14:24
autor: pokrak79
Czyli musiałbym edytować schemat np. inetorgperson.ldif i inetorgperson.schema Jak to teraz z głową zrobić, żeby zadziałało i nie napsuło. Poprzednie próby były po omacku. Jest to moja pierwsza styczność z LDAP-em.

Wziąłem te pliki i je edytowałem tylko dla jednej zmiennej.

Plik inetorgperson.ldif:

Kod: Zaznacz cały

dn: cn=kolor,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: kolor
olcAttributeTypes: ( 2.5.4.46666 NAME 'kolor' DESC 'RFC279
 8: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR cas
 eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcObjectClasses: ( 2.16.840.1.113730.3.2.2666 NAME 'kolor' DESC 'RFC2
 798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY
 ( kolor ) )

i plik netorgperson.schema:

Kod: Zaznacz cały

attributetype ( 2.5.4.46666
        NAME 'kolor'
        DESC 'RFC2798: kolor'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

objectclass     ( 2.16.840.1.113730.3.2.2666
    NAME 'kolor'
 DESC 'RFC2798: Internet Organizational Person'
    SUP organizationalPerson
    STRUCTURAL
        MAY (
                kolor )
        )

Kod: Zaznacz cały

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/kolor.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
ldapadd: invalid format (line 6) entry: "cn=kolor,cn=schema,cn=config"
I zgłupiałem, brak mi pomysłów.

: 13 grudnia 2011, 15:21
autor: Unit
Dobrze kombinujesz.
Poniżej masz różnice między orginalnymi plikami, a zmienionymi.
Atrybut carLicense zmieniony na color.

# diff inetorgperson.ldif inetorgperson.ldif_orig

Kod: Zaznacz cały

34c34,35
< olcAttributeTypes: ( 2.16.840.1.113730.3.1.1 NAME 'color' DESC 'eye color' EQUALITY caseIgnoreMatch SUBSTR cas
---
> olcAttributeTypes: ( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC279
>  8: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR cas
64c65
<  ( audio $ businessCategory $ color $ departmentNumber $ displayName $ em
---
>  ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ em

# diff inetorgperson.schema inetorgperson.schema_orig

Kod: Zaznacz cały

28c28
< # color
---
> # carLicense
32,33c32,33
<         NAME 'color'
<         DESC 'eye color'
---
>         NAME 'carLicense'
>         DESC 'RFC2798: vehicle license or registration plate'
148c148
<                 audio $ businessCategory $ color $ departmentNumber $
---
>                 audio $ businessCategory $ carLicense $ departmentNumber $

: 13 grudnia 2011, 15:50
autor: pokrak79
Dobrze, po modyfikacjach:
kolor.ldiff

Kod: Zaznacz cały

dn: cn=color,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: color
olcAttributeTypes: ( 2.16.840.1.113730.3.1.1 NAME 'color' DESC 'eye color' EQUALITY $
eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcObjectClasses: ( 2.16.840.1.113730.3.2.2666 NAME 'color' DESC 'RFC2
798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY
( color ) )
kolor.schema

Kod: Zaznacz cały

attributetype ( 2.5.4.46666
        NAME 'color'
        DESC 'eye kolor'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

objectclass     ( 2.16.840.1.113730.3.2.2666
    NAME 'color'
 DESC 'RFC2798: Internet Organizational Person'
    SUP organizationalPerson
    STRUCTURAL
        MAY (
                color )
        )
Załadowanie:

Kod: Zaznacz cały

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/kolor.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
ldapadd: invalid format (line 5) entry: "cn=color,cn=schema,cn=config"

: 13 grudnia 2011, 15:55
autor: Unit
Teraz to masz utworzyć użytkownika wybierając jego kolor oczu, a nie załadować schemat.

Używaj wszędzie 'color', a nie raz 'kolor' raz 'color'.

: 13 grudnia 2011, 16:04
autor: pokrak79
ldapuser.ldif

Kod: Zaznacz cały

dn: uid=kolorowy,ou=people,dc=server,dc=world
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: kolorowy
sn: kolor
givenName: kolorowy
cn: kolorowy kolor
displayName: kolorowy kolor
uidNumber: 1004
gidNumber: 1004
userPassword: {crypt}$6$ozB68f.8$Bh/si5ZN.LM5t5ngnPwigZ0p7SOT6B95Zk0JfhKYwxSXDG8koIY$
gecos: kolorowy kolor
color: zielony
loginShell: /bin/bash
homeDirectory: /home/kolorowy
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 0
shadowMax: 99999
shadowLastChange: 15317
Zakładanie użytkownika:

Kod: Zaznacz cały

ldapadd -x -D cn=admin,dc=server,dc=world -W -f ldapuser.ldif
Enter LDAP Password:
adding new entry "uid=kolorowy,ou=people,dc=server,dc=world"
ldap_add: Undefined attribute type (17)
        additional info: color: attribute type undefined

Nie zaskoczyło.

: 13 grudnia 2011, 16:18
autor: Unit
Dla Twojego użytkownika mam:

Kod: Zaznacz cały

ldapadd -x -D cn=admin,dc=base -W -f user.ldif 
Enter LDAP Password: 
adding new entry "uid=kolorowy,dc=base"
Zmieniłem tylko pliki inetorgperson.ldif oraz inetorgperson.schema (powyżej diff-y carLicense -> color)

Widze używasz plików kolor.ldiff i kolor.schema. Posiadasz w slapd.conf linię:

Kod: Zaznacz cały

include         /etc/ldap/schema/kolor.schema
?