【EPS技術記事】EPSとEntra Domain Servicesを連携してEAP-TLS / PEAP認証を試してみた

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

概要

本記事では、NetAttest EPSがRADIUS認証を行う際に参照するユーザーデータベースとして、Microsoft Entra Domain Servicesと連携する構成についての検証結果をご紹介します。

本記事の設定で、EPSからオンプレミスのActive Directoryを参照して認証を行う場合と同様に、Entra Domain Servicesを参照したEAP-TLS認証、PEAP認証が可能なことを確認しました。

なぜEntra IDだけではなくEntra Domain Servicesが必要なのか

クラウドのID基盤であるEntra IDは、SAMLやOAuthなどのモダン認証に特化しており、従来のActive Directoryで使われていた LDAP、NTLM、Kerberosといったプロトコルを利用することができません。
そのため、RADIUSサーバー(NetAttest EPS)のようにLDAP等での連携が必要な機器をクラウドIDと紐づけるには、従来のプロトコルをサポートするマネージドサービスである Entra Domain Services を展開する必要があります。

本構成が向くケース・検討時の前提

本構成は、オンプレミスのActive Directoryを持たない、あるいは将来的に廃止したい環境において、Entra IDのユーザー情報を活用して社内ネットワークの802.1X認証(EAP-TLS/PEAP)を実現したいケースでの選択肢の1つになります。
一方で、以下の前提があります。

  • Entra Domain Servicesの展開が必要
    Entra IDのみでは実現できず、Azure仮想ネットワーク上にマネージドのDomain Servicesを展開する構成となります。
  • EAP-TLSとPEAPで構成難易度が異なる
    EAP-TLSは証明書ベースのため、EPSはEntra Domain ServicesのLDAPS参照のみで成立します。
    一方、PEAPはパスワード認証のためEPS自体のドメイン参加が必要となり、オンプレミスの物理/仮想アプライアンスの場合は後述のとおりMicrosoftの非推奨パターンに該当します。
  • パスワード認証にはパスワードハッシュ同期が前提
    Entra IDに作成したユーザーは、パスワード変更またはリセットを行うまでEntra Domain Servicesにパスワード情報が同期されず認証ができません。
    PEAPを採用する場合は運用フローの設計が必要です。
  • VPNの可用性がそのまま認証の可用性に直結
    社内ネットワークのEPSとAzure側のEntra Domain Services間はSite-to-Site VPNで接続されるため、VPN障害時は認証ができなくなります。ネットワーク冗長化の検討が別途必要です。

詳細な注意点は記事末尾の「本番環境への適用にあたっての注意点」および「注意事項とサポートポリシーについて」もあわせてご参照ください。
本記事では無線LAN接続時の認証を中心に検証しましたが、EPSはVPN接続時のRADIUS認証にも対応しています。
Entra Domain Servicesをユーザーデータベースとして参照する構成自体は同様のため、VPN認証への応用も考えられます。

検証環境の構成イメージ

今回の検証では、社内ネットワークに接続された無線APからEPSに認証要求が行われ、EPSはSite to Site VPNで接続されたAzure仮想ネットワーク内のEntra Domain Servicesにユーザー情報の参照を行います。

本記事ではAzureネットワーク作成やEntra IDの構築は割愛し、Entra Domain ServicesとEPSの連携に関連する設定にフォーカスします。
EPSはベースとなる設定が完了し、認証ができる状態となっている前提で記載します。
本検証で使用したAzureネットワーク構築にあたって設定したAzureのリソースは以下のとおりです。

  • 仮想ネットワーク
  • パブリックIPアドレス: オンプレミスからの接続先グローバルIPアドレス
  • Virtual network gateway: Azure側のVPNゲートウェイ
  • Local network gateway: オンプレミス側のVPN機器の情報を登録
  • ネットワークセキュリティグループ: 許可/拒否する通信の設定
    社内ネットワークのEPSからVPN経由でのLDAPS通信を許可
  • Connections: VPNトンネル確立のための接続設定

検証時に使用したEntra IDのライセンスはEntra ID Premium P2、EPSのバージョンはV5.2.9です。

Entra Domain Servicesの設定

1.Microsoft Entra Domain Servicesのデプロイ

Microsoft Entra 管理センターにてEntra Domain Servicesのデプロイを行います。

リソースグループは「NetAttestLab」、ドメイン名は「netattestlab.onmicrosoft.com」とします。

仮想ネットワークは作成済みのものを選択、サブネットはEntra Domain Services用に作成します。

2.Secure LDAPの有効化

Entra Domain Servicesのサーバー証明書の用意

Entra Domain Servicesのサーバー証明書はEPSで発行します。
Entra Domain ServicesにCSR(証明書発行要求)の作成機能はないため、CSRは用いずにサーバー証明書を用意します。
EPSでの証明書発行にあたって特に注意が必要なサーバー証明書の要件は下記3点です。

  • PFX形式の証明書ファイル
  • Entra Domain Servicesへのインポート時にパスワードの入力が必要
  • CN、サブジェクト別名にワイルドカードを指定

詳細な要件についてはMicrosoftのチュートリアルに記載がありますのでご確認ください。
なお、「.onmicrosoft.com」ドメインを使用する場合はパブリックCAから証明書を取得できないため、エンタープライズCAまたは自己署名CAが必要です。
EPSの内蔵CAを使用する場合はこの構成に該当します。

Secure LDAPのサーバー証明書に関する注意事項として証明書の有効期間が挙げられます。
期限が切れるとSecure LDAP機能は即時停止するため、EPSは認証ができなくなります。
有効期間に関するアラートはEntra Domain Services、EPSどちらからも送信可能です。
更新の方法はこれから記載する手順と同様です。

EPSはパスワードを設定したPFXファイル形式の証明書を直接出力できないため、今回はEPSのWebエンロール機能を使用してサーバー証明書を発行し、発行した証明書を管理者PCにインポート/エクスポートすることでEntra Domain Servicesにアップロード可能なサーバー証明書を用意します。
EPSでのその他の証明書発行方法として、証明書一括生成ツールを使用することも可能です。

サーバー証明書発行操作用アカウントの登録

EPSの利用者一覧からアカウントを新規登録します。
利用者ページのロールとして「証明書申請(すべてのプロファイル)」を指定します。

利用者ページの操作

利用者ページから証明書の発行を行うためにはMicrosoft EdgeのIEモードを使用します。
利用者ページ ( https://EPSのIPアドレスまたはホスト名/ ) にアクセスし、作成した利用者アカウントでログインします。
ログイン後、[証明書申請]-[新規申請]と進み、「Webサーバー証明書」プロファイルを選択します。

「名前」「別名 プリンシパル名」にはワイルドカードを使用する必要があります。
Entra Domain Servicesではバックエンドのドメインコントローラーにランダムな名前が使用されるため、ワイルドカード証明書が必須要件となっています。
ドメイン名が「netattestlab.onmicrosoft.com」のため、「*.netattestlab.onmicrosoft.com」とします。
EPSがEntra Domain Servicesを参照する際にLDAPSを使用するために、任意設定にIPアドレスも指定します。
IPアドレスはEntra Domain Servicesの「プロパティ」に記載されています。

管理者PCにインポート後、秘密鍵をエクスポートするために詳細オプションにて「エクスポート可能なキーとしてマークする」を有効化し、「申請」をクリックすると自動でインポートが行われます。
EPSの設定によっては申請に手動で承認を行う必要があります。
その場合は、サービス管理ページの[証明書]-[申請一覧]で承認を行ってください。

管理者PCからの証明書エクスポート

証明書は自動的に現在のユーザーの「個人」ストアにインポートされます。
Windowsにて「certmgr.msc」を指定して実行すると現在のユーザーの証明書ストアが開きます。

インポートされた証明書を右クリックし、[すべてのタスク]-[エクスポート]と進むと証明書のエクスポートウィザードが起動します。
ウィザードに従って進み、「秘密キーのエクスポート」にて「はい、秘密キーをエクスポートします」、「セキュリティ」にてパスワードを指定し、エクスポートします。

Entra Domain Servicesへのアップロード

エクスポートしたサーバー証明書は、Microsoft Entra 管理センターの[Entra ID]-[ドメインサービス]-[作成したEntra Domain Services]-[設定]-[Secure LDAP]にてアップロードします。
「Secure LDAP」の有効化、証明書ファイルの選択とパスワードの入力を行い、保存してください。

3.ユーザーの作成

今回の検証では、以下のユーザーアカウントが必要です。

  • EAP-TLS認証/PEAP認証で使用するユーザーアカウント
  • EPSがEntra Domain ServicesをLDAP参照する際に使用するユーザーアカウント
  • PEAP認証の場合はEPSをドメイン参加させるためのユーザーアカウント
    Entra Domain Servicesに用意されている「AAD DC Administrators」グループへの所属が必要

認証用のユーザーアカウントは「tsoliton」、LDAP参照およびドメイン参加用ユーザーアカウントは「entraadmin」を兼用しています。
PEAP認証を行うため、「entraadmin」は「AAD DC Administrators」グループに所属させています。

ユーザーアカウントの作成

ユーザーの作成はEntra IDに対して行い、Entra Domain Servicesに自動で同期が行われます。

[Entra ID]-[ユーザー]にて「新しいユーザー」を作成します。
この検証ではtsoliton(sAMAccountName形式)で認証ができましたが、Entra Domain ServicesではsAMAccountNameが自動生成される場合があります。
確実にサインインするにはUPN形式(例:user@domain.onmicrosoft.com)を使用してください。

ユーザーパスワードの同期について

ユーザーパスワードで認証を行うには、各ユーザーアカウントがEntra Domain Services用のパスワードハッシュを持っている必要があります。
Entra IDとEntra Domain Servicesではパスワードの保存方式が異なるため、Entra IDにユーザーを作成してもパスワード情報は同期が行われません。
 Entra Domain Servicesにパスワード情報が作成されるのは、Microsoftポータル等でユーザーがパスワードの変更(またはリセット)を行ったタイミングです。
単なるログインではパスワードハッシュは同期されませんのでご注意ください。

EPSの設定

EPSでは認証の際に参照するユーザーデータベースとして利用者リポジトリへのEntra Domain Servicesの登録、PEAP認証の場合は追加でActive Directory認証連携設定が必要です。

1.利用者リポジトリへの登録 (EAP-TLS/PEAP 共通)

Entra Domain Servicesではバックエンドのドメインコントローラーにランダムな名前が使用されるため、サーバー/セカンダリサーバーはIPアドレスで指定します。
すべてのユーザー/グループがAADDC Users配下に登録されるため、バインドDNは CN=entraadmin, OU=AADDC Users, DC=netattestlab, DC=onmicrosoft, DC=comを指定します。
LDAPバインドを行うユーザーに追加の権限は不要です。

「利用者検索」設定の検索ベースはOU=AADDC Usersを指定します。

2.Active Directory認証連携設定 (PEAPのみ)

EPSのネットワーク設定で、Entra Domain ServicesをDNSサーバーとして指定します。

EPSをEntra Domain Servicesにドメイン参加させます。
ドメイン参加を行うには、Entra Domain Servicesにデフォルトで用意されている「AAD DC Administrators」グループに所属したアカウントが必要です。
このアカウントもEntra Domain Servicesにパスワード情報が生成されている必要があります。

本番環境への適用にあたっての注意点

  • Entra IDに登録したユーザーでのパスワード認証ができるのはパスワード変更後
    参照: ユーザーパスワードの同期について
  • Secure LDAP用のサーバー証明書は期限が切れる前に手動で更新作業が必要
    参照: 2.Secure LDAPの有効化
  • 認証に使用するユーザーIDはUPN形式が確実
    参照: ユーザーアカウントの作成
  • VPN障害時の認証断リスクは存在するため、ネットワークの冗長性も考慮が必要

まとめ

以上でEntra Domain Servicesを参照したEAP-TLS認証、PEAP認証の準備は完了です。
これまでの設定で下記3点が可能なことが確認できました。

  • 無線AP接続時のEAP-TLSのユーザー認証
  • 無線AP接続時のPEAPのユーザー認証
  • EPSのEntra Domain Servicesへのドメイン参加

追加の設定を行うことで、Entra Domain Servicesのセキュリティグループを用いたVLANの制御等も確認ができています。 サプリカント、RADIUSクライアントの設定については本サイトにも参考情報がありますのでご確認ください。

注意事項とサポートポリシーについて

本記事は、弊社製品「NetAttest EPS」が認証を行う際のユーザー情報としてEntra Domain Servicesを使用する構成の技術検証レポートです。
この記事で紹介する構成や手順はあくまで一例であり、お客様の環境における動作を保証するものではありません。

 本記事の内容に基づき、お客様の環境で同様の構成を試される場合は、以下の事項を必ずご確認・ご同意の上、お客様ご自身の責任において実施してください。

検証について

実際の運用を想定する場合は、導入前に必ず十分な性能評価・機能検証を行ってください。

サポート範囲について

  • 本記事で取り上げたご利用方法において、EPSについてのご質問は通常通りサポートいたしますが、Azure/Entraの仕様、構築、操作方法などに関するご質問は弊社サポートの対象外です。
  • 障害発生時、その原因がお客様の仮想環境に依存するものか、弊社製品に起因するものかの切り分け、および原因の特定につきましては、お客様(または、お客様が契約されているシステムインテグレーター様)にて実施いただく必要がございます。
  • お客様環境における固有の問題、利用方法、パフォーマンスに関するお問い合わせにつきましても、弊社ではお答えいたしかねます。

ドメイン参加についてのMicrosoftの方針

  • 下記リンクの非推奨パターン1の通り、Microsoftはオンプレミスの物理/仮想アプライアンスのドメイン参加は非推奨としています。
    記事はAzure AD Domain Servicesについてですが、Entra Domain Servicesにおいても同様です。
    Azure AD Domain Services の利用シナリオ - 非推奨パターン 1
  • EPSでは、Entra Domain Servicesを参照したPEAP認証を行う構成が該当します。
  • Azure版EPSを仮想マシンとして構築し、ドメイン参加を行うことは利用シナリオとして想定されています。
    検証を行った結果認証動作に影響はありませんでしたが、上記についてはご留意ください。
記事を書いた人

ソリトンシステムズ・プロダクトチーム