簡易ディレクトリサービスは,次の2つを実装します.
(1)ユーザログオン,ログオフ
(2)ユーザの検索
それぞれのプロトコルについて説明します.
自分がどこにいるのかを他のユーザに教えるために,簡易ディレクトリサービスにログオンします.
ここでは次のような情報を,クライアントからサーバに送ります.
・ユーザID
ユーザIDはユーザをユニークに識別するための文字列です.通常はメールアドレスを使用します.
・IPアドレス
クライアントのIPアドレスです.***.***.***.***のような形式です.
・ポート番号
クライアントでメッセージを受け取ることのできるSSTPサーバのポート番号です.
・ユーザ名
ユーザ名です.ユーザIDと違い,こちらは検索には使用しません.表示用と考えてください.
クライアントからサーバへは,POSTメソッドでこれらのデータが渡されます.次のような書式です.
サーバ側では,このメッセージを受け取ったら,ディレクトリサービスにユーザをログオンさせます.なお,認証などは,全てサーバ任せです.クライアント側は責任を持ちません.
サーバ側では,メッセージを処理したら,クライアントにテキスト形式で応答を返します.HTMLではなく,HTTPでヘッダの後の空行の後すぐにテキストを続けてください.
・ログオン成功の場合
200 OK\r\n
Duration: 30\r\n
\r\n
また,クライアント側では,ログオンしてからDurationで指定された時間が経過したら,再びサーバにログオンのメッセージをPOSTします.このとき,Command=updateとしてサーバに通知されます.
なお,サーバ側では常に新しく入ってきたユーザ情報を有効にしてください.
また,クライアント側が終了するときなどには,ログオフ通知が渡されます.Command=logoffとして,ログオンと同じ形式で渡されます.しかしながら,このメッセージが必ず来る問い保証はありません(ネットワークの切断やクライアントの異常終了など)のでDulationの処理でアカウントを無効にする処理を優先させてください.また,ログオフは必ずしも処理する必要はありません.
・ログオン失敗の場合
400 Bad Request\r\n
\r\n
クライアントが特定のユーザを,簡易ディレクトリサービスに登録されたユーザ情報から検索するときに使用します.
クライアント側からは,検索するユーザIDがPOSTされてきますので,サーバ側は登録されているユーザからユーザIDをキーにして検索して,見つかった場合には,そのユーザ情報をクライアントに返します.
クライアントからサーバへは,POSTメソッドでデータが渡されます.次のような書式です.
・指定されたユーザが見つかった場合
200 OK\r\n
Address: ***.***.***.***\r\n
Port: 9821\r\n
Name: 1ミリメートル\r\n
\r\n
404 Not Found\r\n
\r\n
500 Internal Server Error\r\n
\r\n
※logon,logoff,update,queryは全て同じURLにPOSTされます.サーバ側はCommand=の部分を適切に解釈して処理する必要があります.
INSTALL/1.0準拠で,install.txtに次のようなエントリを記述し,LHAまたはZIPで書庫にして配布します.
type,directory service setting
name,ふたばようちえん
descript,今日も元気におはようございます
url,http://www.futaba-yochien.ac.jp/logon.cgi
name,descriptは,クライアントソフトでメニューなどで使用されます.
urlにサーバのアドレスを指定してください.