作者 主題: 請問LDAP的attribute可以自己自訂修改嗎?  (閱讀 27737 次)

0 會員 與 1 訪客 正在閱讀本文。

xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
如題,
個人是個新手,如有什麼不周到之處的話請多包涵。

目前我是在windows的介面下進行操作,
手上已經有了openldap以及java ldap Browser/Editor,
所以就打算先來進行資料庫輸入的動作,

不過在做的時候卻發現到ldap的attribute名稱會自己受限於固定的格式,
由於我需要自己自訂的屬性名稱,因此現在感覺就被受限了...。
目前充其量只能用相近的屬性來勉強合用...。

舉個最簡單的例子好了
我想要建個欄位叫做
Symptoms:發炎、細菌感染
但是由於Symptoms不為ldap所擁有的attribute名稱,因此無法成功input,
不得已只好變成以下這樣...
description:發炎、細菌感染
但是實質上我還是有要變成上面Symptoms那種形式的需求,甚至於是直接使用中文的屬性名稱。
症狀:發炎、細菌感染

請問有方法可以解決我現在的問題嗎??
感謝!!


補充:
如果真的只有schema的途徑,
那請問有沒有辦法自己新增或是修改schema呢??
因為基本上schema開起來是亂碼的型態,隨便加內容進去也會導致LDAP錯誤。
« 上次編輯: 2009-09-10 14:30 由 xxpp2369735 »

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
要先有schema

xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
嗯...其實我也知道是沒有schema的原因,
不過內部附得那幾個schema都無法達到我的需求,
可是於網路上我又無法找到相關的schema版本可下載,
因此才想問是否有其他方法可以達成我想要得目標?

Luke Lin

  • 活潑的大學生
  • ***
  • 文章數: 244
  • 性別: 男
  • 家裡的少爺
    • 檢視個人資料
要輸入怎樣子的資料格式,完全是由schema來控制
所以,修改schema,讓你可以輸入你要的資料格式
當好人叫行善  當壞人叫造孽 當爛好人叫自做孽

xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
大概已經有了一個方向,現在正在自己嘗試,感謝學長指導!!
-------------------------------------------------------
感覺沒有什麼進展...
現在又有新的問題了,
我從以前的文章中,找到了一個前輩提供的叫做authldap.schema的schema想拿來試用和學習撰寫,
http://www.zytrax.com/books/ldap/ape/courier.html
不過當我寫入slapd,系統成功重啟後,在Ldap browser\editor中仍然無法寫入...
以下是我是打得數值...他跑出了
Idap_add:Invalid syntax <21>
           additional info:objectClass: value #0 invalid per syntax
這樣的字眼...請問是出了什麼問題呢?
以下是我在筆記本試打的資料

dn: uid=aa1, o=tcl,c=cn
uid: aa1
mail: xxpp2369735@yahoo.com.tw
objectClass: authldap
userPassword:: MTIzNDU2
quota: 111

sitediy

  • 活潑的大學生
  • ***
  • 文章數: 426
    • 檢視個人資料
google一下  OID , attribute ,   IANA

應該是你要的東西吧

xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
更正了一下ldif檔...不過還是input不進去,實在不知道是因為什麼原因...

dn: uid=aa1, o=tcl,c=cn
uid: aa1
objectClass: authldap
objectClass: nis
objectClass: cosine
mail: xxpp2369735@yahoo.com.tw
homeDirectory: Web.html
uidNumber: 11
gidNumber: 12
userPassword:: MTIzNDU2
quota: 111

另外sitediy學長我有照你說的去找了OID的資料,
驚覺原來要自己製作schema還要跟政府申請一個OID編碼?
所以我上面打得idif檔不能使用或許也是跟OID編碼不對應有關?
嗯...太多東西無法理解,現在只能用猜測的口吻說明我現在的想法...請見諒。

sitediy

  • 活潑的大學生
  • ***
  • 文章數: 426
    • 檢視個人資料
我只是提供給你一些資訊而已啦

我沒細看你的ldif檔,重點就是你的 attribute和objectclass一定要跟你include 的 schema相符合

個人也沒申請過OID  我都是用其它的attribute name去取代

OID 就像是IP 位址一樣

就看樓主是不是真的有自己自訂的需求囉

以上請參考


xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
我還是無法解決我的schema和idif檔的問題...

懷疑自己的語法有錯誤,不過不是空格的問題...

可以請教我大概是哪個地方出現了問題嗎??謝謝!!

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8830
    • 檢視個人資料
    • http://www.24online.cjb.net
我還是無法解決我的schema和idif檔的問題...

懷疑自己的語法有錯誤,不過不是空格的問題...

可以請教我大概是哪個地方出現了問題嗎??謝謝!!
沒看到內容,是叫我們用猜的??  ???
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

xxpp2369735

  • 可愛的小學生
  • *
  • 文章數: 11
    • 檢視個人資料
原來是我上面說的不大清楚,不好意思

http://www.zytrax.com/books/ldap/ape/courier.html
目前我是試用這個authldap.schema來弄進java ldap Browser/Editor

然後這是我試打的ldif的內容
代碼: [選擇]
dn: uid=aa1, o=tcl,c=cn
uid: aa1
objectClass: authldap
objectClass: nis
objectClass: cosine
mail: xxpp2369735@yahoo.com.tw
homeDirectory: Web.html
uidNumber: 11
gidNumber: 12
userPassword:: MTIzNDU2
quota: 111

schema我已經有確認過成功弄進Openldap(服務重啟沒錯誤)中了,不過想將資料輸入java ldap Browser/Editor,他一直出現
Idap_add:Invalid syntax <21>
           additional info:objectClass: value #0 invalid per syntax
這樣的問題

所以我才在猜測我的語法是否有錯誤,
如果還是有些含糊的話,還請學長再提出,不好意思!!

下面是我的slapd,設定也大多是照一些初始教學的,我想應該沒有什麼問題
代碼: [選擇]
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
ucdata-path ./ucdata
include ./schema/core.schema
include         ./schema/cosine.schema
include         ./schema/inetorgperson.schema
include         ./schema/corba.schema
include         ./schema/dyngroup.schema
include         ./schema/java.schema
include         ./schema/misc.schema
include         ./schema/nis.schema
include         ./schema/openldap.schema
include         ./schema/authldap.schema
include         ./schema/samba3.schema
#include         ./schema/qmail.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap:/root.openldap.org

pidfile ./run/slapd.pid
argsfile ./run/slapd.args

# Load dynamic backend modules:
# modulepath ./libexec/openldap
# moduleload back_bdb.la
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database bdb
suffix "o=tcl,c=cn"  
rootdn "cn=Manager,o=tcl,c=cn"

# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {MD5}MCyNTwGV86+bNoLEXqzPng==
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory ./data
# Indices to maintain
index objectClass eq
index uid pres,eq,sub

database bdb
suffix "o=plan,c=org"
rootdn "cn=Manager,o=plan,c=org"
rootpw {MD5}MCyNTwGV86+bNoLEXqzPng==
directory ./data
index objectClass eq
index uid pres,eq,sub
« 上次編輯: 2009-09-22 12:24 由 日京三子 »

tonyvan123

  • 活潑的大學生
  • ***
  • 文章數: 447
    • 檢視個人資料
特別強調我並不是專家,儘提供我家中和公司中已在運行中的openldap server資料供參考,家中Server為Fedora Core 12,公司為FreeBSD 7.2和FreeBSD 8.0
1. 以下的schema Code供參考(其中geos和nis的Schema我有作過修改)
dn: uid=myname,ou=People,dc=is,dc=com,dc=tw
uid: myname
cn: 林森林
sn: 林森林
mail: myname@is.com.tw
mailRoutingAddress: myname@ms1.is.com.tw
mailHost: ms1.is.com.tw
objectClass: inetLocalMailRecipient
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: kerberosSecurityObject
userPassword: {crypt}lvox3TMibod
krbName: myname@IS.COM.TW
loginShell: /bin/tcsh
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/myname


2. 要改schema是可以的,以下為範例
原nis.schema中gecos結構
attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
   DESC 'The GECOS field; the common name'
   EQUALITY caseIgnoreIA5Match
   SUBSTR caseIgnoreIA5SubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )


修改後的gecos結構
attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
   DESC 'The GECOS field; the common name'
   EQUALITY caseIgnoreMatch
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )

3. 至於您所引用的objectClass,我是沒用過,可能要依第2點方式去修改Schema
objectClass: authldap
objectClass: nis
objectClass: cosine
« 上次編輯: 2010-03-17 10:46 由 tonyvan123 »