
Windows 인증과 함께 IIS를 사용하여 SQL Server에 연결하는 django 웹 사이트를 실행하려고 합니다.
IIS 서버와 SQL 서버는 동일한 도메인 아래의 다른 시스템에 있습니다.iis_machine.example.com그리고sql_machine.example.com
내가 달성하려는 것:
- IIS에서 호스팅되는 django 웹 사이트에 액세스하는 원격 사용자를 가장하여 해당 사용자의 Windows 자격 증명이 인증을 위해 SQL Server로 전달됩니다.
내가 지금까지 시도한 것:
가장을 위해 이것을 내 web.config 파일에 추가했습니다.
<system.web> <identity impersonate="true" /> </system.web>
Windows 인증을 활성화하고 애플리케이션 풀을 설정했습니다(django_web) 아래와 같이 django 웹사이트에 대해
추가됨IIS APPPOOL\django_webSQL 서버로보안\로그인
결과:
- django 웹 사이트에 액세스하면 IIS에서 사용자에게 Windows 자격 증명을 묻는 메시지를 표시하고 성공적으로 로그인할 수 있습니다.
사용자가 로그인 후 SQL Server에 액세스하려고 하는 경우
사례 a. IIS, SQL Server가 다른 컴퓨터에 있습니다. SQL Server 인증이 실패하고 "사용자 'domain\MACHINENAME$에 대한 로그인에 실패했습니다.'
사례 b. IIS, SQL Server가 동일한 시스템에 있고 SQL Server 인증에 성공했지만 사용된 인증 자격 증명은 다음과 같습니다.IIS APPPOOL\django_web~ 아니다도메인\remote_user
나는 이 설정과 관련된 Kerberos 속임수가 있다는 것을 알고 있습니다. 불행하게도 저는 프로그래머일 뿐이며 Kerberos의 작동 방식을 잘 알지 못합니다. 이 분야에 경험이 있는 사람이 이 설정이 어떻게 작동하는지 알려줄 수 있다면 정말 감사하겠습니다. 감사해요!
나는 다음을 사용하고 있습니다 :
- IIS 10
- SQL 서버 2014
- 장고 2.0.7
- 파이썬 3.6.5
- 윈도우 8/10
답변1
django_web
SQL Server에 위임할 수 있도록 계정을 구성해야 합니다 . 나는 이것이 IIS APPPOOL\django_web
실제로 Active Directory의 컴퓨터 계정에서 구성해야 한다고 생각합니다. 또는 대신 이에 대한 맞춤 서비스 계정을 만들 수 있습니다.