2017-03-10 117 views
0

我想將應用程序部署到windows服務器(IIS 7.5),它將客戶端NTLM Windows身份驗證傳遞給SQL Alchemy中的SQL Server連接。用於Flask/IIS/SqlAlchemy的NTLM

目前的連接字符串如下所示: "DRIVER={SQL Server Native Client 11.0};Server=%s;Database=%s;TDS_Version=8.0;Trusted_Connection=yes;"

而且Trusted_Connection=yes用於通過web服務器進程到SQL Server的所有者。這在運行開發服務器時效果很好,因爲我正在調用服務器,以便我的訪問憑據可以通過。 但是當IIS運行服務器時,它將繼承應用程序池標識併發送一個僞造的非域用戶作爲auth憑證。

我試圖在webconfig中使用WindowsAuth設置,但SQLAlchemy不斷將應用程序池標識傳遞給sql服務器。

回答

0

我遇到過與SQL DB連接類似的問題,並且可行的解決方法是創建Windows網絡用戶並使IIS以該身份而不是應用程序池身份運行應用程序。然後將這個「真實用戶」身份傳遞給任何下游調用(SQL)。

這可以在企業環境中很好地擴展並防止大多數安全更改問題,因爲用戶是「普通用戶」,而且只是名義上的「服務帳戶」。