django 애플리케이션의 IIS 및 SQL Server Windows 인증

django 애플리케이션의 IIS 및 SQL Server Windows 인증

Windows 인증과 함께 IIS를 사용하여 SQL Server에 연결하는 django 웹 사이트를 실행하려고 합니다.

IIS 서버와 SQL 서버는 동일한 도메인 아래의 다른 시스템에 있습니다.iis_machine.example.com그리고sql_machine.example.com

내가 달성하려는 것:

  1. IIS에서 호스팅되는 django 웹 사이트에 액세스하는 원격 사용자를 가장하여 해당 사용자의 Windows 자격 증명이 인증을 위해 SQL Server로 전달됩니다.

내가 지금까지 시도한 것:

  1. 가장을 위해 이것을 내 web.config 파일에 추가했습니다.

    <system.web> <identity impersonate="true" /> </system.web>

  2. Windows 인증을 활성화하고 애플리케이션 풀을 설정했습니다(django_web) 아래와 같이 django 웹사이트에 대해

    이것은 IIS에서 django 웹사이트에 대한 인증이 어떻게 보이는지입니다.

    이것은 IIS에서 django 웹 사이트의 응용 프로그램 풀이 보이는 모습입니다.

  3. 추가됨IIS APPPOOL\django_webSQL 서버로보안\로그인

결과:

  1. django 웹 사이트에 액세스하면 IIS에서 사용자에게 Windows 자격 증명을 묻는 메시지를 표시하고 성공적으로 로그인할 수 있습니다.
  2. 사용자가 로그인 후 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_webSQL Server에 위임할 수 있도록 계정을 구성해야 합니다 . 나는 이것이 IIS APPPOOL\django_web실제로 Active Directory의 컴퓨터 계정에서 구성해야 한다고 생각합니다. 또는 대신 이에 대한 맞춤 서비스 계정을 만들 수 있습니다.

관련 정보