■ ■ module フォルダの中身 ■ =============================================================================== ■ 目次 ------------------------------------------------------------------------------- ・chkpwd_ldap ・chkpwd_ldap_ssl (※ ソースコード非公開) ・cpp-ldap ・cpp-simple ・cs-ldap (※ バイナリ未公開) ・vb-simple =============================================================================== ■ はじめに ------------------------------------------------------------------------------- このフォルダーには CPE で利用するサンプルのモジュールが格納されています。 実行ファイルは x86 用にビルドしたものです。 ソースコードは source フォルダーに存在します。必要に応じて修正して利用して ください。ソリューション ファイル、プロジェクト ファイルは Visual Studio 2005 で作成したものです。最新の Visual Studio を利用中の場合は、最初に開いたときに 自動的に変換されます。 モジュール開発に必要な情報は develop.html を参照してください。 =============================================================================== ■ chkpwd_ldap ------------------------------------------------------------------------------- ・概要 エントリ識別名・LDAP サーバーのホスト名・パスワードをもとに LDAP サーバーに 接続を試み、接続できたかどうかの結果を出力します。 ・使い方 chkpwd_ldap [-u username] [-h host] [-p password] [-s] [-v] [-e] 与えられたアカウント情報でログオンできれば、標準出力に 1 を出力し、プロセス の終了コードが 1 になります。ログオンできないときは、標準出力に 0 を出力し、 プロセスの終了コードが「0」になります。 なお、-e フラグを利用すると、成功時に 0、失敗時にエラーコードを返します。 -u ユーザーを表すエントリ識別名を指定します。 -h LDAP サーバー名を指定します。ドメイン名・ホスト名・IPアドレスを指定する ことができます。サーバー名のあとにコロン(:)をつけてポート番号を指定する ことも可能です。ポート番号を省略すると 389 番を用います。 -p パスワードを指定します。 -e ログオン成功時に 0、失敗時にエラーコード(GetLastError関数の戻り値)を返します。 このフラグを指定しなかった場合、ログオン成功時に 1、失敗時に 0 を返します。 -v 出力を増やします。-s と共に利用することはできません。 デバッグ用に利用してください。 -s 標準出力に出力しません。-v と共に利用することはできません。 exit status は返します。 -h このヘルプを表示します ユーザー名・サーバー名・パスワードのうち、コマンドライン引数から与えら れなかったものは、標準入力からユーザー名・サーバー名・パスワードの順に 与える必要があります。 1つでも与えていないものがあれば、エラーを表すコードを返します。 例) chkpwd_ldap -u cn=Manager,dc=co-conv,dc=jp -d localhost -p pwd 例) echo pwd| chkpwd -u cn=Manager,dc=co-conv,dc=jp -d localhost 例) echo cn=Manager,dc=co-conv,dc=jp| chkpwd -d localhost !!! パスワードが与えられていないのでエラー!!! ・注意 このプログラムは、LDAP サーバーに指定されたエントリ識別名で接続できるかどう かを調べるためのものです。そのため、LDAP サーバーが anonymous での接続を 許可している場合、間違ったエントリー識別名とパスワードでも接続できてしまう ことに注意してください。 =============================================================================== ■ chkpwd_ldap_ssl ------------------------------------------------------------------------------- ・概要 エントリ識別名・LDAP サーバーのホスト名・パスワードをもとに LDAP サーバーに 接続を試み、接続できたかどうかの結果を出力します。 chkpwd_ldap.exe に加えて、LDAPS で接続する機能や特定の属性を取得する機能が あります。 ・使い方 chkpwd_ldap_ssl [-u username] [-h host] [-p password] [-s] [-v] [--ssl] 与えられたアカウント情報でログオンできれば、標準出力に 1 を出力し、プロセス の終了コードが 1 になります。ログオンできないときは、標準出力に 0 を出力し、 プロセスの終了コードが「0」になります。 -u ユーザーを表すエントリ識別名を指定します。 -h LDAP サーバー名を指定します。ドメイン名・ホスト名・IPアドレスを指定する ことができます。サーバー名のあとにコロン(:)をつけてポート番号を指定する ことも可能です。ポート番号を省略すると LDAP なら 389 番、LDAPS なら 636 番を用います。ポート番号を636に指定した場合、自動的にLDAPSを用います。 -p パスワードを指定します。 -d データを取得する識別名(DN)を指定します。 -a データを取得する属性記述子を指定します。 -v 出力を増やします。-s と共に利用することはできません。 デバッグ用に利用してください。 -s 標準出力に出力しません。-v と共に利用することはできません。 exit status は返します。 --ssl LDAPS で接続を行います。サーバーが LDAPS に対応している必要があります。 -? このヘルプを表示します ユーザー名・サーバー名・パスワードのうち、コマンドライン引数から与えら れなかったものは、標準入力からユーザー名・サーバー名・パスワードの順に 与える必要があります。 1つでも与えていないものがあれば、エラーを表すコードを返します。 例) chkpwd_ldap_ssl.exe -u cn=username,cn=Users,dc=co-conv,dc=jp -h winserver2003.co-conv.jp -p pwd 例) echo pwd| chkpwd_ldap_ssl.exe -u cn=username,cn=Users,dc=co-conv,dc=jp -h winserver2003.co-conv.jp 例) echo pwd| chkpwd_ldap_ssl.exe -u cn=username,cn=Users,dc=co-conv,dc=jp -h winserver2003.co-conv.jp -d cn=username,cn=Users,dc=co-conv,dc=jp -a name 例) echo cn=username,cn=Users,dc=co-conv,dc=jp| chkpwd_ldap_ssl.exe -h winserver2003.co-conv.jp !!! パスワードが与えられていないのでエラー!!! ・注意 証明書ストアに存在しない証明書を利用して LDAPS 認証を行う場合には、以下の 手順で「コンピュータアカウント」の証明書ストアに証明書を追加してください。 1. mmc を管理者権限で起動します 2. メニューの [ファイル] [スナップインの追加と削除] を選択します。 3. 一覧から [証明書] を選び、[追加] ボタンを押します。 4. [コンピュータ アカウント] を選択して [次へ] ボタン、[完了] ボタンの順に クリックします。 5. [OK] ボタンを押し、コンソールルートに [証明書 (ローカル コンピュータ)] が追加されたことを確認します。 6. 証明書のツリーを開き、[信頼されたルート証明機関] を右クリックし、 メニューから [全てのタスク] [インポート] の順に選択します。 7. 証明書を入力し、[次へ] [次へ] [完了] の順にクリックします Internet Explorer から証明書を登録すると、「ユーザーアカウント」に対しての 証明書の登録となります。ログオン画面で利用するためには「コンピュータ アカ ウント」に対して証明書を設定する必要がある点、ご注意ください。 =============================================================================== ■ cpp-ldap ------------------------------------------------------------------------------- ・概要 chkpwd_ldap.exe を利用して LDAP 認証を実行します。 LDAP サーバーへの接続設定は cpp-ldap.ini を利用します。 domain で設定したドメイン上に LDAP サーバーと同一のユーザー・パスワードが 存在することを前提としています。 =============================================================================== ■ cpp-simple ------------------------------------------------------------------------------- ・概要 ローカルログオン、または、ドメインにログオンするモジュールです。 =============================================================================== ■ cs-ldap ------------------------------------------------------------------------------- ・概要 C# で LDAP 認証を実施するサンプルコードです。 cpp-ldap とは異なり、LDAP で認証に成功した場合には、設定ファイルに記載した 固定のユーザー名・パスワードでログオンします。 LDAP 認証を行わないユーザー名を指定することも可能です。 =============================================================================== ■ vb-simple ------------------------------------------------------------------------------- ・概要 cpp-simple.exe の Visual Basic.NET 版です。