サーバー側プログラム例 gss-server は、前章で説明した gss-client と連携して動作します。gss-server の基本目的は、gssapi-client からラップ済みメッセージを受け取り、そのメッセージに署名して戻すことです。
以降のセクションでは、gss-server がどのように動作するかを段階的に説明します。gss-server は GSS-API の機能説明用のプログラム例であるため、関連する部分だけを詳しく説明します。
gss-structure アプリケーションは次の手順を実行します。
コマンド行を解析します。
メカニズムが指定された場合、そのメカニズム名を内部形式に変換します。
呼び出し側の資格を獲得します。
inetd デーモンを使って接続するようにユーザーが指定しているかどうかを検査します。
クライアントとの接続を確立します。
クライアントからのデータを受信します。
データに署名して戻します。
名前空間を解放し、終了します。
次に、gss-server のコマンド行の書式を示します。
gss-server [–port port] [–verbose] [–inetd] [–once] [–logfile file] \ [–mech mechanism] service-name
port は、応答を待つポートの番号です。port が指定されていない場合、プログラムはデフォルトでポート 4444 を使用します。
–verbose を指定すると、gss-server 実行時にメッセージが表示されます。
–inetd は、プログラムが inetd デーモンを使ってポートで応答を待つべきであることを示します。–inetd は、stdin と stdout を使ってクライアントに接続します。
–once を指定すると、1 つの接続しか作成されなくなります。
mechanism は、使用するセキュリティーメカニズム (Kerberos v5 など) の名前です。メカニズムが指定されていない場合、GSS-API はデフォルトのメカニズムを使用します。
service-name は、クライアントが要求するネットワークサービス (telnet、ftp、login など) の名前です。
次に、一般的なコマンド行の例を示します。
% gss-server -port 8080 -once -mech kerberos_v5 erebos.eng nfs "hello"