2013-04-22 87 views
1

我尝试为我的应用程序编写Kerberized登录模块,但我有一些概念不清楚。Kerberos获取初始凭证

我正在通过从Apache HTTP服务器读取源代码mod_auth_kerb(找不到更好的起点,没有在线发现API教程或演示代码)来了解MIT Kerberos API。从中发现,我需要通过密钥表文件或用户输入的密码获得初始机密。我很困惑的是,在登录操作系统时我已经有kinit,并且我确定我有krbtgt/[email protected]负责人klist的票证,那么是否需要我通过krb5_get_init_cred_password/keytab再次获得初始机密?

  • 如果是的话,因为我的OS帐户是Kerberos中一个有效的校长,我 有买票到TGS,我为什么要再次获得初始机密 ?这不违反Kerberos的单点登录功能吗?
  • 如果不是,我如何才能通过代码获得主体 krbtgt/[email protected]的票证,或者说,我怎样才能将我的 登录帐户与相应的Kerberos主体相关联?

顺便说一下,有没有好的MIT Kerberos API教程可以在线?虽然官方开发者手册是完整的,但从它开始,感觉就像从字典中学习第二种语言:)。

非常感谢你和最好的问候!

回答

4

有两件事: 1. kinit是一种实用工具,它在代码的内部使用krb5_get_init_cred_pa​​ssword来获取凭证。 2.然后,您可以使用kvno实用程序使用使用kinit获取的票证来获取服务票证。 例如:

kinit -f [email protected] 

通过这一点,你会得到管理员的车票。现在,如果你想使用这张票的一些服务让我们说CIFS。

kvno [-k <keytab file> | -c <credential cache>] -u <client> -P service 

您可以使用凭证缓存或使用ktutil实用程序创建的密钥表文件。

其次,如果你想控制一切从代码,你需要了解KRB API和功能,如:

krb5_get_init_creds_password

kerb_get_credentials

krb5_get_crendentials_for_user

krb5_get_crendentials_for_proxy 等。

你可以简单地看到使用kinit和KVNO的源代码从MIT Kerberos的库,以获得更多的理解如何将这些功能的使用等

ANKUR

+0

感谢提的工具的源代码,我完全放在一边:页。 – 2013-04-22 14:59:21

相关问题