1 / 25

Learning Directory

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

Download Presentation

Learning Directory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Learning Directory 2000/09/16 이니텍 보안기술연구소 권용철 (godslord@initech.com)

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

  3. What is Directory? • Directory • Noun. 주소 성명록 • X.500 : X.400을 구현하기 위해 만들어진 일종의 distributed DB • Directory를 이루는 entry들에 주소로 접근 • Object Oriented 관점에서 실 세계를 표현할 수 있는 가장 강력한 수단

  4. At the Beginning… • Requirement of X.400 • Naming person’s email address • Search, Add, Remove, Modify email address • organizing hierarchically because it’s more intuitive • That’s exactly same as Phone Book!! 

  5. Directory에 관련된 용어 • DIT • Entry • Attribute • Schema • DN & RDN

  6. DIT • DIT : Directory Information Tree • 정보를 가지고 있는 Entry 혹은 Object들의 집합체 • 구조는 n-ary tree로서, DIT에서의 관계를 설명하는 데는 tree 자료구조의 표현을 그대로 따른다

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

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

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

  10. 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 )

  11. Sample Schema • Object Class objectclass person requires objectClass, sn, cn allows description, seeAlso, telephoneNumber, userPassword

  12. 사람의 이름은…? So am I 난 흑인이야 ???? 나도 흑인이야 Me too 나도 흑인이야

  13. 사람의 이름은… 난 Rocky 난 Smith 난 Martin 난 Robert 난 Eric

  14. DN & RDN • DN : distinguished name • RDN : relative distinguished name • DN은 DIT 내에서 유일하게 한 Entity를 가리키는 이름. • RDN은 sibiling 사이에서 유일하게 한 Entity를 가리키는 이름

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

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

  17. Directory의 강점 • 분산 환경에 적합하다 • Replication • Referral • Scalable • High performance • Logical DataBase • Connectivity with CORBA and JAVA…

  18. Object Oriented • DIT를 구성하는 Entry는 Object • ObjectClass : Entry의 설계도 • Structural Class • Entry의 주된 속성을 표현 • Auxiliary Class – like interface in JAVA • Entry의 부가적인 속성을 표현

  19. 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 Certification Authority Organization & Certification Authority + =

  20. 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 encoding as many as possible • LDAP is subset of DAP

  21. Compare DAP & LDAP • DN encoding SEQUENCE { 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.

  22. Directory 어디까지 왔나? • Many Directory enabled applications • Internet Explorer, Netscape Communicator, Eudora, etc • Sendmail/named/…– support LDAP as backend DataBase • Various language support LDAP(ex. PHP/MFC/JAVA/Perl/…) • Backend Repository of Intranet or Internet Service

  23. Directory로 검색을 해 보자! • 준비물 : Netscape Navigator or IE • LDAP URL Search filter • Ldap://ldap.host.name:port/ou=search,o=base?returnattributelist?searchmethod?searchfilter • Searchmethod : one,base,sub • Searchfilter : prefix expression • Operators : &,|,!,>=,<=,~=,=,*

  24. 검색 예제 • 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*)))

  25. References • RFC-2251 LDAP v3를 필두로 RFC 줄줄이… • http://www.openldap.org • http://www.opendirectory.com • http://developer.netscape.com • IETF LDAP working group

More Related