2

几种类型的 Kerberos 主体。一个普通的用户princpal就像michael-o@COMPANY.COMKRB_NT_PRINCIPAL。但是像这样的服务HTTP/host.company.com@COMPANY.COM呢?有几种可能的类型,例如KRB_NT_SRV_{INST|HST|XHST}. 什么是正确的?

据我了解INST,仅适用于 TGT。我认为正确的答案应该是HST。我无法在 Oracle 的 JDK 源代码中找到线索,但这两个矛盾点:1 vs. 2

4

2 回答 2

2

RFC 4120第 7.5.8 节定义了名称类型。实际上,大多数东西都使用 KRB_NT_SRV_HST。除了在 RFC 和测试代码中,我从未见过 KRB_NT_SRV_XHST。通常,当第二个组件不是主机名时使用 KRB_NT_SRV_INST。示例包括 TGT 或其他复制服务,无论您获得哪个主机都无关紧要。但是,名称类型并不重要。第 6.2 节对此进行了描述:

与域名的情况一样,需要约定以确保所有人都同意主体名称所暗示的信息。作为主体名称一部分的名称类型字段指示名称所隐含的信息类型。名称类型应该仅被视为解释名称含义的提示。在检查等价性时它并不重要。仅在名称类型上不同的主体名称标识相同的主体。名称类型不划分名称空间。忽略名称类型,没有两个名称可以相同(即,至少有一个组件或领域必须不同)。定义了以下名称类型: 现代 Kerberos 实现确实对 KRB_NT_SRV_HST 进行了特殊处理。尤其,他们更有可能根据此类主体的第二个组成部分中的主机名生成跨领域推荐。因此,如果第一个组件标识一个服务,第二个组件标识一个主机名,那么 SRV_HST 是最好的。

于 2013-11-20T04:15:40.120 回答
0

RFC 1510 对此提供了更好的参考。见http://www.rfc-editor.org/rfc/rfc1510.txt 而不是服务特定的标识符。"

于 2012-07-30T22:23:18.857 回答