ADFSイベントログで「チェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンが存在します」と表示される

クライアント証明書認証が失敗し、ADFSで上記イベントログが確認できた場合の、確認ポイントについてまとめておきます。
筆者はこの問題を何日間も解決できなかった為、振り返りの為にも記載しています。

 

 

事の経緯ですが、クライアント証明書認証での認証を実施しているWEBアクセス構成で、認証時に以下エラーが発生しました。クライアント証明書を選択した後、ブラウザ上に表示されたエラーです。

 

不明なエラーが発生しました 認証の試行に失敗しました。
別のサインイン オプションを選択するか、Web ブラウザーを終了してサインインし直してください。詳細については、管理者にお問い合わせください。

 

 

そして、ADFSのTraceログには以下のようなログが記録されていました。

ソース:AD FS Tracing
Sceurity token not valid.
Exception details:
ID4070: X.509 証明書 ‘CN=user001, OU=SALES, DC=jp, DC=co, DC=pxtworld’ チェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンが存在します。証明書を交換するか、certificateValidationMode を変更してください。’証明チェーンは正しく処理されましたが、証明機関の証明書の 1 つがポリシー プロバイダーによって信頼されていません。

※ADFSのDebugログについては ADFSサーバでのTracingログ設定 を参照してください。


ADFS上で上記ログが表示された場合、考えられる原因としては大きく、以下3点です。

 

1.証明書の信頼チェーンが不完全

  • 証明書の発行元 (CA) が AD FS サーバーに信頼されていない。
  • 中間証明書が適切にインストールされていない。

2.証明書の有効期限切れまたは失効

  • 証明書が期限切れになっている。
  • 証明書失効リスト (CRL) にアクセスできないため、証明書の状態を確認できない。

3.certificateValidationMode の設定

  • AD FS の certificateValidationMode 設定が厳格すぎるため、証明書の検証に失敗している。

上記3点を丁寧に確認していくことが非常に重要です。特に、クライアント証明書を発行した証明機関のルート証明書が、AD FS サーバーと Web Application Proxy (WAP) サーバーの「信頼されたルート証明機関」ストアにインストールされている必要がある、という部分は基本で、最初に確認する部分です。
例えば、自己証明書で検証環境を作成するような場合、自己証明書を発行したサーバ(CAサーバなど)を「信頼されたルート証明機関」として登録しておく必要があります。

しかし、筆者は、上記3点以外の部分で躓いていました。

スタンドアロンCA(Windows ADCS)を構築し、そこでクライアント証明書を発行していましたが、そのCAサーバ上で、以下コマンド発行が必要でした。(※Active Directory の NTAuth 証明書ストアへの登録である為、ドメイン差参加済みサーバで実行すれば共有されるようですが、CAサーバ上で実行するのが良いと思います)

参照先:NTAuth ストアの証明書の登録方法について

certutil -enterprise -addstore NTAuth [クライアント証明書を発行した CA の証明書 (xxxx.cer) のフルパス]


NTAuth 証明書ストア とは、
Active Directory ドメイン全体で利用される NTAuthCertificates オブジェクト に格納される証明書の一覧です。
このストアに登録された CA のみが、クライアント証明書認証で信頼されることになります。

ADFS でクライアント証明書認証を行う場合、AD はその証明書の発行元 CA を NTAuth ストアで検証します。そのため、AD CS で発行されたクライアント証明書を正しく認証に使うには、発行元 CA の証明書を NTAuth ストアに登録する必要があります。

エンタープライズCA であれば、CA の証明書は通常、NTAuth 証明書ストアに自動で登録されるようです。しかし、スタンドアロンCAの場合、手動登録が必須となるようです。

 

また、筆者が、更に、躓いたポイントとしては、

certutil -enterprise -addstore NTAuth XXXX.cer

で設定した証明書情報は、AD同期のタイミングで消失することがある、、ということです。

参照先:NTAuth ストアの証明書の登録方法について:注意点

参照先URLに記載されている 方法B の方が、消失する懸念が無い為に良いのかもしれません。(試せていないです)方法Aが手軽である為、この方法を利用する場合、消失にご注意ください。

以上、タイトルのADFSログが出力された場合に確認するべきポイントでした。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください