
私の環境には ADFS があり、現在 Active Directory 経由で問題なく認証されています。スマート カードで認証できるように証明書認証を有効にしようとしています。現在、スマート カードは AD アカウントにインポートされており、正しい証明書を選択してログインするように求めるプロンプトが正常に表示されます (ADFS からは表示されません)。また、クライアントのルート CA がすべて信頼されたルート証明機関の証明書ストア内にあり、すべて存在していることも確認しました。
ADFS 内では、証明書認証が有効になっており、受信ポートは 49443 (クライアントから ADFS サーバーへの受信) で、証明書ログインの選択が ADFS ログイン ページに表示されます。証明書ログインをクリックすると、次のエラーが表示されます。
「エラーが発生しました。要求内に有効なクライアント証明書が見つかりません。ユーザーの証明書ストア内に有効な証明書が見つかりません。ブラウザを閉じて再度開き、別の認証方法を選択して再試行してください。
アクティビティID: 25ef4526-fcb4-4f64-0c00
エラーの詳細: MSIS7121: 要求には、認証に使用できる有効なクライアント証明書が含まれていませんでした。これは、すべての証明書の有効期限が切れているか取り消されているなど、クライアント コンピューターに有効な証明書がない場合に発生します。エラー コード: 0x490
ノード名: a22ee49a-fa2d
エラー時間: 2022年12月20日火曜日 14:55:31 GMT
クッキー: 有効
ユーザー エージェント文字列: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/108.0.0.0 Safari/537.36"
クライアント コンピューター上でも、Web ブラウザーで ADFS サーバー自体に直接アクセスしている場合でも、この問題が発生します。この問題に遭遇したことがある人はいますか?
答え1
これは、証明書をユーザーにマッピングする必要があるケースだと思います。AD サーバーでこれを試してください。
x509 証明書を個々のユーザーにマップするには、dsa.msc (AD ユーザーとコンピューター) -> 高度な機能を有効にする -> ユーザーを右クリック -> 名前のマッピングに移動します。
ここで、cert auth を使用して認証しようとしているユーザーに証明書をマップできます。
お役に立てれば幸いです。