문제

고객이 통합 Windows 인증을 원하는 시스템이 있습니다. 이것은 SQL Server 2005에 연결되는 ASP.NET 3.5 응용 프로그램입니다. 웹 서버는 서버 2003 R2 SP2입니다. DB 서버는 서버 2003 SP2 (R2가 아님)입니다.

DB 서버에서 다음 스크립트를 실행했습니다.

exec sp_grantlogin 'myDomain\myUserGroup'
USE myDbName
exec sp_grantdbaccess 'myDomain\myUserGroup'

Windows 사용자 그룹 'MyDomain MyuserGroup'에 3 명의 사용자가 있습니다. 세 명의 사용자 계정 모두 대표단을 신뢰할 수있는 것으로 표시됩니다. 광고의 웹 서버 계정은 대표단에 대해 신뢰할 수 있습니다.

웹 응용 프로그램은 Windows 인증을 사용하는 것으로 표시됩니다 (다른 모든 것은 꺼짐). web.config에는 다음 줄이 있습니다.

<authentication mode="Windows" ></authentication>
<identity impersonate="true" />
<authorization>
    <deny users="?"/>
</authorization>

그러나 사용자 그룹에있는 사용자와 웹 응용 프로그램에 연결하려고하면 오류가 발생합니다.

System.Data.SqlClient.SqlException: 
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

내 연결 문자열은 SQL ConnectionstringBuilder에서 구축되었습니다.

ConnectionStringBuilder.DataSource = "MYDBSERVER"
ConnectionStringBuilder.InitialCatalog = "MYDBCATALOG"
ConnectionStringBuilder.IntegratedSecurity = True

하드 코드가 Web.config에서 가장 할 수있는 허용 계정 중 하나 인 경우 <identity /> 라인은 작동합니다. 그러나 하드 코딩 된 계정을 벗고 고객의 컴퓨터에서 신원을 전달하려고합니다. 오류가 발생합니다.

따라서 멀티 홉 통합 로그인 시나리오에 대해 올바르게 구성된 것이없는 것 같습니다. 그러나 무엇을 알 수 없습니다.

미리 감사드립니다!

도움이 되었습니까?

해결책

Windows 인증을 사용하는 경우 가장은 ASP.NET 프로세스 자체를 지나가는 것이 아닙니다. 여기에는 두 가지 옵션이 있습니다 - 신원이 흐르는 기본 인증 또는 Win2003 이상에서 실행중인 경우 Kerberos와 사용할 수 있습니다. 일부 해커 연결할 때 가장합니다

다른 팁

ASP 머신은 NTLM/Kerberos를 통해 IIS에 연결하는 사용자를 인증했습니다. 인증은 원래 사용자 프로세스 (IE)에게 자신의 신원을 보장하는 비밀을 제시하도록 요청한 도메인 컨트롤러에 의해 보장됩니다. 인증은 실제로 관련된 프로세스가 아니라 관련 프로세스에 의해 수행됩니다. ASP 머신의 LSA는 인증이 정상임을 알고 있기 때문에 원격 사용자의 사칭이 해당 LSA의 통제하에 액세스 할 권리가있는 모든 것에 액세스 할 수 있습니다 (즉, 로컬 ASP 시스템의 모든 내용은 ).

사용자를 가장하는 ASP 프로세스가 새 기계에 다른 홉을 만드는 것만 큼 ASP 기계의 LSA에 의해 제어되는 영역을 떠났습니다. SQL 머신의 LSA는 ASP 시스템의 LSA를 신뢰할 이유가 없습니다. 그래서 그것은 그것이 그것이 주장하는 사람 (가장 한 사용자)이라는 증거를 제시하도록 요청합니다. ASP 시스템은 불행히도 사용자 비밀 (암호)이 없기 때문에 그러한 증거를 제시 할 수 없습니다.

주변의 작업은 '제약 대표단'이라는 것입니다. 제한된 대표단을 통해 도메인 컨트롤러는 SQL의 기계 LSA와 ASP 기계 LSA 간의 협상에 개입하고 'ASP 기계는 괜찮습니다. 따라서 SQL의 컴퓨터 LSA는 인증을 신뢰하고 원래의 가장 한 사용자를 인증합니다.

제한된 대표단을 설정하는 방법 기술 세부 사항은 다음과 같습니다. 방법 : ASP.NET 2.0에서 프로토콜 전환 및 제약 대표단 사용

관련된 리소스 유형 (SQL 서버가 될 수 있고 파일 공유가 될 수 있고 새로운 백엔드 ASP 서비스가 될 수 있음)에 관계없이 '더블 홉'과 가장 자료가 관련 될 때마다 사실입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top