.netWebアプリケーションをWindowsServer 2003 IISサーバーにインストールし、アプリケーションプールでNETWORK SERVICE
として実行し、統合セキュリティを使用して別のマシンのSQLServerに接続しました。 SQLServerマシンもWindowsServer 2003を実行しています。したがって、WebアプリはIDDOMAIN\COMPUTER$
として接続し、そのアカウントにはSQLのログインとユーザーがありますサーバーなので、すべてがうまく機能します。
また、同じSQLServerマシンに接続する同じIISサーバーに.netWindowsサービスをインストールしました。WindowsサービスはLOCAL SYSTEM
として実行されるため、IDとしても接続する必要がありますDOMAIN\COMPUTER$
。私はこの同じ製品を12以上の異なる会社にインストールしました。通常はすべて期待どおりに機能しますが、最近の1つのケースではWindowsサービスがデータベースに接続できず、次のエラーが発生しました。
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
これがローカルシステムに当てはまり、ネットワークサービスには当てはまらない理由はありますか?短期的にこれを回避するには、SQL Serverログインを使用するように切り替える必要がありましたが、簡単な解決策がある場合は統合セキュリティを使用することをお勧めします。追加のログを有効にするために何もしていませんが、セキュリティまたはシステムのイベントログにエラーメッセージはありませんでした。
通常、これはある種のKerberos/ADタイプの問題であると思いますが、 this や this のような次の記事が役に立ちます。しかし、それがNETWORK SERVICEから機能するという事実は、私がチェックする通常のことはすでに問題がないことを示唆しています(たとえば、SPNが正しく設定され、マシンドメインアカウントが委任に対して有効になっていますか?)。では、どのような設定がうまくいかないのでしょうか。
クライアントのITチームの支援なしにサーバーにアクセスすることはできません。また、サーバーにインストールされている他のアプリケーションが中断しないように注意する必要があるため、トラブルシューティングが少し複雑になります。トラブルシューティングのための提案は大歓迎です!
セキュリティ接続がNTLMまたはKerberosのどちらであるかを確認することをお勧めします。 NTLMに戻る場合、接続は匿名になります。
NTLMを使用する場合にコンピューターIDを使用できるようにするグループポリシーがあります。
ネットワークセキュリティ:ローカルシステムがNTLMのコンピュータIDを使用できるようにします
http://technet.Microsoft.com/en-us/library/jj852275%28v=ws.10%29.aspx
SQLサーバーのKerberos認証を容易にするためにSPNを構成する方法の詳細については、以下を参照してください。
特に、次の点に注意してください。
SQL ServerのSPNは、次の要素で構成されています。
ポート:これは、サービスがリッスンしているポート番号です。
例:MSSQLSvc/myserver.corp.mycomany.com:1433
私はまだSPNの問題を賭けています。彼らがそこにいると思い込まないでください。 SQLServerのSPNが適切に登録されているかどうかを確認します。また、重複がないか確認してください(setspn -x
)。
Network Service
は、SPNが存在しない場合でも、NTLM認証にフォールバックできるため機能します。
Local System
は、Kerberosを使用できる場合にのみDOMAIN\Computer$
としてネットワークリソースにアクセスするため、機能しません。それ以外の場合は、nullセッションにフォールバックします。そのため、Anonymous Logon
が表示されます。