これまでのブログ記事でMicrosoft Entra IDの証明書ベース認証(CBA)の設定に触れてきましたが、本記事はその設定を用いてMicrosoft Entra ID Join環境でのWindowsクライアント端末でのスマートカードログオンを行う方法を解説します。
これにより、オンプレミスのActive Directoryを介すことなく、WindowsログオンをICカード・USBトークンといったセキュリティデバイスを用いた多要素認証にでき、Windowsクライアントのセキュリティ強化を行うことが可能になります。
※弊社では以下の手順にて動作検証をおこなった際の一例をご紹介しており、動作を保証するものではございません。
本手順について内容の変更等や誤りがあった場合、弊社では一切の責任を負いかねることを予めご了承ください。詳細は公式のドキュメント等をご参照ください。
目次
検証環境
本記事の検証は、以下のような環境で実施しました。
- ● Entra ID Joinに参加済みの Windows 11 Pro クライアント
- ※Homeエディションは Entra ID Join非対応となります。
- ● Microsoft Entra ID
- ※Microsoft社の公開情報によると、Entra 証明書ベース認証(CBA)は、Entra IDの全エディションで利用可能です。なお、"条件付きアクセス"や"認証強度"機能を併用する場合は別途ライセンス要件をご確認ください。
- ● スマートカード(ICカード/USBトークン)
※今回は、YubiKey 5C NFC (PIV 対応モデル) を利用しています。他社製の IC カードや USB トークンでも Windows の スマートカードミニドライバに対応した製品であれば管理ツールの操作方法に違いはあれど同等の手順で利用可能と想定しています。 - ● クライアント証明書
※本記事では YubiKey Manager で CSR (証明書署名リクエスト) を作成し、弊社のクライアント証明書管理サービス「マネージド PKI Lite byGMO」で証明書を発行します。
本記事については、お客様専用のプライベートCAをグローバルサインのセキュア設備でホストする『カスタムCA』で構築し、証明書を発行することを前提としています。
『マネージド PKI Lite byGMO』のデフォルトである共用CAで行う場合は、Entra ID Joinへのデバイス登録を限定する運用(事前登録や、登録可能なアカウントを制約するなど)が強く推奨されます。
Microsoft Entra IDの証明書認証の設定
過去の記事から時間が経過しているので、改めてEntra IDでの証明書認証の設定方法を記載します。
CA証明書設定
①これまでは、Microsoft Entra 管理センターにアクセスし、[Entra ID]→[証明機関]メニューでCA証明書を設定していましたが、現在は[公開キー基盤]機能を使うように促されるので移動します。
②公開キー基盤画面で[+PKI の作成]をクリックし、新規にPKIの作成をおこないます。証明機関の詳細画面で[+証明機関の追加]をクリックして、ルート証明書と中間証明書を追加します。
●ルート証明書
●中間CA証明書
[証明書失効リストのURL]は、中間証明書のCRL配布ポイントフィールドにルート認証局の失効リストURL、スマートカード(クライアント)証明書の同フィールドに中間認証局の失効リストURLが含まれているのでそれを入力します。
ルート証明書、中間証明書がインポートされると以下のようになります。
認証方式の設定
①[Entra ID]→[認証方法]メニューで[証明書ベースの認証]をクリックし、詳細設定に進みます。
②[有効化及びターゲット]タブで証明書ベース認証を[有効]にし、その対象とするグループを選択します。
③[構成]タブで以下を行います。
- ●[CRL検証を必須にする(推奨)]をチェック
- ●[規定の認証強度]を[多要素]に設定
- ●[必須のアフィニティバインド]を[低]に設定
- ※ユーザプリンシパル名ベースのマッピングを行うため。
- ●[ユーザー名バインド]を以下の通りに設定
- [証明書フィールド]を PrincipalName に設定
- [ユーザー属性]を userPrincipalName に設定
ユーザ名バインドは、ご利用環境により内容が変わり得ます。
本例ではクライアント証明書のサブジェクト代替名フィールドにユーザプリンシパル名を含めて、それとEntra IDのユーザID(ユーザプリンシパル名=username@example.com形式のもの)と紐づけることを想定しています。
スマートカード証明書の発行
証明書の発行は、マネージドPKI Lite byGMOで提供する専用管理画面(GSパネル)にて行います。
本記事ではスマートカード証明書にユーザプリンシパル名(UPN)を含め、そのUPNとEntra IDユーザのUPNをマッピングさせる方法で説明します。
マネージドPKI Lite byGMOの管理設定
プロファイル設定
証明書発行用のプロファイルで、証明書の拡張鍵用途にスマートカードを付与する設定が必要になります。
マネージド PKI Lite byGMOのプロファイル設定で[MS Smartcard Logon]を[有り]に変更します。
証明書の発行申請
証明書の発行申請時は、以下の操作が必要になります。
[ユーザープリンシパル名]をEntra IDユーザアカウントのユーザプリンシパル名と一致するように入力します。
[鍵生成オプション]のラジオボタンは[CSR による発行]を選択します。
YubiKeyでのCSR生成と証明書の格納
YubiKey Managerを使って証明書署名要求(CSR)の作成と、グローバルサインから発行された証明書の格納をおこないます。
CSR作成
①YubiKey Managerで[Applications]→[PIV]を選択し、開いた画面のCertificateの[Configure Certificate]をクリックします。
②次に[Generate]をクリックし、画面の指示にしたがいCSRを作成します。
[Algorithm]には、RSA2048を選択します。
[Subject]は、何を入力しても証明書発行時に認証局に上書きされるので、適当な内容で問題ありません。
証明書の取得と格納
保存したCSRは、テキストエディタで開くことができます。
「-----BEGIN CERTIFICATE REQUEST-----」から「-----END CERTIFICATE REQUEST-----」までをマネージドPKI Liteの証明書取得画面に貼り付けて証明書を取得します。
取得した証明書は、YubiKey ManagerのCertificates画面の[Import]ボタンよりYubiKeyに格納することができます。
マネージドPKI Lite byGMOからダウンロードした証明書ファイルがYubiKey Managerで読み込めない場合は、ダウンロードした証明書ファイルの拡張子を 『.cer』から『.crt』に変更してみてください。
スマートカードログオンの実行
YubiKeyを挿した状態でWindows PCを起動し、ログオン画面まで進めます。
初回ログオン時は、[他のユーザー]を選択し[サインオンオプション]をクリックします。ICカードマークのものを選択するとPIN入力用のダイアログとなるので、YubiKeyに設定したPINを入力することでWindowsへのログオンが実行されます。
ログオン成功時にはプライマリ リフレッシュ トークン(PRT)が取得されます。
これにより、Microsoft 365 など Entra ID を利用する Web アプリケーションでは、条件付きアクセス等で追加認証が求められない限り、追加のユーザー操作なしにサインインできるようになります。
失効済みの証明書の場合
失効された証明書でアクセスを行うと、以下の表示となりログオンに失敗します。
Entra IDが失効リストを取得しないと、証明書失効によるWindowsログオン失敗になりません。
※Entra IDが失効リストを更新するのに、一定の時間がかかるようです。
スマートカードログオンの追加設定
ログオンをスマートカードに限定する方法
スタンドアロンのWindows PCのため、ローカルグループポリシーエディタ(gpedit.msc)で設定します。
①以下のパスに移動します。
[ローカル コンピューター ポリシー]→ [コンピューターの構成]→[Windowsの設定]→[セキュリティの設定]→[ローカル ポリシー]→[セキュリティオプション]→[対話型ログオン: Windows Hello for Business またはスマートカードが必要]を[有効]にします。
②この設定単体では、Windows Hello for Businessも許可されます。そのため、スマートカードログオンのみに寄せたい場合は、後述のとおりWindows Hello for Businessの使用を無効化します。
[ローカル コンピューター ポリシー]→[コンピューターの構成]→[管理用テンプレート]→[Windows コンポーネント]→[Windows Hello for Business]→[Windows Hello for Business の使用]を[無効]にします。
すでにHello登録をしている場合はWHfBが有効なままとなるので、以下コマンドをHello登録したユーザで実行し、登録の削除をおこなう必要があります。
certutil -deletehellocontainer
同じUPNでスマートカード証明書を再び発行すればログオンは可能ですが、ローカルのadministrators権限を持つアカウント用のスマートカードを準備しておくなども必要になるかと思います。
スマートカードを抜いた際にPCロックする方法
ローカルポリシの以下のパスに移動します。
[ローカル コンピューター ポリシー]→[コンピューターの構成]→[Windows の設定]→[セキュリティの設定]→[ローカル ポリシー]→[セキュリティオプション] →[対話型ログオン: スマートカード取り出し時の動作]を[ワークステーションをロックする]にします。
このポリシが適用されると、YubiKeyを抜いた際にスクリーンロックがかかるようになります。
Windows端末でSmart Card Removal Policy Service(ScPolicySvc)が実行中である必要があります。
※弊社の検証環境のマシンではデフォルトで停止中でした。
まとめ
本記事では、Microsoft Entra ID Join 環境において、証明書ベース認証(CBA)を利用した Windows クライアントのスマートカードログオンを実現する手順について、設定から証明書発行、実際のログオン、運用上の追加設定までを一通り解説しました。
Microsoft Entra IDのCBAを活用することで、オンプレミスのActive Directoryを介することなく、ICカードやUSBトークンといったセキュリティデバイスを用いた強固なWindowsログオン環境を構築できます。これにより、パスワードに依存した運用からの脱却や、増加する高度なフィッシング攻撃に対する対策、なりすまし・認証情報漏えいリスクの低減が期待できます。
本記事を通して、Microsoft Entra IDとクライアント証明書を組み合わせたスマートカードログオンに関心を持たれた方は、ぜひ一度クライアント証明書の導入や運用を実際に試してみてください。マネージドPKI Lite byGMOでは、クライアント証明書の発行・管理をシンプルに始めることができます。Entra ID環境での運用のご相談、検証方法についてのご質問なども承っておりますので、ご不明点があればお気軽にお問い合わせください。
関連する記事
Microsoft Entra IDでクライアント証明書を使った多要素認証の設定方法(2024.9.13)
Windows PCで証明書認証する場合のMicrosoft Entra CBAの設定方法(2023.10.5)


