次の方法で共有


ADFS 2.0 エラー: 401 要求されたリソースにはユーザー認証が必要です

この記事では、Active Directory フェデレーション サービス (AD FS) (AD FS) 2.0 でアカウントを認証するときに資格情報とイベント 111 がログに記録される問題について説明します。

元の KB 番号: 3044976

まとめ

ほとんどの Active Directory フェデレーション サービス (AD FS) 2.0 の問題は、次の主要なカテゴリのいずれかに属しています。 この記事には、認証の問題をトラブルシューティングするための手順が含まれています。

現象

Active Directory フェデレーション サービス (AD FS) (AD FS) 2.0 でアカウントを認証しようとすると、次のエラーが発生します。

  • AD FS サーバーは、次のエラー メッセージを返します。

    Not Authorized-HTTP エラー 401。 要求されたリソースには、ユーザー認証が必要です。

  • フォーム ベースのログイン画面で、サーバーは次のエラー メッセージを返します。

    ユーザー名またはパスワードが間違っている。

  • 資格情報の入力を求めるメッセージが継続的に表示されます。

  • イベント 111 は、次のように AD FS 管理者ログに記録されます。

    ログ名: AD FS 2.0/Admin
    イベント ID: 111
    レベル: エラー
    キーワード: AD FS
    説明:
    WS-Trust 要求の処理中に、フェデレーション サービスでエラーが発生しました。
    要求の種類: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
    例外の詳細:
    Microsoft.IdentityModel.SecurityTokenService.FailedAuthenticationException: MSIS3019: 認証に失敗しました。 ---> System.IdentityModel.Tokens.SecurityTokenValidationException: ID4063: LogonUser failed for the 'user1' user. このユーザーが有効な Windows アカウントを持っていることを確認してください。 ---> System.ComponentModel.Win32Exception: ログオンエラー: 不明なユーザー名または無効なパスワード

解決方法

この問題を解決するには、指定された順序で次の手順に従います。 これらの手順は、問題の原因を特定するのに役立ちます。

手順 1: 正しい AD FS フェデレーション サービス名レコードを割り当てる

DNS に AD FS フェデレーション サービス名の HOST (A) レコードがあることを確認し、CNAME レコードを使用しないようにします。 詳細については、「 Kerberos 認証を使用したInternet Explorer の動作」を参照してください。

手順 2: フェデレーション サービス名の登録を確認する

フェデレーション サービス名を見つけて、AD FS サービス アカウントに名前が登録されているかどうかを確認します。 これを行うには、次の手順を実行します。

  1. HOST/<Federation サービス名> 名前を見つけます。

    1. AD FS 2.0 Manager を開きます。

    2. ADFS 2.0 を右クリックし、[フェデレーション サービスのプロパティの編集選択

    3. General タブで、フェデレーション サービス名フィールドを見つけて名前を確認します。

      フェデレーション サービス名を確認できるフェデレーション サービス プロパティ ウィンドウのスクリーンショット。

  2. HOST/<Federation サービス名> 名が AD FS サービス アカウントに登録されているかどうかを確認します。

    1. 管理スナップインを開きます。 これを行うには、[スタート] をクリックし、[すべてのプログラム] をクリックし[Administrative Tools] をクリックし、[Services] をクリックします。

    2. AD FS (2.0) Windows サービスをダブルクリックします。

    3. [ Log On タブで、 [このアカウント ] フィールドに表示されるサービス アカウントをメモします。

      [このアカウント] フィールドにサービス アカウントが表示されている [AD FS 2.0 Windows サービスのプロパティ (ローカル コンピューター)] ウィンドウのスクリーンショット。

    4. [スタート] をクリック、[すべてのプログラム] をクリックし[アクセス権] をクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行] をクリック

    5. 次のコマンドを実行します。

      SETSPN -L domain\<ADFS Service Account>
      

      setspn コマンドの結果のスクリーンショット。

フェデレーション サービス名がまだ存在しない場合は、次のコマンドを実行して、AD FS アカウントにサービス プリンシパル名 (SPN) を追加します。

SetSPN -a host/<Federation service name> <username of service account>

サービス プリンシパル名を追加する setspn コマンドの結果のスクリーンショット。

手順 3: 重複する SPN を確認する

AD FS アカウント名に重複する SPN がないことを確認します。 これを行うには、次の手順を実行します。

  1. [スタート] をクリック、[すべてのプログラム] をクリックし[アクセス権] をクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行] をクリック

  2. 次のコマンドを実行して、AD FS アカウント名に重複する SPN がないことを確認します。

    SETSPN -X -F
    

手順 4: ブラウザーで Windows 統合認証が使用されているかどうかを確認する

使用している Internet Explorer ブラウザーが、Windows 統合認証を使用するように構成されていることを確認します。 これを行うには、Internet Explorer を起動し、 Settings をクリックし、 Internet オプションをクリックし、[ Advanced] をクリックし、[統合 Windows 認証を する] をクリック

手順 5: 認証の種類を確認する

AD FS サーバーの既定の認証の種類が正しく構成されていることを確認します。 これを行うには、次の手順を実行します。

  1. Windows エクスプローラーで、C:\inetpub\adfs\ls に移動します (これは、inetpub がドライブ C にあることを前提としています)。
  2. Web.configを見つけて、メモ帳でファイルを開きます。
  3. ファイルで、 (Ctrl + F) <localAuthenticationTypes>を見つけます。
  4. <localAuthenticationTypes>で、ローカル認証の種類を表す 4 行を見つけます。
  5. 優先するローカル認証の種類 (行全体) を選択して削除します。 次に、リストの一番上に行を貼り付けます ([ <localAuthenticationTypes>)。
  6. Web.config ファイルを保存して閉じます。

ローカル認証の種類の詳細については、次の TechNet トピックを参照してください。

AD FS 2.0: ローカル認証の種類を変更する方法

手順 6: 認証設定を確認する

インターネット インフォメーション サービス (IIS) での認証用に AD FS 仮想ディレクトリが正しく構成されていることを確認します。

  • Default Web サイト/adfs ノードで、Authentication 設定を開き、Anonymous Authentication が有効になっていることを確認します。
  • Default Web サイト/adfs/ls ノードで、Authentication 設定を開き、AnonymousWindows Authentication の両方が有効になっていることを確認します。

手順 7: プロキシの信頼設定を確認する

AD FS プロキシ サーバーが構成されている場合は、AD FS と AD FS プロキシ サーバー間の接続間隔中にプロキシ信頼が更新されるかどうかを確認します。

プロキシ サーバーは、AD FS フェデレーション サービスとの信頼を自動的に更新します。 このプロセスが失敗すると、イベント 394 がイベント ビューアーに記録され、次のエラー メッセージが表示されます。

フェデレーション サーバー プロキシは、フェデレーション サービスとの信頼を更新できませんでした。

この問題を解決するには、AD FS プロキシ構成ウィザードをもう一度実行してみてください。 ウィザードの実行時に、有効なドメイン ユーザー名とパスワードが使用されていることを確認します。 これらの資格情報は、AD FS プロキシ サーバーには格納されません。 プロキシ信頼構成ウィザードの資格情報を入力するときは、2 つの選択肢があります。

  • AD FS サーバーでローカル管理者権限を持つドメイン資格情報を使用します。
  • AD FS サービス アカウントの資格情報を使用する

手順 8: IIS の拡張保護設定を確認する

手順 5 で示すように、拡張保護 (Windows 認証) が IIS で有効になっている場合、特定のブラウザーは認証できません。 Windows 認証を無効にして、これが問題を解決するかどうかを確認してください。

Fiddler や一部のインテリジェント ロード バランサーなどのツールによって SSL プロキシが実行されている場合、Windows 認証を許可しない拡張保護も表示されます。

例: Fiddler Web デバッガーがクライアントで実行されている場合、認証プロンプトが繰り返し表示されることがあります。

認証の拡張保護を無効にするには、クライアントの種類に応じて、適切な方法に従います。

パッシブ クライアントの場合

AD FS フェデレーション サーバー ファーム内のすべてのサーバー上の "既定の Web サイト/adfs/ls" 仮想アプリケーションには、このメソッドを使用します。 これを行うには、次の手順を実行します。

  1. IIS マネージャーを開き、管理するレベルを見つけます。

    IIS マネージャーを開く方法の詳細については、「 IIS マネージャーを開く (IIS 7)」を参照してください。

  2. [機能ビュー] で、[認証] をダブルクリックします。

  3. [ 認証 ] ページで、[Windows 認証 を選択

  4. [操作] ウィンドウの [詳細設定] をクリックします。

  5. [Advanced Settings] ダイアログ ボックスが表示されたら、[Extended Protection] メニューの [Off をクリックします。

アクティブなクライアントの場合

プライマリ AD FS サーバーには、次の方法を使用します。

  1. Windows PowerShell を起動します。

  2. AD FS スナップイン用の Windows PowerShell を読み込むには、次のコマンドを実行します。

    Add-PsSnapIn Microsoft.Adfs.Powershell
    
  3. 認証の拡張保護を無効にするには、次のコマンドを実行します。

    Set-ADFSProperties -ExtendedProtectionTokenCheck "None"
    

手順 9: ADFS サーバーと DC の間のセキュリティで保護されたチャネルの状態を確認する

AD FS と DC 間のセキュリティで保護されたチャネルが適切であることを確認します。 そのためには、次のコマンドを実行します。

Nltest /dsgetdc:domainname

応答が "成功" 以外の場合は、netlogon のセキュリティで保護されたチャネルのトラブルシューティングを行う必要があります。 これを行うには、次の条件が満たされていることを確認します。

  • ドメイン コントローラー (DC) に到達可能
  • DC 名は解決できます
  • コンピューター上のパスワードと Active Directory サイト上のアカウントが同期されています。

手順 10: ボトルネックを確認する

AD FS サーバーまたは DC の MaxconcurrentAPI 設定ごとに認証関連のボトルネックが発生しているかどうかを確認します。 この設定を確認する方法の詳細については、次のサポート技術情報の記事を参照してください。

MaxConcurrentApi 設定を使用して NTLM 認証のパフォーマンス チューニングを行う方法

手順 11: ADFS プロキシ サーバーで輻輳が発生しているかどうかを確認する

AD FS サーバーから多数の要求または遅延応答を受信したために、ADFS プロキシ サーバーが接続を調整しているかどうかを確認します。 詳細については、次の TechNet トピックを参照してください。

AD FS 2.x: プロキシ サーバー イベント ID 230 のトラブルシューティング (輻輳回避アルゴリズム)

このシナリオでは、ADFS での断続的なログイン エラーに注意してください。

手順 12: プロキシの信頼設定を確認する

ADFS プロキシ サーバーが構成されている場合は、AD FS と AD FS プロキシ サーバー間の接続間隔中にプロキシ信頼が更新されるかどうかを確認します。

プロキシ サーバーは、AD FS フェデレーション サービスとの信頼を自動的に更新します。 このプロセスが失敗すると、イベント 394 がイベント ビューアーに記録され、次のエラー メッセージが表示されます。

フェデレーション サーバー プロキシは、フェデレーション サービスとの信頼を更新できませんでした。

この問題を解決するには、AD FS プロキシ構成ウィザードをもう一度実行してみてください。 ウィザードの実行時に、有効なドメイン ユーザー名とパスワードが使用されていることを確認します。 これらの資格情報は、AD FS プロキシ サーバーには格納されません。

手順 13: ADFS 監査と監査ログオン イベント (成功と失敗) を有効にする

詳細については、「 トラブルシューティングのための ADFS サーバーの構成」を参照してください。