Django アプリケーションでの IIS および SQL Server Windows 認証

Django アプリケーションでの IIS および SQL Server Windows 認証

Windows 認証を使用した IIS を使用して、SQL Server に接続する Django Web サイトを実行しようとしています。

IISサーバーとSQLサーバーは同じドメイン内の異なるマシン上にあります。iis_machine.example.comそしてsql_machine.example.com

私が達成しようとしていること:

  1. IIS でホストされている django Web サイトにアクセスするリモート ユーザーになりすまし、そのユーザーの Windows 資格情報が認証のために SQL Server に渡されるようにします。

これまで試したこと:

  1. 偽装のためにこれをweb.configファイルに追加しました

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

  2. Windows認証を有効にし、アプリケーションプールを設定しました(ジャンゴウェブ)は、以下に示すように、DjangoのWebサイト用です。

    これは、IIS での Django Web サイトの認証の外観です。

    これは、IIS での Django Web サイトのアプリケーション プールの外観です。

  3. 追加したIIS アプリケーションプール\django_webSQL Serverへセキュリティ\ログイン

結果:

  1. Djangoのウェブサイトにアクセスすると、IISはユーザーにWindowsの資格情報の入力を要求し、正常にログインできます。
  2. ユーザーがログイン後にSQL Serverにアクセスしようとした場合

    ケースAIIS、SQL Serverは異なるマシン上にあります:SQL Server認証は「ユーザー 'domain\MACHINENAME$' のログインに失敗しました'

    ケースbIIS、SQL Serverが同じマシン上にあり、SQL Serverの認証は成功しますが、使用される認証資格情報はIIS アプリケーションプール\django_webないドメイン\リモートユーザー

この設定には Kerberos のトリックがいくつか含まれていることは承知しています。残念ながら、私は単なるプログラマーであり、Kerberos の仕組みについてはあまり詳しくありません。この分野の経験がある方がいらっしゃれば、この設定がどのように機能するかについて説明していただけると大変助かります。ありがとうございます!

使っています:

  • 10 の
  • SQL Server 2014
  • ジャンゴ 2.0.7
  • Python 3.6.5
  • ウィンドウズ8/10

答え1

django_webSQL サーバーに委任できるようにアカウントを構成する必要があります。これIIS APPPOOL\django_webは、Active Directory のマシン アカウントで実際に構成する必要があるためだと思います。代わりに、カスタム サービス アカウントを作成することもできます。

関連情報