7

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

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

Kerberos:主体可能无法充当服务器错误

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

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

这次我会收到另一个错误

Samba4 KDC - 在 hdb 中找不到这样的条目

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

非常感谢。

4

1 回答 1

12

简单的说,

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

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

如果您samba-tool致电您的请求 samba 将 SPN 注册app/dc.example.com到 UPN foobar。由于您没有提供 SPN 和 UPN 的领域,Samba 将假定执行此调用的机器的默认领域。在 Windows 术语中,您主要将 SPN 绑定到计算机 UPN。这总是:<name>$@<REALM>。注意美元符号。

于 2013-08-14T22:04:48.757 回答