c-使用gss-api验证kerberos服务票证



我想制作一个程序,使用gss-api/kerberos进行流量授权。到目前为止,我可以联系SSOS并获得服务票。如果用户没有TGT,我会在代码中执行类似于kinit的操作。

我的代码以用户在其缓存中同时拥有TGT和服务票证结束。以下方法将读取服务器发送的令牌。

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

现在outputBuffer是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/E19683-01/816-1331/sampleprogs-1/index.html)

有了GSS,你实际上不会碰门票。使用这些功能,您可以在客户端和服务之间建立安全连接(这些功能使用票证,ofc),然后您就可以继续了。

最新更新