LDAP, roszerzenie opisu użytkownika

Tematy związane z oprogramowaniem, instalacją, konfiguracją
pokrak79
Posty: 43
Rejestracja: 07 maja 2008, 21:34

LDAP, roszerzenie opisu użytkownika

Post 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.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post 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
pokrak79
Posty: 43
Rejestracja: 07 maja 2008, 21:34

Post 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
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post 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
pokrak79
Posty: 43
Rejestracja: 07 maja 2008, 21:34

Post 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.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post 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 $
pokrak79
Posty: 43
Rejestracja: 07 maja 2008, 21:34

Post 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"
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post 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'.
pokrak79
Posty: 43
Rejestracja: 07 maja 2008, 21:34

Post 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.
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post 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
?
ODPOWIEDZ