フェデレーション ユーザーが Microsoft 365、Azure、または Intune へのサインイン中に資格情報の入力を繰り返し要求される
重要
この記事では、セキュリティ設定を下げる方法や、コンピューターのセキュリティ機能をオフにする方法について説明します。 これらの変更を行って、特定の問題を回避できます。 これらの変更を行う前に、特定の環境でのこの回避策の実装に関連するリスクを評価することをお勧めします。 この回避策を実装する場合は、コンピューターの保護に役立つ適切な追加の手順を実行します。
問題
フェデレーション ユーザーは、Microsoft 365、Microsoft Azure、Microsoft Intuneなどの Microsoft クラウド サービスへのサインイン時に、ユーザーがActive Directory フェデレーション サービス (AD FS) (AD FS) サービス エンドポイントに対して認証を試みると、資格情報の入力を繰り返し求められます。 ユーザーが取り消すと、ユーザーは アクセス拒否 エラー メッセージを受け取ります。
原因
この現象は、AD FS での Windows 統合認証に関する問題を示しています。 この問題は、次の条件の 1 つ以上が当てはまる場合に発生する可能性があります。
正しくないユーザー名またはパスワードが使用されました。
インターネット インフォメーション サービス (IIS) 認証設定が AD FS で正しく設定されていません。
AD FS フェデレーション サーバー ファームの実行に使用されるサービス アカウントに関連付けられているサービス プリンシパル名 (SPN) が失われたり、破損したりします。
注:
これは、AD FS がフェデレーション サーバー ファームとして実装され、スタンドアロン構成に実装されていない場合にのみ発生します。
次の 1 つ以上が、中間者攻撃の原因として、認証のための拡張保護によって識別されます。
- 一部のサード パーティのインターネット ブラウザー
- 企業ネットワーク ファイアウォール、ネットワーク ロード バランサー、またはその他のネットワーク デバイスは、IP ペイロード データが書き換えられる可能性がある方法で、AD FS フェデレーション サービスをインターネットに公開しています。 これには、次の種類のデータが含まれる場合があります。
Secure Sockets Layer (SSL) ブリッジング
SSL オフロード
ステートフル パケット フィルタリング
詳細については、次のマイクロソフト サポート技術情報を参照してください。
2510193 AD FS を使用して Microsoft 365、Azure、またはIntuneでシングル サインオンを設定するためのサポートされているシナリオ
- 監視または SSL 暗号化解除アプリケーションがインストールされているか、クライアント コンピューターでアクティブになっている
AD FS サービス エンドポイントのドメイン ネーム システム (DNS) 解決は、A レコード参照ではなく CNAME レコード参照を使用して実行されました。
Windows インターネット エクスプローラーは、Windows 統合認証を AD FS サーバーに渡すために構成されていません。
トラブルシューティングを開始する前に
ユーザー名とパスワードが問題の原因ではないことを確認します。
正しいユーザー名が使用され、ユーザー プリンシパル名 (UPN) 形式であることを確認します。 たとえば、「 johnsmith@contoso.com 」のように入力します。
正しいパスワードが使用されていることを確認します。 正しいパスワードが使用されていることをダブルチェックするには、ユーザー パスワードをリセットする必要があります。 詳細については、次の Microsoft TechNet の記事を参照してください。
指定されたログオン時間外にアカウントがロックアウト、期限切れ、または使用されていないことを確認します。 詳細については、次の Microsoft TechNet の記事「ユーザーの管理」を参照してください。
原因を確認する
Kerberos の問題が原因であることをチェックするには、AD FS フェデレーション サーバー ファームでフォーム ベースの認証を有効にすることで、Kerberos 認証を一時的にバイパスします。 これを行うには、次の手順を実行します。
手順 1: AD FS フェデレーション サーバー ファーム内の各サーバーで web.config ファイルを編集する
Windows エクスプローラーで、C:\inetpub\adfs\ls\ フォルダーを見つけて、web.config ファイルのバックアップ コピーを作成します。
[ スタート] をクリックし、[ すべてのプログラム] をクリックし、[ アクセサリ] をクリックし、[ メモ帳] を右クリックして、[ 管理者として実行] をクリックします。
[ファイル] メニューの [開く] をクリックします。 [ ファイル名 ] ボックスに「C:\inetpub\adfs\ls\web.config」と入力し、[ 開く] をクリックします。
web.config ファイルで、次の手順を実行します。
認証モードを含む行を<見つけて、認証モード>="Forms"/に<変更します>。
localAuthenticationTypes> で<始まるセクションを見つけ、次のようにセクションを変更して、add name="Forms"> エントリが最初に一覧表示されるように<します。
<localAuthenticationTypes> <add name="Forms" page="FormsSignIn.aspx" /> <add name="Integrated" page="auth/integrated/" /> <add name="TlsClient" page="auth/sslclient/" /> <add name="Basic" page="auth/basic/" />
[ファイル] メニューで [保存] をクリックします。
管理者特権のコマンド プロンプトで、iisresetcommand を使用して IIS を再起動します。
手順 2: AD FS 機能をテストする
オンプレミスの AD DS 環境に接続され、認証されているクライアント コンピューターで、クラウド サービス ポータルにサインインします。
シームレスな認証エクスペリエンスではなく、フォーム ベースのサインインを体験する必要があります。 フォーム ベースの認証を使用してサインインに成功した場合、AD FS フェデレーション サービスに Kerberos の問題が存在することを確認します。
「解決策」セクションの手順に従う前に、AD FS フェデレーション サーバー ファーム内の各サーバーの構成を以前の認証設定に戻します。 AD FS フェデレーション サーバー ファーム内の各サーバーの構成を元に戻すには、次の手順に従います。
- Windows エクスプローラーで、C:\inetpub\adfs\ls\ フォルダーを見つけて、web.config ファイルを削除します。
- 「手順 1: AD FS フェデレーション サーバー ファーム内の各サーバーの web.config ファイルを編集する」セクションで作成した web.config ファイルのバックアップを C:\inetpub\adfs\ls\ フォルダーに移動します。
管理者特権のコマンド プロンプトで、iisresetcommand を使用して IIS を再起動します。
AD FS 認証の動作が元の問題に戻っていることを確認します。
ソリューション
AD FS 認証を制限する Kerberos の問題を解決するには、状況に応じて、次の 1 つ以上の方法を使用します。
解決策 1: AD FS 認証設定を既定値にリセットする
AD FS IIS 認証設定が正しくない場合、または AD FS フェデレーション サービスとプロキシ サービスの IIS 認証設定が一致しない場合、1 つの解決策は、すべての IIS 認証設定を既定の AD FS 設定にリセットすることです。
既定の認証設定を次の表に示します。
仮想アプリケーション | 認証レベル |
---|---|
既定の Web サイト/adfs | 匿名認証 |
既定の Web サイト/adfs/ls | 匿名認証、Windows 認証 |
各 AD FS フェデレーション サーバーと各 AD FS フェデレーション サーバー プロキシで、次の Microsoft TechNet 記事の情報を使用して、AD FS IIS 仮想アプリケーションを既定の認証設定にリセットします。
解決策 2: AD FS フェデレーション サーバー ファーム SPN を修正する
注:
AD FS がフェデレーション サーバー ファームとして実装されている場合にのみ、この解決を試してください。 AD FS のスタンドアロン構成では、この解決を試さないでください。
AD FS サービス アカウントで AD FS サービスの SPN が失われたり破損したりした場合の問題を解決するには、AD FS フェデレーション サーバー ファーム内の 1 つのサーバーで次の手順を実行します。
[サービス管理] スナップインを開きます。 これを行うには、[ スタート] をクリックし、[ すべてのプログラム] をクリックし、[ 管理ツール] をクリックして、[ サービス] をクリックします。
[AD FS (2.0) Windows サービス] をダブルクリックします。
[ログオン] タブ で 、[このアカウント] に表示されているサービス アカウントをメモ します。
[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ] の順にクリックし、[コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。
次のコマンドを入力し、Enter キーを押します。
SetSPN –f –q host/<AD FS service name>
注:
このコマンドでは、AD FS サービス名>は、<AD FS サービス エンドポイントの完全修飾ドメイン名 (FQDN) サービス名を表します。 AD FS サーバーの Windows ホスト名は表しません。
コマンドに対して複数のエントリが返され、その結果が手順 3 で説明した以外のユーザー アカウントに関連付けられている場合は、その関連付けを削除します。 このためには、次のコマンドを実行します。
SetSPN –d host/<AD FS service name><bad_username>
コマンドに対して複数のエントリが返され、SPN が Windows の AD FS サーバーのコンピューター名と同じ名前を使用する場合、AD FS のフェデレーション エンドポイント名が正しくありません。 AD FS を再度実装する必要があります。 AD FS フェデレーション サーバー ファームの FQDN は、既存のサーバーの Windows ホスト名と同一にすることはできません。
SPN がまだ存在しない場合は、次のコマンドを実行します。
SetSPN –a host/<AD FS service name><username of service account>
注:
このコマンドでは、 <サービス アカウント> のユーザー名は、手順 3 で説明したユーザー名を表します。
AD FS フェデレーション サーバー ファーム内のすべてのサーバーでこれらの手順を実行した後、サービス管理スナップインで [AD FS (2.0) Windows サービス ] を右クリックし、[ 再起動] をクリックします。
解決策 3: 認証に関する拡張保護の問題を解決する
認証の拡張保護によって認証の成功が妨げる場合の問題を解決するには、次のいずれかの推奨方法を使用します。
- 方法 1: Windows インターネット エクスプローラー 8 (またはそれ以降のバージョンのプログラム) を使用してサインインします。
- 方法 2: SSL ブリッジング、SSL オフロード、ステートフル パケット フィルタリングが IP ペイロード データを書き換えないように、AD FS サービスをインターネットに発行します。 この目的のベスト プラクティスは、AD FS プロキシ サーバーを使用することです。
- 方法 3: 監視または SSL 暗号化解除アプリケーションを閉じるか無効にします。
これらの方法を使用できない場合は、この問題を回避するために、パッシブクライアントとアクティブクライアントに対して認証の拡張保護を無効にすることができます。
回避策: 認証の拡張保護を無効にする
警告
この手順を長期的なソリューションとして使用することはお勧めしません。 認証の拡張保護を無効にすると、統合 Windows 認証エンドポイントに対する特定の中間者攻撃を検出しないことで、AD FS サービスのセキュリティ プロファイルが弱くなります。
注:
この回避策がサード パーティのアプリケーション機能に適用される場合は、クライアント オペレーティング システムの修正プログラムをアンインストールして、認証用の拡張保護も行う必要があります。
パッシブ クライアントの場合
パッシブ クライアントの認証の拡張保護を無効にするには、AD FS フェデレーション サーバー ファーム内のすべてのサーバーで次の IIS 仮想アプリケーションに対して次の手順を実行します。
- 既定の Web サイト/adfs
- 既定の Web サイト/adfs/ls
これを行うには、次の手順を実行します。
- IIS マネージャーを開き、管理するレベルに移動します。 IIS マネージャーを開く方法については、「 OPEN IIS Manager (IIS 7)」を参照してください。
- [機能ビュー] で、[ 認証] をダブルクリックします。
- [認証] ページで、[ Windows 認証] を選択します。
- [ 操作 ] ウィンドウで、[ 詳細設定] をクリックします。
- [詳細設定] ダイアログ ボックスが表示されたら、[拡張保護] ドロップダウン メニューから [オフ] を選択します。
アクティブなクライアントの場合
アクティブなクライアントの認証の拡張保護を無効にするには、プライマリ AD FS サーバーで次の手順を実行します。
Windows PowerShell を開きます。
次のコマンドを実行して、AD FS スナップインのWindows PowerShellを読み込みます。
Add-PsSnapIn Microsoft.Adfs.Powershell
次のコマンドを実行して、認証の拡張保護を無効にします。
Set-ADFSProperties –ExtendedProtectionTokenCheck "None"
認証の拡張保護を再度有効にする
パッシブ クライアントの場合
パッシブ クライアントの認証の拡張保護を再度有効にするには、AD FS フェデレーション サーバー ファーム内のすべてのサーバーで次の IIS 仮想アプリケーションに対して次の手順を実行します。
- 既定の Web サイト/adfs
- 既定の Web サイト/adfs/ls
これを行うには、次の手順を実行します。
- IIS マネージャーを開き、管理するレベルに移動します。 IIS マネージャーを開く方法については、「 OPEN IIS Manager (IIS 7)」を参照してください。
- [機能ビュー] で、[ 認証] をダブルクリックします。
- [認証] ページで、[ Windows 認証] を選択します。
- [ 操作 ] ウィンドウで、[ 詳細設定] をクリックします。
- [詳細設定] ダイアログ ボックスが表示されたら、[拡張保護] ドロップダウン メニューから [同意する] を選択します。
アクティブなクライアントの場合
アクティブなクライアントに対して認証の拡張保護を再度有効にするには、プライマリ AD FS サーバーで次の手順を実行します。
Windows PowerShell を開きます。
次のコマンドを実行して、AD FS スナップインのWindows PowerShellを読み込みます。
Add-PsSnapIn Microsoft.Adfs.Powershell
次のコマンドを実行して、認証の拡張保護を有効にします。
Set-ADFSProperties –ExtendedProtectionTokenCheck "Allow"
解決策 4: CNAME レコードを AD FS の A レコードに置き換える
DNS 管理ツールを使用して、フェデレーション サービスに使用される各 DNS エイリアス (CNAME) レコードを DNS アドレス (A) レコードに置き換えます。 また、スプリットブレイン DNS 構成が実装されている場合は、企業の DNS 設定をチェックまたは検討します。 DNS レコードを管理する方法の詳細については、「DNS レコード の管理」を参照してください。
解決策 5: シングル サインオン (SSO) 用の AD FS クライアントとしてインターネット エクスプローラーを設定する
AD FS アクセス用にインターネット エクスプローラーを設定する方法の詳細については、「フェデレーション ユーザーが予期せず職場または学校アカウントの資格情報を入力するように求められる」を参照してください。
詳細
ネットワークを保護するために、AD FS は認証に拡張保護を使用します。 認証のための拡張保護は、攻撃者がクライアントの資格情報を傍受してサーバーに転送する中間者攻撃を防ぐのに役立ちます。 このような攻撃に対する保護は、チャネル バインディング ワークス (CBT) を使用して可能になります。 CBT は、クライアントとの通信が確立されるときに、サーバーで必須、許可、または不要になる場合があります。
ExtendedProtectionTokenCheck AD FS 設定は、フェデレーション サーバーでサポートされている認証の拡張保護のレベルを指定します。 この設定で使用できる値は次のとおりです。
- 必須: サーバーは完全に強化されています。 拡張保護が適用されます。
- 許可: これは既定の設定です。 サーバーは部分的に強化されています。 拡張保護は、この機能をサポートするように変更された関連システムに対して適用されます。
- なし: サーバーは脆弱です。 拡張保護は適用されません。
次の表では、IIS で AD FS で使用できるさまざまな拡張保護オプションに応じて、3 つのオペレーティング システムとブラウザーに対する認証のしくみについて説明します。
注:
Windows クライアント オペレーティング システムには、拡張保護機能を効果的に使用するためにインストールされている特定の更新プログラムが必要です。 既定では、機能は AD FS で有効になっています。
既定では、Windows 7 には、拡張保護を使用するための適切なバイナリが含まれています。
Windows 7 (または Windows Vista または Windows XP の適切に更新されたバージョン)
設定 | 必須 | 許可 (既定値) | なし |
---|---|---|---|
Windows Communication Foundation (WCF) クライアント (すべてのエンドポイント) | 作品 | 作品 | 作品 |
インターネット エクスプローラー 8 以降のバージョン | 作品 | 作品 | 作品 |
Firefox 3.6 | 失敗 | 失敗 | 作品 |
Safari 4.0.4 | 失敗 | 失敗 | 作品 |
適切な更新プログラムがない Windows Vista
設定 | 必須 | 許可 (既定値) | なし |
---|---|---|---|
WCF クライアント (すべてのエンドポイント) | 失敗 | 作品 | 作品 |
インターネット エクスプローラー 8 以降のバージョン | 作品 | 作品 | 作品 |
Firefox 3.6 | 失敗 | 作品 | 作品 |
Safari 4.0.4 | 失敗 | 作品 | 作品 |
適切な更新プログラムのない Windows XP
設定 | 必須 | 許可 (既定値) | なし |
---|---|---|---|
インターネット エクスプローラー 8 以降のバージョン | 作品 | 作品 | 作品 |
Firefox 3.6 | 失敗 | 作品 | 作品 |
Safari 4.0.4 | 失敗 | 作品 | 作品 |
認証の拡張保護の詳細については、次の Microsoft リソースを参照してください。
Set-ADFSProperties コマンドレットの詳細については、次の Microsoft Web サイトを参照してください。
さらにヘルプが必要ですか? Microsoft コミュニティまたはMicrosoft Entra フォーラム Web サイトに移動します。
この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。