测试Kerberos和NTLM身份验证API:分步指南
Kerberos 是很多公司广泛使用的安全认证协议,对于需要认证的端点测试来说必不可少。然而,全球最知名的 API 测试工具 Postman 目前并不支持测试使用 Kerberos 认证的端点,这对于很多公司来说无疑是不友好的。
幸运的是,我发现了一款可以实现 Kerberos 身份验证的免费软件 - Apidog。本文将详细介绍如何使用 Apidog 测试经过 Kerberos 身份验证的端点,旨在以不高的成本增强您的测试流程。
什么是 Kerberos?
Kerberos 是麻省理工学院 (MIT) 开发的一种网络安全认证协议,目前已成为微软 Windows 内置的认证技术,并被许多组织用于单点登录 (SSO),将用户身份数据安全地传输到应用程序。
Kerberos 身份验证如何工作?
Kerberos 身份验证是一个复杂的过程,我们必须了解几个组成部分:
为了更好地理解这些组件之间的关系,我们可以将 Kerberos 身份验证过程简化为以下步骤:
在这个过程中,KDC作为一个整体,包含AS和TGS两个主要功能组件,而TGT和服务票证则是这个过程中用来证明身份和授权访问的关键凭证。
这种设计使得用户只需进行一次初始认证(获取TGT),并在TGT的有效期内多次请求不同的服务票证,在实现单点登录(SSO)功能的同时,保持了高安全性。

Kerberos 身份验证的好处
使用 Kerberos 作为身份验证服务具有许多优势,特别是在安全性方面:
这些优势使得Kerberos成为企业级身份验证的首选,尤其是在安全性、效率和用户体验至关重要的Windows环境和大型网络中。
在 macOS 上使用 Apidog 测试经过 Kerberos 身份验证的 API
让我们逐步了解使用 Apidog 在 macOS 上测试经过 Kerberos 身份验证的 API 端点的实际步骤。
步骤 1:准备
采用 Kerberos 身份验证的公司通常会在其 AD 中为每个员工设置帐户。这些组织向员工提供与 Kerberos 相关的必要信息,这些信息通常包括:
这些信息使员工能够使用 Kerberos 协议进行身份验证,从而授予他们安全访问各种公司网络资源和服务的权限。
需要注意的是,由于浏览器限制,Apidog 的网页版不支持此功能。因此,**请确保您已下载最新版本的 Apidog 桌面客户端**。
步骤2:修改本地DNS
使用 Kerberos 身份验证的端点通常在内部网络内访问。因此,我们需要配置 DNS 服务器以指向 AD 服务器地址。此配置有助于后续访问这些端点。
步骤3:配置/etc/krb5.conf文件
`krb5.conf` 文件是 Kerberos 的主要配置文件,通常位于 `/etc/krb5.conf`。在这里您可以配置 KDC 服务器地址、AS 和 Kerberos 领域主机名的映射。
通过在终端中输入以下命令来检查此文件是否存在于您的机器上:
cat /etc/krb5.conf
如果显示“没有此文件或目录”,则需要创建此文件。
如果您安装了 nano,您可以直接在 nano 中创建和编辑文件。当然,您可以随意使用您熟悉的任何文本编辑器。
nano /etc/krb5.conf
然后,在文件中保存以下配置内容:
[libdefaults] default_realm = APIDOG.LOCAL # Your Kerberos realm name, typically the uppercase form of your organization's domain name [realms] EXAMPLE.COM = { kdc = ills7i8hyt2.apidog.local # KDC server address, assumed here to be the FQDN of the domain controller admin_server = ills7i8hyt2.apidog.local # Usually the same as the KDC } [domain_realm] .apidog.local = APIDOG.LOCAL # Mapping between domain name and Kerberos realm name, left side is lowercase apidog.local = APIDOG.LOCAL
保存后,您已成功在您的机器上配置了“/etc/krb5.conf”文件,可以继续下一步。
步骤 4:登录 AD 账户
macOS 附带了用于 Kerberos 的 CLI 和 GUI 工具。GUI 工具称为 Ticket Viewer。我们可以使用这些工具中的任何一个来登录。
在 Spotlight 搜索中输入“Ticket Viewer”打开 Ticket Viewer。选择“添加身份”,输入公司提供的账户和密码,即可成功登录 AD。请注意,登录账户有时间限制;到期后,您需要点击刷新按钮来“续订”身份。

或者,您也可以直接使用 CLI 登录:
# Obtain a Ticket for an AD account kinit# Check local Tickets klist
登录成功后,您可以在Apidog中测试端点。
步骤 5:在 Apidog 中配置 Auth
打开 Apidog 并创建“新请求”。

输入您要测试的 API 端点 URL,然后点击下面的“Auth”,并选择“Kerberos”作为类型。

可以看到配置Kerberos认证只需要填写一个SPN(Service Principal Name),SPN主要由KDC服务器地址和Kerberos realm name组成,在输入框中输入`HTTP` + `/` + `KDC服务器地址` + `@` + `Kerberos realm name`。

填写完毕后,点击发送。您应该会看到成功的响应,然后就可以继续测试了。

如果遇到“401”错误,建议验证以下几点:

系统地审查这些元素可以帮助识别和解决身份验证失败的根本原因,从而促进成功的 API 访问。
在 Windows 上使用 Apidog 测试经过 Kerberos 身份验证的 API
对于 Windows 用户来说,这是一个好消息!如果您已经是域的一部分,则可以立即开始在 Apidog 中测试经过 Kerberos 身份验证的 API,无需任何复杂的配置。
还不是域名的一部分?别担心!这是一个简单的过程:
虽然流程已经简化,但在尝试加入域之前,确保您拥有必要的权限和正确的凭据至关重要。有了这些,您就可以立即启动并运行,并准备在 Kerberos 身份验证环境中利用 Apidog 强大的 API 测试功能。
使用 Apidog 测试 NTLM 认证的 API
Windows Server 环境通常同时使用 Kerberos 和 NTLM 身份验证方法。虽然 Windows 2000 中引入的 Kerberos 因其更强大的安全性而成为首选,但 NTLM 仍然因其在小型网络中的速度和与旧系统的兼容性而备受青睐。
许多公司同时使用这两种协议,当 Kerberos 出现故障时,NTLM 可作为备份,确保最佳的灵活性。
Apidog 支持两种身份验证方法,其中 NTLM 配置特别简单 - 只需一步,并且在 Windows 和 macOS 系统上的工作方式相同。
步骤 1:准备
NTLM 身份验证不需要那么多信息;我们只需要公司提供的账户和密码。
并且,不要忘记确保您已经下载并注册了最新版本的 Apidog。
步骤2:修改本地DNS
与 Kerberos 身份验证一样,由于端点通常在内部访问,因此我们需要将 DNS 服务器配置为 AD 服务器地址。
步骤 3:在 Apidog 中配置 Auth
令人惊喜的是,NTLM认证不需要任何额外的配置,我们可以直接在Apidog中进行配置并完成测试。
在“身份验证”部分,选择“NTLM 身份验证”作为类型。您将看到两个需要填写的文本框:用户名和密码。只需输入您的帐户凭据即可。

点击“发送”,就大功告成了!太简单了!
结论
在本文中,我们探讨了如何使用 Apidog 测试 Kerberos 和 NTLM 身份验证 API。事实证明,Apidog 是一种多功能且用户友好的工具,可用于测试这两种身份验证方法。它提供了一个简单的 Kerberos 身份验证配置过程,这对于在其他 API 测试工具中遇到困难的组织尤其有益。
由于 API 安全性继续成为组织关注的重点,像 Apidog 这样简化安全身份验证方法测试的工具变得越来越有价值。无论您使用的是尖端的 Kerberos 实现还是维护依赖 NTLM 的系统,Apidog 都能提供所需的功能,确保您的 API 正确且安全地运行。