2017-03-10 8 views
0

クライアントのNTLM Windows認証をSQL AlchemyのSQL Server接続に渡すWindowsサーバー(IIS 7.5)にフラスコアプリケーションをデプロイしようとしています。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は、SQL ServerにWebサーバープロセスの所有者を渡すのに役立ちます。これは、私のアクセス資格情報が渡されるようにサーバーを呼び出すので、開発サーバーを実行するときに効果的です。 BUT IISがサーバーを実行するとき、サーバーはアプリケーションプールIDを継承し、偽の非ドメインユーザーを認証資格情報として送信します。

私はwebconfigでWindowsAuth設定を使用しようとしましたが、SQLAlchemyはSQL ServerにアプリケーションプールIDを渡し続けます。

答えて

0

SQL DB接続で同様の問題が発生しましたが、Windowsネットワークユーザーを作成し、IISでアプリケーションプールIDではなくそのIDでアプリケーションを実行するようにしました。この「実ユーザ」の識別情報は、任意の下流の呼び出し(SQL)に渡されます。

これはエンタープライズ環境でうまく拡張され、ユーザーが「通常のユーザー」であり、名目上は「サービスアカウント」であるため、ほとんどのセキュリティ変更の問題を防ぎます。