クライアント側プログラム例 gss-client は、サーバーとのセキュリティーコンテキストを作成し、セキュリティーパラメータを確立し、メッセージ文字列をサーバーに送信します。このプログラムは接続時に、単純な TCP ベースのソケット接続を使用します。
以降のセクションでは、gss-client がどのように動作するかを段階的に説明します。gss-client は、GSS-API の機能説明用に設計されたプログラム例であるため、関連部分についてのみ詳しく説明します。
gss-client アプリケーションは次の手順を実行します。
コマンド行を解析します。
メカニズムが指定されている場合、そのメカニズムのオブジェクト ID (OID) を作成します。それ以外の場合、デフォルトのメカニズムが使用されます。これがごく普通の場合です。
サーバーとの接続を設定します。
セキュリティーコンテキストを確立します。
メッセージをラップして送信します。
サーバーが正しくメッセージに署名していることを検証します。
セキュリティーコンテキストを削除します。
次に、gss-client 例のコマンド行の書式を示します。
gss-client [–port port] [–d] [–mech mech] host service-name [–f] msg
port - host で指定されたリモートシステムへの接続を確立するためのポート番号です。
–d フラグ – サーバーへのセキュリティー資格の委託を可能にします。具体的には、deleg-flag 変数が GSS-API 値 GSS_C_DELEG_FLAG に設定されます。d フラグが設定されていない場合、deleg-flag は 0 に設定されます。
mech – Kerberos v5 など、使用するセキュリティーメカニズムの名前です。メカニズムが指定されていない場合、GSS-API はデフォルトのメカニズムを使用します。
host – サーバーの名前です。
service-name – クライアントが要求するネットワークサービスの名前です。そのようなサービスの一般的な例として、telnet、ftp、login などが挙げられます。
msg – 保護されたデータとしてサーバーに送信される文字列です。–f オプションが指定されている場合、msg は文字列を読み取るべきファイル名です。
次に、クライアントアプリケーションプログラムの一般的なコマンド行の例を示します。
% gss-client -port 8080 -d -mech kerberos_v5 erebos.eng nfs "ls"
次の例では、メカニズム、ポート、および委託が指定されていません。
% gss-client erebos.eng nfs "ls"