一个服务主体名称是从一个概念Kerberos
。它是认证域内特定主机提供的特定服务的标识符。SPN的常见形式是service class
/ fqdn
@ REALM
(例如IMAP/mail.example.com@EXAMPLE.COM
)。还有一些用户主体名称,它们以user
@ 形式标识用户REALM
(或user1
/ user2
@ REALM
,它标识一个直言不讳的关系)。该service class
可宽松地被认为是该协议的服务。Microsoft在本文中列出了 Windows内置的服务类的列表。
每个SPN必须在注册REALM
的密钥分发中心(KDC),并发出一个服务键。该setspn.exe
实用程序可以在\Support\Tools
Windows安装媒体上的文件夹中找到,也可以作为资源工具包下载来使用,它可以操纵SPN到AD中计算机或其他帐户的分配。
当用户访问使用Kerberos进行身份验证的服务(“ Kerberized”服务)时,他们会提供从KDC(在Windows环境中为Active Directory域控制器)获得的加密票证。票证已使用服务密钥加密。通过解密票证,服务证明它拥有给定SPN的密钥。Windows主机上运行的服务使用与AD计算机帐户关联的密钥,但是要与Kerberos协议SPN兼容,必须为主机上运行的每个kerberized服务添加到Active Directory中(上述内置SPN除外)。在Active Directory中,SPN存储在servicePrincipalName
主机计算机对象的属性中。
有关更多信息,请参见:SPN上的Microsoft TechNet文章,Ken Hornstein的Kerberos FAQ。