GSS-APIを使用したKerberosサービスチケットの検証
質問
GSS-API / Kerberosを使用してトラフィック認可を行うプログラムを作成したい。これまでのところSSOに連絡してサービスチケットを入手することができます。ユーザーがTGTを持っていない場合は、コードのKINITに似たものをしています。
私のコードは、TGTとサービスチケットの両方を持つユーザーがそのキャッシュに終了します。次の方法では、サーバーによって送信されたトークンを読みます。
majorStatus = gss_unwrap (&minorStatus,
inContext,
&inputBuffer,
&outputBuffer,
&encrypted,
NULL;
.
今出力バッファはEmpyです。つまり、私は自分自身を渡していません。私は?
私のチケットをチェックし、有効な場合は私が彼を通してトラフィックを送ることを許可する別のサーバー(サービス)に連絡したい。
GSSAPIの使用そのようなことをどのように尊重するのですか?ラップ/アンラップなどのメソッドを知っています。クライアントに保存されているサービスセッションキーはどこにありますか?サービスサーバーでチケットを受け取ったら、どうすれば検証しますか?
私はいくつかの概念を混ぜてすみません、それは私がそのような複雑なAPIを使って働いているのは初めてです。
事前にありがとう...
解決
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/jer9683-01 / 816-1331 / sampleProgs-1 / index.html "rel=" nofollow "> http://docs.oracle.com/cd/e19683-01 / 316-1331/japortprogs-1/index.html )
GSSを使用すると、実際にチケットに触れません。これらの機能を使用して、クライアントとサービス間の安全な接続を確立することができます(関数はチケットを使う、OFC)、その後に進むことができます。