こんにちは。サイオステクノロジーの木村です。
今回は、C#にて、LDAPSでActive Directoryに接続する方法をご紹介します。
(Active DirectoryをLDAPS化する方法についてご興味のある方は、こちらの記事をご参照ください。
Active Directory LDAPS(LDAP over SSL/TLS)有効化)
LDAP接続
まずはLDAPで接続してみます。
C#にて、Active Directoryに接続するには、System.DirectoryServices.DirectoryEntryクラスを使います。
Active Directoryに接続してユーザーを検索し、取得した情報を表示する実装は以下のようになります。
(接続先、クライアントを認証するときに使用するユーザー名・パスワードの部分を、接続する環境に合わせて読み替えてくください。)
パケットのキャプチャをとってみてみると、LDAPで接続されていることがわかります。
LDAPS接続
では次にLDAPS接続です。
LDAPS接続の場合でも、コードの実装は上記LDAPの時と一緒です。
LDAPS接続にする場合は、以下のように接続先URIにポート番号「636」をつけた形で指定します。
<例>
LDAP://adhost.example.com:636/OU=class1,DC=adhost,DC=example,DC=com
パケットのキャプチャをとってみてみると、LDAPSで接続されていることがわかります。
接続先URIにポートを指定しない場合は、デフォルトの389が使用されます。
636を指定することで、LDAPS接続となります。
ちなみに、LDAPS接続にする場合は、接続先のドメイン名と証明書のCommon Nameが一致していないと接続できないのでご注意ください。