kinit(v5):获取初始凭据时在 Kerberos 数据库中找不到客户端
Posted
技术标签:
【中文标题】kinit(v5):获取初始凭据时在 Kerberos 数据库中找不到客户端【英文标题】:kinit(v5): Client not found in Kerberos database while getting initial credentials 【发布时间】:2014-12-03 02:52:59 【问题描述】:我正在努力在 obiee 11.1.1.7.14 中配置 SSO,其中我在配置 krb5.conf 和执行 kinit 命令的步骤中遇到问题。
关于 Active Directory 的几点说明
我们有多个域控制器,为了平衡请求,我们使用端口 3269 维护负载平衡器。 并且obiee和MSAD之间的集成已经成功完成,负载均衡器名称为主机,端口为3269。 并且在 demotrust.jks 和 ovd 存储中添加了一些证书,并且在新提供程序中启用了 SSL。 Keytab 文件生成并放置在 obiee 域主目录中,krb5.conf 和 krb5Login.conf 文件相应修改。我创建了 keytab 文件并将其放在 obiee 域主目录中,然后修改 krb5.conf,将 kdc 作为域控制器的 IP 地址之一,将 admin-server 作为域控制器的名称。而在执行
kinit -V -k -t /location/keytabfile.keytab HTTP/obiee_host_name
我遇到错误“kinit(v5): Client not found in Kerberos database while getting initial credentials”。请分享您的想法/建议以解决此问题。
提前致谢
【问题讨论】:
是否需要在安装了 obiee 的 unix 服务器中添加信任证书?但是证书或添加到 obiee 和 ovd 存储的信任库。如果有任何关于它的想法,这将是一个很大的帮助。 【参考方案1】:感谢 Michael-O 的回复。
在讨论解决方案之前,我想发布一些关于 Active Directory 服务器类型和我们连接方式的信息。
我们有一个 Active Directory 服务器,其中使用了 2 个域控制器。使用端口 3269 的负载平衡器从 OBIEE 连接到 Active Directory,类似的连接可以在 krb5.conf 和任何需要的地方使用。 并将基域视为 DOM1,我们所有的组都在子域 SUBDOM 下创建。所以SPN设置在SUBDOM.DOM1.COM。
以下是我们将 AD 与 OBIEE 集成并解决了大部分 kinit 问题的一些建议
-
不要使用绝对路径指定主体名称,只需使用 accout_name@FullyQualifiedDomainName 提及即可。
KRB5.conf 的变化
a) 由于在创建 keytab 和设置 SPN 时将属性“crypto”指定为“all”,因此 krb5.conf 中提到的 keytab 文件中存在的所有加密类型(default_tkt_enctypes 和 default_tgs_enctypes) .
b) 在 [realms] 部分中包含属性 kdc 的主域控制器 IP 地址,这将与第 2 点中指定的 Michael-O 相同。
c) 在 krb5.conf 的 [domain_realm] 中保持为 .subdom.dom1.com=DOM1.COM。
d) 在 krb5.conf 的 [realms] 部分的 admin_server 属性中包含负载均衡器名称的主机名
完成上述所有更改后,大部分 kinit 问题将得到解决,并且 kinit 命令将通过在所需目录中创建初始票证成功执行。
谢谢。
【讨论】:
【参考方案2】:首先,这是服务器故障。
-
3269 不是 Kerberos,这是 SSL 支持的全局目录。纯 LDAP 而不是 Kerberos。这里没什么意思。
不要将 KDC IP 地址放在
krb5.conf
中,而是像 Windows 一样依赖 DNS SRV 记录。
您不能使用 SPN kinit
。 kinit
需要来自 keytab 的 UPN(来自 AD)。如果这是机器帐户,则类似于 accountname$@EXAMPLE.COM
。永远记住,SPN总是绑定到某个帐户,无论是机器帐户还是功能帐户。
【讨论】:
以上是关于kinit(v5):获取初始凭据时在 Kerberos 数据库中找不到客户端的主要内容,如果未能解决你的问题,请参考以下文章
尝试初始化Amazon Cognito凭据提供程序时获取空对象引用