ldp および .net コードを使用して、ldap 接続が実際に SSL で保護されているかどうかを確認するにはどうすればよいですか?
2 に答える
ポート番号は関係ありません。389 は非セキュア LDAP 接続用の標準定義ポートであり、636 はセキュア接続用の標準定義ポートです。ほとんどのサーバーは、任意のポートをセキュアとして使用し、他のポートを非セキュアとして使用するように構成できます。389 と 636 は、単に標準ベースのデフォルトです。サーバーは、非セキュア ポートとして 636 を使用し、セキュア ポートとして 389 を使用するように構成できますが、これは直感に反する構成であり、標準に違反します。さらに、389 の接続は、StartTLS を使用して安全な接続に昇格できるため、389 も安全です。
Wiresharkを使用して、安全に接続しているかどうかを最終的にテストすることができました. フィルタを tcp.port eq 636 または tcp.port eq 389 のように設定すると、636 および 389 ポートを介した通信が表示されます。
私の結論は、ldpでsslがチェックされていなくても、ldapサーバーは636ポートで保護された接続を使用し、ポート636が設定されている場合はチェックしても効果がないということです。
このチェックボックスの目的は、クライアントが SSL を強制することだと思うので、サーバー側のポートで SSL がサポートされていないと、接続が確立されません。
C# コードからセキュリティで保護された接続を使用すると、デフォルトでポート 636 になり、セキュリティで保護されていない場合はデフォルトで 389 になります。
コードから安全な接続を使用する方法は、接続認証タイプを ssl に設定するか、ldap パスで ssl ポートを指定することです。