25
Learning Directory 2000/09/16 이이이 이이이이이이이 이이이 ([email protected])

Learning Directory

Embed Size (px)

DESCRIPTION

Learning Directory. 2000/09/16 이니텍 보안기술연구소 권용철 ([email protected]). Goal. Directory 의 개념을 이해해보도록 노력해 본다 LDAP 으로 검색 정도는 할 줄 아는 소양을 기른다. What is Directory?. Directory Noun. 주소 성명록 X.500 : X.400 을 구현하기 위해 만들어진 일종의 distributed DB Directory 를 이루는 entry 들에 주소로 접근 - PowerPoint PPT Presentation

Citation preview

Page 1: Learning Directory

Learning Directory

2000/09/16이니텍 보안기술연구소 권용철 ([email protected])

Page 2: Learning Directory

Goal

Directory 의 개념을 이해해보도록 노력해 본다LDAP 으로 검색 정도는 할 줄 아는 소양을 기른다

Page 3: Learning Directory

What is Directory?

Directory Noun. 주소 성명록 X.500 : X.400 을 구현하기 위해 만들어진

일종의 distributed DB Directory 를 이루는 entry 들에 주소로 접근 Object Oriented 관점에서 실 세계를 표현할

수 있는 가장 강력한 수단

Page 4: Learning Directory

At the Beginning…

Requirement of X.400 Naming person’s email address Search, Add, Remove, Modify email addres

s organizing hierarchically because it’s more i

ntuitive

That’s exactly same as Phone Book!!

Page 5: Learning Directory

Directory 에 관련된 용어

DITEntryAttributeSchemaDN & RDN

Page 6: Learning Directory

DIT

DIT : Directory Information Tree 정보를 가지고 있는 Entry 혹은 Object

들의 집합체 구조는 n-ary tree 로서 , DIT 에서의 관계를

설명하는 데는 tree 자료구조의 표현을 그대로 따른다

Page 7: Learning Directory

Entry

Entry : DIT 를 구성하는 단위 . Object 라 불리기도 한다Entry 는 여러 가지 속성 (Attribute) 로 구성되며 , 이 속성들에 따라서 다른 Entry 와 구별된다

Page 8: Learning Directory

Attribute

Attribute : Entry 에 의미를 부여하는 정보Attribute 는 Attribute 의 종류를 나타내는 type 과 그 값을 나타내는 value 들로 정의된다 .Entry 는 objectclass 라는 attribute 를 반드시 가져야 한다

Page 9: Learning Directory

Schema

Schema : a syntax of DITSchema 는 DIT 에서 사용될 objectclass의 설계도 , attribute 의 이름과 값에 대한 정의 , 그리고 기타 필요한 여러 가지 정보들에 대한 설계도를 말한다 .Schema checking = Syntax checking

Page 10: Learning Directory

Sample Schema

Attribute Definition

( 2.5.18.3 NAME 'creatorsName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )

Page 11: Learning Directory

Sample Schema

Object Classobjectclass person requires objectClass, sn, cn allows description, seeAlso, telephoneNumber, userPassword

Page 12: Learning Directory

난 흑인이야

나도 흑인이야나도 흑인이야 Me too

So am I

사람의 이름은… ?

????

Page 13: Learning Directory

난 Smith

난 Eric

난 Martin 난 Robert

난 Rocky

사람의 이름은…

Page 14: Learning Directory

DN & RDN

DN : distinguished nameRDN : relative distinguished name

DN 은 DIT 내에서 유일하게 한 Entity를 가리키는 이름 .RDN 은 sibiling 사이에서 유일하게 한 Entity 를 가리키는 이름

Page 15: Learning Directory

DN & RDN (continued)

Entry 의 이름은 Entry 가 가지고 있는 임의 attribute 의 값이 될 수 있다 .RDN 의 경우에는 sibiling entry 사이에서 현 entry 가 가지고 있는 유일한 attribute&value의 집합으로 나타낼 수 있다 .DN 은 DIT 의 Root Entry 로 부터 특정 Entry를 포함하는 경로 상에 있는 Entry 들의 RDN의 열거이다 (not 집합 )

Page 16: Learning Directory

C=KR

L=서울특별시 L=대전광역시

O=이니텍 O=한국과학기술원

OU=보안기술연구소 OU=전산학과

CN=권용철 CN=venus

CN=권용철

OU=교수OU=학부생

Sample DIT

Entry

CN= 권용철 ,OU= 학부생 ,OU= 전산학과 ,O= 한국과학기술원 ,L= 대전광역시 ,C=KR

Page 17: Learning Directory

Directory 의 강점

분산 환경에 적합하다 Replication Referral Scalable High performance Logical DataBase Connectivity with CORBA and JAVA…

Page 18: Learning Directory

Object Oriented

DIT 를 구성하는 Entry 는 ObjectObjectClass : Entry 의 설계도Structural Class Entry 의 주된 속성을 표현

Auxiliary Class – like interface in JAVA Entry 의 부가적인 속성을 표현

Page 19: Learning Directory

Object Oriented – Example

Initech is organization(company), but now it does CA service. How can we make entry of Initech in DIT?

Objectclass

organization +Objectclass

CertificationAuthority

=Organization

&Certification

Authority

Page 20: Learning Directory

X.500 DAP and LDAP

X.500 DAP DAP : Directory Access Protocol Too heavy to use(full ASN.1 BER encoding, etc)

LDAP Light-weight Directory Access Protocol Protocol carried directly over TCP or other transport Use direct string encoding rather than BER encodin

g as many as possibleLDAP is subset of DAP

Page 21: Learning Directory

Compare DAP & LDAP

DN encodingSEQUENCE {

SET {SEQUENCE {

OBJECT IDENTIFIER ( 2.5.4.6 )PRINTABLE STRING ‘KR’

}SEQUENCE {

OBJECT IDENTIFIER ( 2.5.4.10 )PRINTABLE STRING ‘Initech, Inc’

}}

}When DER encoded, it’s 34 byte. And complex encoding process.

O=“Initech, Inc”,C=KR

It’s 21 byte. And simple encoding process.

Page 22: Learning Directory

Directory 어디까지 왔나 ?

Many Directory enabled applications Internet Explorer, Netscape Communicator, Eudor

a, etcSendmail/named/… – support LDAP as backend DataBaseVarious language support LDAP(ex. PHP/MFC/JAVA/Perl/…)Backend Repository of Intranet or Internet Service

Page 23: Learning Directory

Directory 로 검색을 해 보자 !

준비물 : Netscape Navigator or IELDAP URL Search filter Ldap://ldap.host.name:port/ou=search,o=

base?returnattributelist?searchmethod?searchfilter

Searchmethod : one,base,sub Searchfilter : prefix expression Operators : &,|,!,>=,<=,~=,=,*

Page 24: Learning Directory

검색 예제

Ldap://venus.initech.com/o=initech,c=kr??sub?(&(mail=*initech*)(cn=* 용철 ))Ldap://venus.initech.com/o=initech,c=kr??one?(|(cn= 이 *)(cn= 김 *))Ldap://venus.initech.com/ou=people,o=initech,c=kr??sub?(&(cn= 김 *)(!(mail=*initech*)))

Page 25: Learning Directory

References

RFC-2251 LDAP v3 를 필두로 RFC 줄줄이…

http://www.openldap.orghttp://www.opendirectory.comhttp://developer.netscape.comIETF LDAP working group