在本节中,我们将简单了解Microsoft Active Directory环境中如何启用Kerberos身份验证。
内容
1. Microsoft Active Directory 简述
本节将简要介绍如何为Kerberos身份验证配置Microsoft Active Directory,关于 Microsoft Kerberos 的详细信息,请参阅https://docs.microsoft.com/en-us/windows/desktop/secauthn/microsoft-kerberos。 如要在Microsoft Active Directory中启用Kerberos身份验证,需要如下步骤:
-
为Kerberos单点登录 (SSO)添加服务用户;
-
创建 Keytab文件并将凭据映射到服务主体 (Service Principal);
2. Kerberos单点登录添加服务用户
按照如下步骤添加服务用户:
? 在Windows 2008域控制器上,选择“开始”,“控制面板”,“管理工具”,“Active Directory用户和计算机”;
? 从菜单栏中,选择“操作”,“新建”,“用户”;
? 在“Full name”和“User logon name”字段中输入值,应使用组织内部命名的约定, 例如:
Full name:Kerberos Server
User Logon name:krbsrv
? 点击下一步;
? 使用下表设置密码和复选框值;
? 点击下一步并且点击结束按钮;
3. 生成Keytab文件并映射服务主体
根据如下步骤,生成keytab文件并映射服务主体名称,注意,这些步骤假定服务用户是krbsrv,Realm是example.com;
? 选择“开始”,“运行”,然后在“打开”字段中输入cmd,打开命令窗口;
? 在命令窗口中,输入:
该命令参数如下:
? 提示输入密码时,输入密码, 可以重置密码,不必与创建用户时使用的密码相同;
? 验证输出是否与以下类似。 如果类似,则映射完成,keytab文件krb5.keytab位于C:\ temp目录中;
Key created. Output keytab to c:\temp\krb5.keytab: Keytab version: 0x502 keysize 83 HTTP/www.example.com@EXAMPLE.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 15 etype 0x17 (RC4-HMAC) keylength 16 (0xdd74540caa4a230af2ed75558a37995d)
4. 使用SetSPN设置Active Directory服务主体
SPN是对特定服务的引用,例如,SQL Server的实例或IIS运行的Web应用程序。
建立Kerberos身份验证方法时的常见配置步骤是使用服务主体名称或SPN来标识特定服务。SetSPN是Windows Server 2008和Server 2008 R2的自带应用程序。可以使用该命令来设置SPN。
如何为Active Directory帐户设置SPN
为Active Directory帐户设置SPN的最简单方法是使用SetSPN实用程序,示例如下:
SetSPN -a HTTP / myweb.contoso.com contoso \ MyWebAppPoolID SetSPN -a HTTP / myweb contoso \ MyWebAppPoolId
该命令将Web应用程序的SPN设置为用于应用程序标识的服务帐户。
SetSPN命令支持的option 如下所示:
-a向帐户添加条目(显式)
-s向帐户添加条目(仅在首先检查重复项后)
-d从帐户中删除条目
-x在域中搜索重复的SPN
-q查询特定SPN的域
5. KTPASS 命令简介
在Active Directory域服务中配置服务主体名称,并生成包含服务的共享密钥的keytab文件,可以使用ktpass命令。 keytab文件基于麻省理工学院(MIT)的Kerberos身份验证协议实现。该命令如下所示:
以下示例说明如何在用户Sample1的当前目录中创建Kerberos .keytab文件:
? 使用“Active Directory用户和计算机”创建用户帐户。例如,创建名为Sample1的帐户;
? 通过在命令提示符处键入以下内容,使用Ktpass为用户帐户映射SPN;
ktpass / princ host/Sample1.contoso.com@CONTOSO.COM / mapuser Sample1 / pass MyPas $ w0rd / out Sample1.keytab / crypto all / ptype KRB5_NT_PRINCIPAL / mapop set
需要注意:
-
无法将多个服务映射到同一个用户帐户;
-
可以将keytab文件与运行在Windows操作系统的主机上的/Etc/Krb5.keytab文件合并;