在本节中,我们将简单了解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

点击下一步;

使用下表设置密码和复选框值;

1541937297689580.png

点击下一步并且点击结束按钮;

3. 生成Keytab文件并映射服务主体

根据如下步骤,生成keytab文件并映射服务主体名称,注意,这些步骤假定服务用户是krbsrv,Realm是example.com;

选择“开始”,“运行”,然后在“打开”字段中输入cmd,打开命令窗口;

在命令窗口中,输入:

1541939560208903.png

该命令参数如下:

1541939646332845.png

提示输入密码时,输入密码, 可以重置密码,不必与创建用户时使用的密码相同;

验证输出是否与以下类似。 如果类似,则映射完成,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文件合并;



关注微信服务号,手机看文章
关注微信服务号,手机看文章