게시판 본문 Active Directory Service Interface - Read Only

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다.
작성자: 송원석
작성일시: 2005-02-07 19:39,  조회수: 3,079
안녕하세요? 송원석입니다. ^_^

개인적인 사정으로 답변이 매우 늦어지게 되어 죄송합니다. 결론부터 말씀을 드리자면 가능합니다. 다만 한 가지 주의하셔야만 할 점이 있습니다. 윈도우즈 사용자 계정을 웹에서도 사용하신다는 말씀의 의미는 그만큼의 사용자 라이센스를 보유하셔야만 한다는 의미가 됩니다. 즉 웹을 통해서 접근하는 사용자가 200 명이라면 그 200 명 분의 라이센스를 보유하고 계셔야만 합니다. 그렇지 않다면 불법적인 사용이 되는 것이라는 점을 염두에 두셔야만 합니다.

기술적인 부분을 말씀을 드려보겠습니다. ADSI 를 사용하여 윈도우즈 사용자 계정의 정보를 얻어오거나 설정하는 것은 가능합니다. 다만 한 가지 제약조건을 가지고 있습니다. 뭐냐하면 사용자의 암호를 문자열 형태로 얻어오는 것은 어떠한 형태로든 불가능하다는 것입니다. 즉 특정 사용자의 암호를 재설정하거나 하는 작업은 가능하지만 'AAA 라는 사용자의 암호는 BBB 다.' 라는 식의 작업은 불가능하다는 것이죠. 그 부분만 제외한다면 거의 원하시는 모든 작업을 ADSI 를 사용하여 처리하실 수 있습니다. ^_^

그리고 ADSI 를 사용하지 않으시더라도 원하시는 결과를 얻으실 수 있는 방법도 있습니다. 인터넷 서비스 관리자에서 해당 가상 웹 서버나 가상 디렉터리의 등록 정보를 수정해셔서 익명 엑세스를 허용하지 않고 윈도우즈 통합 인증만 허용하도록 하시면 됩니다. 그리고 실제 ASP 프로그램 파일의 NTFS 권한을 적절히 설정해주시면 인터넷 익스플로러를 사용하여 해당 페이지에 접근할 때 윈도우즈에 로그인할 때 나타나는 로그인창과 비슷한 인증창이 나타나게 됩니다. 이 인증창에 올바른 윈도우즈 계정 정보를 입력하면 정상적으로 페이지를 사용할 수 있으며 암호가 틀리다든지 한 경우에는 오류가 발생하게 됩니다. 그리고 로그인한 사용자의 아이디를 Request 개체를 통하여 얻어낼 수가 있으므로 원하시는 작업을 대부분 구현하실 수가 있죠. 다만 이 방법의 문제점은 웹 브라우저가 인터넷 익스플로러이어야만 한다는 점과 로그인 방법을 개발자의 의도대로 제어할 수가 없다는 점입니다. 즉 디자인을 입힌 로그인 폼등을 사용할 수가 없고 항상 윈도우즈에서 제공하는 인증창을 사용할 수 밖에 없어서 디자인 측면에서 이질감이 발생한다는 것이죠.

두 번째 방법이 아마도 원하시는 방법과 일치하는 것이 아닐까 합니다. 다만 이 경우에는 약간의 추가 지식이 요구된다는 점을 기억해두십시요. 그리고 약간의 컴포넌트를 개발하셔야만 합니다. 먼저 사용자가 아이디와 암호를 입력했다고 가정을 한다면 이 정보를 사용하여 로그인을 할 수 있는 사용자인지 파악해야만 하겠죠. 이 부분은 몇 가지 방법을 사용하여 구현할 수가 있겠습니다만, 제가 지금까지 본 방법들 중에서 가장 깔끔한 것이 Win32 API 의 LogonUser() 함수를 이용하는 방법입니다. MSDN 을 찾아보시면 알 수 있으시겠지만 이 함수를 사용하면 특정 사용자 계정으로 로그인을 할 수가 있는지 점검이 가능합니다. 아니 사실 이 함수 자체가 로그인을 하는 함수죠. 그러나 ASP 상에서는 이 함수를 직접 호출하는 것이 불가능하므로 COM 컴포넌트를 하나 만들어서 사용하셔야 할 것입니다. 그리고 이 함수로 로그인에 성공했다면 사용자 계정의 아이디를 가지고 ADSI 를 사용하여 사용자의 이름이나 그룹, 권한 정보등들 가져오시면 됩니다. 역시 이 경우에도 권한 문제로 인해서 COM 컴포넌트가 필요합니다. 이 부분에 대한 언급은 제 사이트의 강좌에서 여러번 다룬 부분이라서 이 자리에서는 생략하도록 하겠습니다.

이 두 가지 방법 모두, 제가 직접 작업을 하는 것이라고 생각하면 그다지 어렵지 않은데 설명을 드리려고 하니 어디에서부터 말씀을 드려야 할지 무척 혼란스럽군요. 저는 개인적으로 두 번째 방법을 추천드리고 싶고, 그러자면 먼저 COM 컴포넌트부터 작성하셔야만 할 것 같습니다. ^_^

감사합니다.

IP 주소: 211.216.132.91
전체 2 건의 댓글이 존재합니다.

부푸러

감사합니다. ^^ 이런게 길고 깊게 설명해주시다니.. 정말 감사합니다. ^^ 좋은 하루되세요 ^^
2005-02-09 07:35

부푸러

저희 학교 학생 주말 스캐줄표를 만들어서 학생들에게 참여할수있게 할려고 할 의도였습니다. (참고로 저도 학생입니다. ^^ 선생님이 저한테 부탁하시드라구요.. 저도 모 프로그래밍에 입문한지 얼마 않됬지만.. 이프로젝트를 하면서 ASP에 많은 관심을 갖게 되었습니다.)
2005-02-09 07:38
전체 421 건의 게시물, 17 페이지로 구성된 Active Directory Service Interface 게시판의 11 페이지입니다.
게시물
174

re: [질문] Active Directory 의 사용자 계정 가져오기 [2]

송원석

2005-07-08 5,691
173

EgoCube error '80070003'

이영상

2005-06-29 3,012
172

re: EgoCube error '80070003'

송원석

2005-06-30 2,827
171

re: EgoCube error '80070003' [2]

이영상

2005-06-30 2,757
170

안녕하세요 원석님 ~~

김대현

2005-06-28 2,686
169

re: 안녕하세요 원석님 ~~

송원석

2005-06-28 2,807
168

안녕 하십니까~~~초보asp유저 입니다

김대현

2005-05-07 2,897
167

re: 안녕 하십니까~~~초보asp유저 입니다

송원석

2005-05-07 2,866
166

감사합니다. [1]

박정민

2005-04-14 2,721
165

아래 질문에 대한 추가 문의 입니다.

박정민

2005-04-13 2,861
164

re: 아래 질문에 대한 추가 문의 입니다. [2]

송원석

2005-04-13 3,375
163

LDAP or ADSI에서 이러한 기느이 가능한지 궁금 합니다. [1]

박정민

2005-04-13 2,942
162

user password변경

User

2005-04-12 801
161

re: user password변경

송원석

2005-04-13 2,887
160

re: user password변경

User

2005-04-14 777
159

re: user password변경

송원석

2005-04-15 2,828
158

IISWebAdmin으로 기존 사이트에 호스트헤더 추가 가능한가요? [3]

happy205

2005-04-11 2,840
157

윈도우즈 사용자 계정을 사용한 IIS 웹 서버 인증에 관해서...

송원석

2005-03-18 2,895
156

웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다.

부푸러

2005-02-06 1,095

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다. [2]

송원석

2005-02-07 3,079
154

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다. [1]

부푸러

2005-03-07 947
153

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다. [3]

송원석

2005-03-07 3,416
152

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다.

부푸러

2005-03-07 776
151

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다. [1]

송원석

2005-03-08 2,870
150

re: 웹게시판을 만드는데, 로그인정보를 서버로 계정으로 부터 얻어올려고합니다.

부푸러

2005-03-11 781