英語で読む

次の方法で共有


ユーザーが corpnet 内から AD FS を使用してログインできない

このドキュメントでは、Corpnet 内の Active Directory フェデレーション サービス (AD FS) に関するサインインの問題を解決します。 シームレスな SSO/予期しないプロンプトの構成や、Web アプリケーション プロキシ (WAP) 経由で発生するサインインのトラブルシューティングについては説明しません。

AD FS サーバーの確認

まず、すべての AD FS サーバーが想定どおりに動作していることを確認します。 AD FS 診断スクリプトを使用して、ファーム内の AD FS サーバーの正常性を自動的に確認します。

  1. オフライン ツール に移動し、[ダウンロード可能なツール] から診断スクリプトをダウンロードします。
  2. ファーム内の各 AD FS サーバーでスクリプトを実行する
  3. 報告されたエラーを修正する

ネットワーク設定の確認

DNS とロード バランサーの設定を確認します。

DNS とネットワークによる外部アクセスのチェック

Web アプリケーション プロキシ (WAP) サーバーがある場合

  • フェデレーション サービス名 (たとえば、fs.contoso.com) に ping を実行し、解決先の IP アドレスが WAP サーバーの前にある WAP サーバーまたはロード バランサーの 1 つであるかどうかを確認します。
  • サービス名を外部でホストしている DNS サーバーで、WAP サーバーまたは WAP サーバーの前のロード バランサーを指すフェデレーション サービス (たとえば、fs.contoso.com) の A レコードがあることを確認します

ロードバランサー

  • ファイアウォールが AD FS とロード バランサー間、WAP とロード バランサーの間のトラフィックをブロックしていないことを確認します
  • プローブが有効になっている場合
  • Windows Server 2012 R2 を実行している場合は、2014 年 8 月の Windows Server 2012 R2 更新プログラムのロールアップ (KB.2975719) がインストールされていることを確認します
  • WAP および AD FS サーバーのファイアウォールでポート 80 が有効になっているかどうかを確認する
  • プローブがポート 80 とエンドポイント /adfs/probe に設定されていることを確認します

ファイアウォール

Web アプリケーション プロキシとフェデレーション サーバー ファームの間にあるファイアウォールと、クライアントと Web アプリケーション プロキシ間のファイアウォールの両方で、TCP ポート 443 が受信可能になっている必要があります。

さらに、クライアント ユーザー証明書認証 (X509 ユーザー証明書を使用した clientTLS 認証) が必要な場合、Windows Server 2012 R2 の AD FS では、クライアントと Web アプリケーション プロキシの間のファイアウォールで TCP ポート 49443 を受信で有効にする必要があります。 これは、Web アプリケーション プロキシとフェデレーション サーバーの間のファイアウォールでは必要ありません。

SSL 証明書でコーネット アクセスを確認する

Azure AD Connect がある場合は、AD FS および WAP ファームで SSL 証明書を管理するために使用する必要があります。 「Active Directory フェデレーション サービス の TLS/SSL 証明書を更新する」を参照してください

信頼された機関からの証明書ですか?

AD FS では、SSL 証明書が信頼されたルート証明機関から発行されている必要があります。 ドメインに参加していないマシンから AD FS にアクセスする場合は、DigiCert、VeriSign などの信頼されたサード パーティのルート証明機関から証明書を取得することをお勧めします。証明書が信頼されたルート証明機関からでない場合、SSL 通信が中断する可能性があります。

証明書のサブジェクト名は有効ですか?

証明書のサブジェクト名は、フェデレーション サービス名と一致する必要があります。 サブジェクト代替名として一覧表示することもできます。 フェデレーション サービス名を取得するには、AD FS プライマリ サーバーで次のコマンドレットを使用します。

Get-AdfsProperties | select hostname 証明書のサブジェクト名は、AD FS サーバー名と同じにすることができます

証明書は失効していますか?

証明書の失効を確認します。 証明書が失効しているか、失効リストに到達できない場合、SSL 接続は信頼できないため、クライアントによってブロックされます。

証明書がすべての AD FS および WAP サーバーの証明書ストアにインストールされていることを確認する

AD FS ファームの SSL 証明書を正しく構成するには、ファーム内の各フェデレーション サーバーのローカル コンピューターの個人用証明書ストアに保存する必要があります。 .PFX ファイルをダブルクリックし、ウィザードを完了することで、各フェデレーション ファームのローカルコンピューターの個人用ストアに証明書をインストールできます。 証明書が各フェデレーション サーバーのローカル コンピューターの個人用証明書ストアにインストールされていることを確認します。

PS:\>dir Cert:\LocalMachine\My 確認するには、Windows PowerShell ウィンドウを開き、次のコマンドを実行してローカル コンピューター ストアの内容を一覧表示します。

SSL 証明書がファーム内のすべての AD FS サーバーにインストールされていることを確認します

現在の AD FS SSL 証明書の拇印を取得するには、PowerShell コマンドレットを使用します: Get-AdfsSslCertificate

既に構成されている SSL 証明書の拇印が予想される証明書の拇印と一致しない場合は、コマンドレット Set-AdfsSslCertificate –Thumbprint <thumbprint>を使用します。

証明書がサービス通信証明書として設定されていることを確認する

SSL 証明書は、AD FS ファーム内のサービス通信証明書である必要もあります。 これは自動的には行われません。 これを行うには、MMC -> 証明書 -> サービス通信証明書の設定を使用します。 サービス通信証明書が正しく設定されていない場合は、MMC を使用して正しい証明書を設定し、次の手順に従って新しい証明書に対する適切なアクセス許可を設定します。

  1. MMC に証明書スナップインを追加し、[コンピューター アカウント] を選択し、[次へ] をクリックし、[ローカル コンピューター] を選択して [完了] をクリックします。
  2. [証明書 (ローカル コンピューター)] を展開し、[個人] を展開して、[証明書] を選択します。
  3. 新しい SSL 証明書とサービス通信証明書を右クリックし、[すべてのタスク] を選択して、[秘密キーの管理] を選択します。
  4. [追加]をクリックします。..
  5. [場所] をクリックします。
  6. (ディレクトリではなく) ローカル ホスト名を選択し、[OK] をクリックします。
  7. [オブジェクト名の入力] フィールドに「nt service\adfssrv」と入力し、[名前の確認] をクリックします。 名前はサービス adfssrv に解決される必要があります
  8. [OK] をクリックします。
  9. DRS で AD FS を使用している場合は、[オブジェクト名の入力] フィールドに「nt service\drs」と入力し、[名前の確認] をクリックします。 名前はサービス DRS に解決される必要があります。 [OK] をクリックします。
  10. サービスを選択し、読み取りアクセスのみが選択されていることを確認します。 もう一度 [OK] をクリックします。

証明書には、サブジェクト代替名 (SAN) として正しい DRS 名がすべて含まれていますか?

DRS で AD FS を構成した場合は、AD FS 用の新しい SSL 証明書も DRS 用に正しく構成されていることを確認する必要があります。 たとえば、2 つの UPN サフィックス (contoso.com と fabrikam.com) がある場合、証明書には SAN として enterpriseregistration.contoso.com と enterpriseregistration.fabrikma.com があります。

Get-AdfsDeviceRegistrationUpnSuffix を使用して、組織内で使用されているすべての UPN サフィックスと、証明書に必要な SAN が構成されているかどうかを確認します。

必要に応じてバインディングと更新を確認する

SNI 以外のケースに対処する場合は、管理者がフォールバック マッピングを指定する可能性があります。 標準の federationservicename:443 バインド以外に、2 つのアプリケーション ID の下でバインディングを探します。

{5d89a20c-beab-4389-9447-324788eb944a} – AD FS アプリ ID

{f955c070-e044-456c-ac00-e9e4275b3f04} – Web アプリケーション プロキシ アプリ ID

たとえば、0.0.0.0:443 のバインドが指定されている場合、これはフォールバックのバインドです。 このようなバインドに SSL 証明書が指定されている場合は、SSL 証明書を更新するときに、そのようなバインディングが処理されていることを確認してください。