クライアント側プログラム例 gss-client は、サーバーとのセキュリティーコンテキストを作成し、セキュリティーパラメータを確立し、文字列 (メッセージ) をサーバーに送信します。 このプログラムは接続時に、単純な TCP ベースのソケット接続を使用します。
以降では、gss-client がどのように動作するかを段階的に説明します。gss-client は、GSS-API の機能説明用に設計されたプログラム例であるため、関連部分についてのみ詳しく説明します。2 つのアプリケーションの完全なソースコードは付録に含まれています。また、次の場所からダウンロードすることもできます。
http://developers.sun.com/prodtech/solaris/downloads/index.html
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" |