はじめに、私はこの問題に約1週間半携わっていますが、理解できません。私は近くにいると思いますが、これまでそれを考えるたびに、私は間違っていました。検索すると思われるすべてのフォーラム投稿を確認しましたが、何も機能しませんでした。
WebアプリケーションとそれぞれのサービスでWindows認証を使用するようにしようとしているだけです。これにより、コードで、現在ログインしているユーザーの資格情報をプロンプトなしで取得し、サービスを介してデータベースのストアドプロシージャに渡すことができます。
簡単そうですね。
違う!
WireSharkを実行していると、KRB_ERROR(30)の応答が返されます。
error_code:KRB5KRB_AP_ERR_MODIFIED(41)
明日試してみます ですが、なぜ私がKRB5KRB_AP_ERR_MODIFIEDエラーを繰り返し発生するのかについて誰かが考えている場合に備えて、今すぐ投稿すると思いました。以下にリストする私の現在の設定。
これが私の現在の設定です:
Windows Server 2008 R2 Standard SP164ビット4.00GB RAM。
この投稿のために、このサーバーをDALDEP01.TEST.LOCALと呼びます。その上に、次のものがあります。
MS SQL Server 2008 R2には、Deployと呼ぶデータベースがあります。
Deploydbにアクセスできるユーザーアカウントは1つだけです。これはTEST\DeploySvcです。
このユーザーアカウントはdatareader/datawriterであり、[〜#〜] exec [〜#〜]。
IIS 7.5これは2つのWebサイトをホストします:
Deploy.Serviceは、Deploydbに対してCRUD操作を行います。
Deploy.WebDeploy.Serviceを呼び出すSilverlight 4アプリケーションをホストします。
両方のサイトは同じように構成されています(他にどのように行うかわからないため):
カスタムユーザーアカウントTEST\DeploySvcで実行されるDeployAppPoolを使用します。
匿名認証は無効です。
Windows認証は有効
拡張保護はAcceptです。
カーネルモード認証を有効にするのはCheckedです。
プロバイダーはNegotiate、Kerberosだけが必要なためNTLMを削除したので。
SPNは次のように構成されます。
C:\> setspn -l deploysvc
CN = DeploySvc、OU = Services Accounts、DC = test、DC = localの登録済みServicePrincipalNames:
HTTP/deploy.test.local
HTTP /デプロイ
SPNが重複していると、この問題が発生する可能性があります...
setspn -X
...ドメインに重複があるかどうかが表示され、問題のあるドメインを削除する必要があります。または、 SPNクエリユーティリティ を使用することもできます。また、ADのサービスアカウントの[委任]タブを既に変更しているので、委任に対して信頼されていると思いますか?
最近同じ問題が発生しました。
SPNに関連していることが判明しました。 SPNは、SQL Serverを実行していたサービスアカウントにマップされるのではなく、SQLServerのマシンアカウントにマップされていました。
SPNを削除して再作成しました-ホスト上でSQLServer 2012R2を実行しているサービスアカウントにマップされ、すべてが肉汁でした。