使用 krb5 API 查找领域的 KDC

Use krb5 API to find KDC for a realm

我正在使用 krb5 库用 C++ 开发一个基于 Kerberos 的应用程序。它还旨在支持多领域 kerberos,因此它自己的服务在 HADOOP.COM 等领域中运行,用户从领域 USERS.COM 连接。出于切线目的,我需要知道 USERS.COM 领域的 KDC。我知道信息位于 krb5.conf 的 "realms" 部分,但我需要能够以编程方式查找它。

所以问题是,给定一个领域,有没有办法只使用 krb5 API 查找关联的 KDC(即不手动解析 krb5.conf 文件)

我引用的 API 已记录在案 here

没有 public API 可以执行此操作。 k5_locate_kdc 函数(在 MIT 实现中;Heimdal 的方法略有不同)是一个内部函数。使事情变得更复杂的是,可以通过多种方式定位 KDC:

  • krb5.conf
  • DNS SRV 记录
  • 其他 KDC 位置插件