ASP를 사용한 ADSI 인증 문제
인트라넷의 구성에 따라 ASP 페이지에서 ADSI 코드를 실행할 때 인증 문제가 발생할 수 있습니다.
위임을 사용하여 도메인 컨트롤러에 액세스하기 위한 인증을 부여할 수 있습니다. 위임은 서비스가 사용자 역할을 할 수 있도록 허용하므로 해당 사용자 자격 증명을 사용하여 네트워크 리소스에 액세스할 수 있습니다. 인트라넷이 이 구성을 따르는 경우 위임을 사용하도록 IIS를 설정해야 합니다. IIS 인증 메커니즘을 익명 또는 NTLM으로 설정합니다. 익명을 선택하면 보안 컨텍스트가 IUSR_MACHINE 계정에 매핑됩니다. NTLM을 선택하면 웹 사이트에 로그온하는 사용자에 따라 보안 컨텍스트가 변경됩니다.
NT 챌린지/응답을 사용하는 IIS 서버 또는 Kerberos를 지원하지 않는 브라우저 클라이언트를 사용하는 경우 이중 홉 인증이 지원되지 않습니다. 이중 홉 인증은 사용자 자격 증명이 브라우저 클라이언트에서 IIS 서버로 전달된 다음 IIS 서버가 자격 증명을 백 엔드 서버에 전달한다는 것을 의미합니다. 이 경우 다음 솔루션 중 하나를 사용하여 ASP 페이지에서 디렉터리에 대한 액세스를 허용할 수 있습니다.
- IADsOpenDSObject::OpenDSObject 또는 ADsOpenObject를 사용하여 Active Directory에 자격 증명을 전달합니다. 웹 페이지는 IIS 서버에 대해 연결된 사용자를 인증합니다. 사용자가 인증되면 웹 페이지에서 OpenDSObject 또는 ADsOpenObject를 사용하여 사용자 이름과 암호를 디렉터리 서비스에 전달하여 백 엔드 서버에 대한 인증을 가져올 수 있습니다. 그러면 웹 페이지에서 디렉터리의 데이터에 액세스할 수 있습니다.
- COM 개체에 코드를 추가하고 이 개체를 COM+ 애플리케이션 (이전에는 MTS 패키지라고 함)에 넣습니다. 그런 다음 COM+ 애플리케이션을 도메인 사용자 계정으로 실행할 수 있습니다.
- 여러 ASP 페이지를 사용합니다. 여기서 한 페이지는 클라이언트를 인증하고 다른 페이지는 도메인 사용자 계정에서 익명 인증을 사용하여 디렉터리에 자격 증명을 전달합니다.
이러한 방법에는 웹 클라이언트를 인증한 다음 디렉터리에 연결할 때 자격 증명을 변경하는 작업이 포함됩니다. 동일한 자격 증명을 사용하는 이중 홉 인증은 불가능하기 때문입니다.