1

gss-api/kerberos を使用してトラフィック認証を行うプログラムを作成したいと考えています。これまでのところ、SSOS に連絡してサービス チケットを取得できます。ユーザーが TGT を持っていない場合、コードで kinit と同様のことをしています。

私のコードは、キャッシュに TGT とサービス チケットの両方を持つユーザーで終了します。次のメソッドは、サーバーから送信されたトークンを読み取ります。

majorStatus = gss_unwrap (&minorStatus, 
                              inContext, 
                              &inputBuffer, 
                              &outputBuffer, 
                              &encrypted, 
                              NULL;

現在、outputBuffer は空です。つまり、私自身は何も渡していません。私はすべきですか?

別のサーバー (サービス) に連絡して、チケットをチェックしてもらい、有効な場合は彼を介してトラフィックを送信できるようにしたいと考えています。

GSSAPI を使用して、そのようなことを検証するにはどうすればよいですか? ラップ/アンラップなどの方法を認識しています。サービス セッション キーはクライアントのどこに保存されますか? サービスサーバーでチケットを受け取った後、どうすればそれを検証できますか?

いくつかの概念を混同していたら申し訳ありませんが、これほど複雑な API を扱うのは初めてです。

前もって感謝します...

4

1 に答える 1

0
I want to contact another server(the service) who will check my ticket and if valid allow me to send traffic through him.

GSS-API 関数の init_security_context (クライアント側) と accept_security_context() をサービス側で使用します。詳細についてはhttp://web.mit.edu/kerberos/krb5-devel/doc/appdev/gssapi.htmlを参照し、オンラインでいくつかの例を確認してください ( http://docs.oracle.com/cd/E19683-01/ 816-1331/sampleprogs-1/index.html )

GSS では、実際にチケットに触れることはありません。これらの関数を使用すると、クライアントとサービスの間に安全な接続を確立でき (関数はチケットを使用します)、それ以降は続行できます。

于 2014-05-04T12:16:10.410 に答える