IIS에서 SQL 서버로 Kerberos 이중 홉 위임(django 사용)

IIS에서 SQL 서버로 Kerberos 이중 홉 위임(django 사용)

적절한 사용자 컨텍스트에서 실행되도록 IIS의 django 웹 사이트에서 백엔드 SQL 서버로 자격 증명(Windows 통합 인증)을 전달해야 합니다.

이것이 내 설정이 지금까지 보이는 방식입니다.:

  1. sql_sever.domain.com서비스 계정으로 SQL Server 실행domain\svc_sqlserver
  2. Windows 인증 및 ASP.Net 가장(공급자가 로 설정됨 ) 이 포함된 app_server.domain.com서비스 계정에서 IIS를 사용하여 Django 웹 사이트를 실행합니다.domain\svc_appserverNegotiate:Kerberos -> Negotiate -> NTLMuseAppPoolCredentials=True
  3. Trusted_Connection=yes연결 설정을 통해 Windows 인증을 사용하여 django에서 SQL 서버에 연결
  4. domain\svc_sqlserver다음 과 같이 Kerberos 인증을 위해 구성된 SPN domain\svc_appserver:

    setspn -a HTTP/app_server                          domain\svc_appserver
    setspn -a HTTP/app_server.domain.com               domain\svc_appserver
    setspn -a MSSQLSvc/sql_server.domain.com:PORT      domain\svc_sqlserver
    setspn -a MSSQLSvc/sql_server.domain.com:INSTANCE  domain\svc_sqlserver
    setspn -a MSSQLSvc/sql_server.domain.com           domain\svc_sqlserver
    
  5. 서비스 위임 svc_sqlserver및 추가로 서비스를 추가한 경우 모두 신뢰할 수 있습니다 (위 목록에서).svc_appserverMSSQLSvcdomain\svc_appserverHTTP

결과:

  1. Kerberos 인증은 SQL Server에서 작동합니다. 를 보면 확인됨연결된 사용자의 인증 체계
  2. Kerberos 인증은 Django 웹사이트에서 작동합니다. WWW-Authenticate응답헤더와 Authorization요청헤더를 검사하여 확인함 ( Negotiate올바르게 사용되고 있음)
  3. domain\svc_appserverSQL 서버는 실행되어야 하는 컨텍스트에서만 실행됩니다.domain\remote_user

나는 일주일 넘게 이 작업을 해왔지만 평생 동안 인증된 사용자의 컨텍스트를 IIS에서 SQL Server로 전달하는 방법을 알 수 없습니다. 온라인에서 찾은 수백 개의 링크를 살펴보았는데 이 시점에서 무엇을 해야 할지 모르겠습니다.

내가 놓친 다른 것이 있습니까? 데이터베이스에 연결하기 전에 Django에서 사용자 컨텍스트를 설정하는 방법이 있나요? 누구든지 도움을 주시면 정말 감사하겠습니다. 감사해요!

나는 사용하고있다:

관련 정보