LDAP이 뭔지 이곳 저곳 찾아 다니다가 이곳에서 시원한 답변을 얻어 반갑습니다.
전 인트라넷용 웹을 개발하고 있는데 LDAP, Window 2000, Cold Fusion 5.0을 이용합니다.
여기서, 인증을 위해 LDAP응 사용하고 있는데요 아직 LDAP을 완전히 이해하지 못하고 있습니다.
추천할 만한 웹사이트를 알려 주시면 감사하겠습니다.
-- 김지철 님이 쓰신 글:
>> 손대규님이 맨머저 질문하신 내용 조목 조목은 Netscape Messaging Server에
>> 있는 내용같군요. 그 질문 내용은 사실 메일서버와 LDAP의 관계가 아니고
>> Netscape 제품 자체에 대한 질문으로 보입니다. 실제 메일 라우팅을 위한
>> 정보 자체가 LDAP에 저장되어서 관리되지는 않으니까요.
>>
>> 그리고 저도 LDAP 컨설팅을 해본적이 있습니다. 모 메신저 서비스회사의 사용자
>> 인증용으로 LDAP을 넣은 적이 있었거든요. 그래서, 미천하나마
>> 주절주절 답변을 달아보고자 하니, 참고하시기 바랍니다.
>> (참고로 저도 Oracle DBA입니다)
>>
>> LDAP은 원래 전화번호부를 기본으로 만들어졌습니다. 그래서 그 성격은
>> 자주 업데이트 되지 않으면서, 읽기가 많이 필요한 부분에 적합한 것이었죠.
>> LDAP도 내부적으로는 DB라, 업체마다 구현방법에 따라 사실 그 속도와
>> 성능에 차이가 많이 납니다. 그 이상은 업체 특성이라 보시면 됩니다.
>>
>> 다시 돌아와서 말씀드리면, 실제로 저도 컨설팅하면서
>> DB를 걷어내지는 못했습니다. 결국 DB와 LDAP을 같이 사용하게 된 거죠.
>> 처음의 제 의도와는 약간의 거리가 있었던 부분이죠.
>> 사용자에 대한 자세하고 다양한 쿼리가 발생하기 때문인데요. 그런 부분이 없이
>> 사용자의 Profile 저장만이었다면 단연 LDAP으로만도 가능했습니다.
>> 그럼, 실제 궁금하신 내용이 왜 꼭 LDAP이어야만 하는가? DB면 안되는가?
>> 이겠죠.
>> DB여도 됩니다. 다만 DB의 경우 그런 Profile 내용을 넣을 경우, 구조적으로
>> 사용자의 사용하지 않는 field 부분도 용량을 차지하고, 둘째 한 필드에
>> 복수의 값을 넣을 수 없습니다. 단순하죠? 대답이. DB는 그만큼 무거워집니다.
>> 그래서 단순인증용으로 왜 이렇게 무거운 것을 쓰는가? 그런 의문이
>> 제기된 것이죠. 그래서 별도의 ProC나, API없이 프로토콜레벨에서
>> 값을 읽어와서 처리해줄 수 있을까를 궁금해했던 것이고, 그래서
>> LDAP으로 간편화시킨 억세스 프로토콜을 개발해낸 것이죠.
>> 이것은 필드에 내용이 없으면 용량을 먹지도 않고, 다양한 쿼리에
>> 대응하지 않도록 구성되었기 때문에 그만큼 가볍습니다.
>> 어쩌다 같은 필드에 여러 값을 넣어야 하는 경우도 굉장히 손쉽습니다.
>>
>> 메일처럼 대용량 사용자의 인증을 위해 이것을 도입해 보았던 것이죠.
>> 실제 홈페이지 인증에서도 사용되는데, 홈에 접속해서 인증을 받거나
>> 아니면 쿠키를 이용해서 홈에 접속했을때, 웹서버의 백엔드에
>> LDAP서버가 있고 거기에 그 사용자의 취향, 선택사항들을 읽어서
>> 개인화된 홈페이지를 보여주는 것이죠. DB도 가능할 것 같죠?
>> 그러나 수백만 사용자가 붙어서 0.25초 안에 자기만으 페이지를
>> 보게 구현한다는 것은 메모리 DB가 아니면 불가능합니다.
>>
>> 메일말고 또 대용량 사용자 인증이 필요한 부분은 어디일까요?
>> 바로 ADSL가입자 인증입니다. 빠른 시간안에 수많은 인증요청을
>> 처리해야 하거든요. 이경우 LDAP을 써서 속도를 올렸습니다.
>> 실제, 국내 3사의 경우를 예를 들겠습니다.
>> 한곳은 메모리 DB를 사용해서 속도를 극복했고 - 대신 비용을 감당하기 힘들죠.
>> 한곳은 DB를 사용하는데 서버가 엄청난 서버3대를 클러스터링으로 돌리구요.
>> 한곳은 보통의 썬서버에 LDAP을 올려서 사용중이죠.
>>
>> 이렇습니다.
>>
>> 확장? 확장도 그렇습니다. DB의 경우 계속적인 확장이 부담됩니다.
>> 그러나, LDAP의 경우 확장은 전혀 부담이 되지 않습니다.
>> 확장되어서 한서버에 수용이 힘들다? 그럼 서버 두대에 나누어 두면
>> 됩니다. 이것은 LDAP의 Partition & Replica 기능을 이용하면 됩니다.
>> 물론 이것은 기본기능입니다. OPS처럼 별도로 머리를 쓰지 않아도
>> 됩니다.
>>
>> 궁금하신점 있으시면 언제라도 질문주세요. 그럼, 안녕히 계세요.
>> 조금이라도 도움이 되셨으면 좋겠습니다.
>>
>>
>>
>>
>> >>정재익 님께서 쓰시길<<
>>
>> :: 스토리지 문제 때문만은 아닙니다. 만약 예를 들어서 리눅스에서 대용량 메일서버를 개발한다고 가정
>> :: 했을때 리눅스의 경우 사용자의 uid 를 16 bits 로 제한해 두었으면 65536 명만의 사용자를 등록할수
>> :: 있을 뿐입니다. 이럴 경우 100만 명 이상의 사용자를 겨냥한 대용량 서버를 계획할 경우 당장 user id
>> :: 문제부터 해결해야 하는 상황이 발생하게 되지요.
>> :: 그리고 LDAP 의 본연의 장점인 읽기가 빠르다는 점 때문에 사용자 인증에 관한 자료 저장에 많이 이용
>> :: 합니다.
>> ::
>> :: 최영봉님이 작성한 다음글을 참조하시기 바랍니다.
>> ::
>> :: http://database.sarang.net/index.php3?action=moveto&arg=/database/ldap/ldap-postfix/postfix_imap
>> :: d_ldap-HOWTO.txt
>> ::
>> :: >>손대규 님께서 쓰시길<<
>> ::
>> :: :: 유닉스 시스템의 경우 메일계정은 제한이 있을수밖에 없다라고 하셨는데요, 아마도 스토리지 크기
>> :: 때문
>> :: :: 에 그런것 아닐까요?.. 굳이 LDAP 서버를 갖지 않고, 스토리지 용량을 늘려주는 것만으로 해결할
>> :: 수 있
>> :: :: 지 않을까 생각하는데요..
>> :: ::
>> :: :: 그런데 궁금한거는.. LDAP 에 사용자 인증, 기타 정보들이 저장된다고 하셨는데.. 기존에 유닉스에
>> :: 서
>> :: :: 갖고 있는 디비나 파일시스템이라면 그것만으로도 늘려서 사용할수있을거 같은데요... 저의 무지에
>> :: 서의
>> :: :: 개인적인 생각입니다.
>> :: ::
>> :: :: 전에 다른 응용사례를 보았는데요.. 메일서버에 LDAP 서버와, RDB서버가 연동되어서 참조가 되는
>> :: 걸로
>> :: :: 개략도를 본적이 있거든요..
>> :: ::
>> :: :: 분명히.. LDAP 서버(유저DB)와 RDB서버가 서로 다른 역할을 하는 거 같은데요..
>> :: :: 그러면, LDAP 서버가 하는 역할이 무엇이고, 있으므로써 장점이 무엇입니까?..
>> :: ::
>> :: :: 답변 부탁드릴게요..
|