我现在正在使用 GSSAPI 对跨平台应用程序进行 kerberizing。
虽然我不清楚UPN和SPN之间的区别。

开发环境是 CentOS 6.4 上的 Samba4 AD DC 服务器,带有 Windows server 2008 R2 域中的成员框,比如EXAMPLE.COM(你可能会好奇为什么不直接使用 Win2008 作为 DC。正如我之前所说,应用程序是跨平台的,我现在正在此设置中进行测试。正常的 Win DC-Linux MEM 设置工作正常。)。
我创建了一个新用户 foobar:users 来运行该应用程序。
当我使用 [email protected] ,即 UPN,针对 Kerberos 验证应用程序时,我不断收到



在 Samba 邮件列表上的 thread 之后,我想我应该使用 app/dc.example.com 为 UPN 创建一个服务主体名称说 samba-tool

samba-tool spn add app/dc.example.com foobar

这次我会收到另一个错误



我的问题是 UPN 和 SPN 之间有什么区别?
通过 samba-tool spn list foobar ,它说 foobar 有 servicePrincipalName app/dc.example.com
如何将 UPN 与 SPN 关联?

非常感谢你。

最佳答案

简单的说,

  • UPN: 执行客户端对某些服务的请求的实体。实体可以是人,也可以是机器。见 here
  • SPN: 处理特定服务请求的实体,例如 HTTP、LDAP、SSH 等。仅限机器。见 here

  • UPN 检索 SPN 的服务票证以使用该实际服务。

    如果您的 samba-tool 调用您的请求 samba 将 SPN app/dc.example.com 注册到 UPN foobar 。由于您尚未提供 SPN 和 UPN 的领域,Samba 将假定执行此调用的机器的默认领域。在 Windows 中,您通常将 SPN 绑定(bind)到机器 UPN。始终是: <name>$@<REALM> 。注意美元符号。

    10-05 18:57