我现在正在使用 GSSAPI 对跨平台应用程序进行 Kerberized。 虽然我不太清楚 UPN 和 SPN 之间的区别。
开发环境是 CentOS 6.4 上的 Samba4 AD DC 服务器,带有 Windows Server 2008 R2 域中的成员盒,例如 Examples.COM (您可能好奇为什么不直接使用 Win2008 作为 DC。正如我之前所说,该应用程序是跨平台的,我现在正在此设置中进行测试。正常的 Win DC-Linux MEM 设置工作正常。)。
我创建一个新用户 foobar:users 来运行该应用程序。
当我使用 foobar@EXAMPLE.COM
(即 UPN)根据 Kerberos 对应用程序进行身份验证时,我不断收到
Kerberos: Principal may not act as server ERROR
关注 thread在 Samba 邮件列表上,我认为我应该使用 samba-tool
app/dc.example.com
samba-tool spn add app/dc.example.com foobar
这次我会收到另一个错误
Samba4 KDC - no such entry found in hdb
我的问题是 UPN 和 SPN 之间有什么区别?
通过 samba-tool spn list foobar
,它显示 foobar
has servicePrincipalName app/dc.example.com
。
如何将 UPN 与 SPN 关联?
非常感谢。
最佳答案
简单地说,
UPN 检索 SPN 的服务票证以使用该实际服务。
如果您的samba-tool
调用您的请求 samba 来注册 SPN app/dc.example.com
到 UPN foobar
。由于您没有提供 SPN 和 UPN 的领域,Samba 将采用执行此调用的计算机的默认领域。在 Windows 术语中,您主要将 SPN 绑定(bind)到计算机 UPN。始终是:<name>$@<REALM>
。请注意美元符号。
关于Kerberos:UPN 和 SPN 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18234192/