본문 바로가기
서버구축 (WEB,DB)

Active Directory 와 Site Server LDAP

by 날으는물고기 2009. 8. 17.

Active Directory 와 Site Server LDAP

1. Site Server LDAP

*********************************************
***** LDAP Object의 일반적 사용형태 *****
*********************************************
Dim ds As IADsOpenDSObject
Dim oOu As IADsContainer
Dim oContainer As IADsContainer
Dim User As IADs

Set ds = GetObject("LDAP:")
Set oOu = ds.OpenDSObject(path, id, password)
Set oContainer = oOu.GetObject("member", "ou=members")

조회 : Set User = oContainer.GetObject("member", "cn=USERID")
생성 : Set User = oContainer.Create("member", "cn=USERID")
삭제 : oContainer.Delete "member", "cn=USERID"
---------------------------------------------------------------------------------
path : "LDAP://127.0.0.1/o=skt"
id : "cn=administrator, ou=members, o=skt"
password : "password"

- 새로운 속성 추가(Create)
User.Put [Attribute], [contents]
User.SetInfo

- 기존속성에서 삭제, 수정, 추가
User.Put [Attribute], [contents] 또는,
User.PutEx 1, [Attribute], [contents]

ADS_PROPERTY_CLEAR = 1,
ADS_PROPERTY_UPDATE = 2,
ADS_PROPERTY_APPEND = 3,
ADS_PROPERTY_DELETE = 4

' Adding a value
x.PutEx ADS_PROPERTY_APPEND, "OtherhomePhone", Array("333-3333")
x.SetInfo 'Now the values are 111-1111,222-222,333-3333

' deleting two values
x.PutEx ADS_PROPERTY_DELETE, "OtherHomePhone", Array("111-1111", "222-2222")
x.SetInfo 'Now the values are 333-3333

' changing the remaining value
x.PutEx ADS_PROPERTY_UPDATE, "OtherHomePhone", Array("888-8888", "999-9999")
x.SetInfo 'Now the values are 888-8888,999-9999

'Deleting the value.
x.PutEx ADS_PROPERTY_CLEAR, "OtherHomePhone", vbNullString
x.SetInfo 'Now the property has no value

- 속성 읽기
txtUserID.Text = User.Get("UserID")

Dim cel, CelPhone As Variant
CelPhone = User.GetEx("CelPhone")
i = 0
For Each cel In CelPhone
txtCelPhone(i).Text = CStr(cel)
i = i + 1
Next


2. Active Directory

*********************************************
***** Windows 2000 Active Directory *****
*********************************************
Dim ds As IADsOpenDSObject
Dim oOu As IADsContainer
Dim oContainer As IADsContainer
Dim User As IADsUser

Set ds = GetObject("LDAP:")
Set oOu = ds.OpenDSObject(path, id, password)
Set oContainer = oOu.GetObject("User", "ou=Members")
조회 : Set User = oContainer.GetObject("User", "cn=USERID")
생성 : Set User = oContainer.Create("User", "cn=USERID")
삭제 : oContainer.Delete "User", "cn=USERID"
---------------------------------------------------------------------------------
path : "LDAP://192.168.0.2/dc=nets, dc=co, dc=kr"
id : "cn=administrator, ou=Users, dc=nets, dc=co, dc=kr"
password : "password"

- 새로운 속성 추가(Create)
User.Put [Attribute], [contents]
User.SetInfo

- 기존속성에서 삭제, 수정, 추가
User.Put [Attribute], [contents] 또는,
User.PutEx 1, [Attribute], [contents]

ADS_PROPERTY_CLEAR = 1,
ADS_PROPERTY_UPDATE = 2,
ADS_PROPERTY_APPEND = 3,
ADS_PROPERTY_DELETE = 4

- 속성 읽기
txtUserID.Text = User.Get("UserID") 또는
txtUserID.Text = User.UserID

이상 간략하게 사용법의 차이에 대해 알아보았습니다.


LDAP은 Lightweight Directory Access Protocol의 약자로서,
부하가 적은 디렉토리 서비스 프로토콜입니다. 현재 SK Telecom, n016등에서 회원인증 및 관리용으로 광범위하게 사용되고 있으며 앞으로 점점 더 확장사용되는 추세입니다.
또한 Windows2000부터는 기본적으로 이 LDAP기반하에 시스템이 구성됩니다.
상당히 중요한 것이라 할 수 있습니다.

1) Site Server 3.0 LDAP은 다음과 같은 구조로 이루어집니다.

o = 조직
ou = 조직단위
cn = 일반이름

따라서, 사용할 때는 LDAP://cn=xxxxx,ou=xxxxx,o=xxxx 와 같은 형식으로 써야 합니다.

2) 이에 반해 Windows 2000에서는 철저히 DNS의 구성을 따릅니다. 따라서 기존의 네트워크 식별이름을 사용하지 않고 도메인 이름을 네트워크상에서도 사용하게 됩니다. Active Directory에서도 이와 같은 것이 반영되어 다음과 같은 구조로 이루어지게 됩니다.

dc = 도메인
ou = 조직단위
cn = 일반이름

여기서 dc는 도메인 각각의 이름을 각각 지정해주어야 합니다. 따라서 다음과 같이 사용하게 됩니다.

LDAP://cn=xxxxx,ou=xxxxx,dc=nets,dc=co,dc=kr

이것이 Site Server LDAP과 Active Directory의 (눈에 보이는) 가장 큰 차이점입니다.


출처 : http://blog.daum.net/thermidor
728x90

댓글