收藏
0有用+1
0
Kerberos身份验证中的服务唯一标识符
展开10个同名词条
服务主体名称(SPN)是Kerberos身份验证协议中用于唯一标识网络服务实例的字符串,其格式通常为“服务名/主机名:端口号” [2] [5]。SPN通过将服务实例与域用户账户绑定,确保客户端和服务端在跨协议交互时实现相互认证 [1] [4]。自SQL Server 2008起,SPN支持扩展至所有协议,管理员可自定义SPN以提升认证可靠性 [1] [9]。在Active Directory域中,SPN的唯一性至关重要,重复SPN会导致身份验证失败,且高版本域控制器(如Windows Server 2012 R2及以上)会主动阻止重复SPN创建 [3] [8]。配置SPN需通过域管理员权限工具(如setspn命令),并涉及密钥表(keytab)的生成与映射 [5] [7]
用    途
服务实例身份验证与加密密钥关联 [2] [4]
组成结构
服务名、主机名、端口号 [5]
唯一性
Active Directory中禁止重复 [3] [8]
跨协议支持
SQL Server 2008起全面支持 [1] [9]
配置要求
需使用DNS名称,禁用IP地址 [4] [6]
创建工具
setspn命令或Kerberos管理工具 [5] [7]

组成与格式

播报
编辑
SPN的标准格式为“服务名/主机名:端口号”,例如,其中主机名需包含DNS域名并与Kerberos领域映射 [5]。部分特定服务(如Content Platform Engine)可能采用等变体格式 [2] [7]

唯一性要求

播报
编辑
在Active Directory域中,SPN必须唯一以避免Kerberos身份验证冲突。Windows Server 2012 R2及后续版本的域控制器会主动检测重复SPN,并生成事件ID 2974或错误代码 [3] [8]。管理员可通过工具检测壳采冲突,或使用选篮企婆组项绕过检查(不推荐) [3]渗踏船犁章罪格夜辩凶辨乘全删她整。

配置与应用

播报
编辑
  1. 1.
    注册流程
    • 在Windows系统中,需通过域管理员权限使用命令将SPN注册至Active Directory [5] [9]
    • 在UNIX系统中,可使用工具或直接操作Kerberos数据库添加服务主体 [5]
  2. 2.
    密钥表与认证SPN需映射至域用户账户,其密码用于生成加密密钥。服务端通过密钥表(keytab)存储密码,并获取Kerberos票证授予票证(TGT)以解密请求 [2] [7]。客户端则通过URL或算法确定目标SPN,并向域控制器请求对应服务的票证 [4] [7]

历史发展

播报
编辑
  • 2008年:SQL Server扩展SPN支持至所有协议,允许管理员自定义SPN [1] [9]
  • 2012 R2起:域控制器强制SPN唯一性,阻止重复注册 [3] [8]
  • 2024年:Azure Stack HCI等平台要求为网络控制器配置SPN,并严格限制使用DNS名称替代IP地址 [4] [6]