我尝试为我的应用程序编写一个 Kerberized 登录模块,但我有一些不清楚的概念。
我正在通过mod_auth_kerb
从 Apache HTTP 服务器读取源代码来学习 MIT Kerberos API(找不到更好的起点,没有在线找到 API 教程或演示代码)。从中,我发现我需要通过密钥表文件或用户输入的密码来获取初始机密。让我很困惑的是,我kinit
在登录操作系统的时候已经有了,而且我确定我有principal krbtgt/LOCALHOST@LOCALHOST
by的票klist
,那么我是否需要再次获得初始机密krb5_get_init_cred_password/keytab
?
- 如果是,既然我的操作系统帐户是 Kerberos 中的有效主体,并且我已经获得了 TGS 的票证,我为什么要再次获得初始机密?这不违反 Kerberos 的单点登录功能吗?
- 如果不是,我如何通过代码获取主体票证
krbtgt/LOCALHOST@LOCALHOST
,或者说,我如何将我的登录帐户与相应的 Kerberos 主体关联起来?
顺便说一句,网上有没有好的 MIT Kerberos API 教程?虽然官方的开发者手册是完整的,但从一开始感觉就像从字典里学习第二语言:)。
非常感谢和最好的问候!