ADFS環境におけるLDAP チャネルバインディングと LDAP署名有効化の影響について(その1)
2020年2月、今さらですが2020年3月に予定されている「LDAP チャネルバインディングと LDAP 署名有効化の影響」について、調査を開始しました。
目次
はじめに
(その1)とさせていただいたのは、調査を開始しただけで検証を行っていないからです。Microsoftサポートには問い合わせしましたが、現段階でサポートにも有効な情報がないとの事でした。
私自身が特に気にしているところは、ADFSサーバが利用するAD認証とクライアント端末が利用するAD認証です。 クライアント端末が利用するAD認証は、検証環境を作れるかもしれないですが、ADFS環境の検証はちょっと難しいなというところが本音で情報も無く困っております。
仕事へ直結するところでもありますので頑張って調査して、少しでも皆さまと情報共有できればと考えています。
今後の予定
先にクライアント端末が利用するAD認証への影響を検証する予定です。ADFS環境については、まずAD認証の仕組みをもう少し深く勉強してからとなりそうです。3月に間に合うでしょうか・・・ もしoffice365が利用できないなどの影響が出たらと思うとぞっとします。
現段階(2020年1月初旬)では、Microsoftの記事を参考にさせていただく予定です。
LDAP チャネル バインディングと LDAP 署名を有効にするためのマイクロソフト ガイダンス
LDAP チャネルバインディング
Microsoftの記事より引用します。
LdapEnforceChannelBinding レジストリ エントリの設定による SSL/TLS 接続の LDAP 認証の安全性の向上
記事を読むとデフォルトでは、レジストリキーである「LdapEnforceChannelBinding」の値が「0」のようでそれを「1」もしくは「2」にするというものです。
「LdapEnforceChannelBinding」の値が「1」は、サポートされている場合に、この機能が有効になることを示すとあります。
おそらくクライアント側が準備できていればこの機能を利用でき、準備できていなければ、この機能は利用できないですが認証はできますよという意味と思われます。
「LdapEnforceChannelBinding」の値が「2」は、この機能が常に有効であることを示すとあります。
おそらくクライアント側が準備できていればこの機能を利用できますが、準備できていなければこの機能はおろか認証すらできなくなりますよという意味と思われます。
ここは重要ですので検証で明らかになれば良いと考えています。
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
ドメイン コントローラーでこの設定を有効にする前に、CVE-2017-8563 で説明されているセキュリティ更新プログラムをクライアントにインストールする必要があります。 インストールしないと、互換性の問題が発生し、SSL/TLS 接続で以前使用していた LDAP 認証要求が動作しなくなる可能性があります。 既定では、この設定は無効になっています。
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
とあります。リンク先を確認しましたが古いWindowsUpdateが適用されていればよいのか(?)と疑問が残りました。検証で分かればこれも共有させていただきます。
LDAP署名
Microsoftの記事より引用します。
(なぜこんな古い情報なのでしょうか・・・)
WINDOWS Server 2008 で LDAP 署名を有効にする方法
ローカル コンピュータ ポリシー、ドメイングループ ポリシー オブジェクト、レジストリ キーのいずれかの方法で対応可能ですよとあります。
公開情報が古く、今回設定を確認したのは、Windows Server 2016 です。
Windows Server 2016 で同じような情報が存在しないため、文言が近いことからおそらくこのポリシーであるだろうという推測で記載していますのでご了承願います。
サーバーの LDAP 署名要件を設定
■グループポリシー管理エディターを使用する場合
Domain Controllersへログオンし、グループポリシー管理エディターを起動します。
Default Domain Controllers Policy > コンピューターの構成 > ポリシー > Windowsの設定 > セキュリティの設定 > ローカルポリシー > セキュリティオプション の順に展開します。
ドメインコントローラー:LDAPサーバー署名必須を右クリックし、[プロパティ]をクリックします。
[このポリシーの設定を定義する] にチェックを入れ、プルダウンメニューから [署名を必要とする] を選択して、[OK] をクリックします。
[設定変更の確認]ダイアログ ボックスで、[はい]をクリックします。
■レジストリキーを使用する場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
値の名前:ldapserverIntegrity
種類:REG_DWORD
値のデータ:2
クライアントの LDAP 署名要件を設定(ドメイン環境)
■グループポリシー管理エディターを使用する場合
Domain Controllersへログオンし、グループポリシー管理エディターを起動します。
Default Domain Policy > コンピューターの構成 > ポリシー > Windowsの設定 > セキュリティの設定 > ローカルポリシー > セキュリティオプション の順に展開します。
ネットワーク セキュリティ: 必須の署名をしているLDAP クライアントを右クリックし、[プロパティ]をクリックします。
[このポリシーの設定を定義する] にチェックを入れ、プルダウンメニューから[署名を必要とする]を選択して、[OK] をクリックします。
[設定変更の確認]ダイアログ ボックスで、[はい]をクリックします。
※Default Domain Policyでなくても、新規でグループポリシーオブジェクトを作成し、OUへ適用してもよいと思います
■レジストリキーを使用する場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ldap
値の名前:ldapclientintegrity
種類:REG_DWORD
値のデータ:2
クライアントの LDAP 署名要件を設定(ワークグループ環境)
■ローカルグループポリシーエディターを使用する場合
ファイル名を指定して実行 へ gpedit.msc と入力し、ローカルグループポリシーエディターを起動します。
コンピューターの構成 > ポリシー > Windowsの設定 > セキュリティの設定 > ローカルポリシー > セキュリティオプション の順に展開します。
ネットワーク セキュリティ: 必須の署名をしているLDAP クライアントを右クリックし、[プロパティ]をクリックします。
プルダウンメニューから[署名を必要とする]を選択して、[OK] をクリックします。
[設定変更の確認]ダイアログ ボックスで、[はい]をクリックします。
■レジストリキーを使用する場合
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ldap
値の名前:ldapclientintegrity
種類:REG_DWORD
値のデータ:2
まとめ
今回は設定方法を調査するだけだいぶ時間がかかってしまいました・・・
次は検証環境を整えてからになりますので少しお時間いただきます。