为什么"本地领域推荐" MIT-Kerberos失败了吗?

时间:2017-06-17 18:44:48

标签: kerberos mit-kerberos

我尝试在2个KDC(EXAMPLE.COM和HADOOP.COM)之间设置跨领域身份验证,以便领域EXAMPLE.COM中的用户可以访问HADOOP.COM中的服务。我已经为我的krb5.conf添加了一个capaths部分:

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h 
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = { 
  kdc = examplekdc.example.com
  admin_server = examplekdc.example.com
 }

 HADOOP.COM = { 
  kdc = hadoopkdc.hadoop.com
  admin_server = hadoopkdc.hadoop.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

[capaths]
 HADOOP.COM = { 
  EXAMPLE.COM = . 
 }

我还将所需的校长krbtgt/HADOOP.COM@EXAMPLE.COM添加到了KDC的两个部门。到目前为止,一切正常,我的应用程序能够做到它所需要的。

我关注的是我在EXAMPLE.COM上的跟踪日志中的以下行:

[158447] 1497720267.441664: TGS request result: -1765328377/Server myservice/hadoopkdc.hadoop.com@EXAMPLE.COM not found in Kerberos database
[158447] 1497720267.441680: Local realm referral failed; trying fallback realm HADOOP.COM

我的问题如下:

  1. 这个本地领域到底是什么?这是kerberos的行话吗? 对于跨域请求?
  2. 为什么本地领域推荐会失败?如何明确指定我希望如何进行本地域引用?
  3. 后备王国的含义是什么?我该如何指定一个?
  4. 从我的krb5.conf可以看出,我还没有明确指定回退领域或推荐,所以我认为kerberos正在为它们选择默认值。我想知道如何明确指定它们。

1 个答案:

答案 0 :(得分:0)

[158447] 1497720267.441664: TGS request result: -1765328377/Server myservice/hadoopkdc.hadoop.com@EXAMPLE.COM not found in Kerberos database

您的客户向KDC询问了服务主管。你的KDC不知道如何找到该校长的领域。 我相信,如果您在[domain_realms] KDC使用的krb5.conf部分的EXAMPLE.COM部分添加条目,其中包含

等内容
[domain_realms]
    .hadoop.com = HADOOP.COM

然后,KDC将知道以hadoop.com领域结尾的主机将由HADOOP.COM领域提供服务,并将自行尝试推介。

[158447] 1497720267.441680: Local realm referral failed; trying fallback realm HADOOP.COM

当客户端在第一次请求时从KDC收到错误时,会在try_fallback中的src/lib/krb5/krb/get_creds.c函数中生成此函数。 客户在猜测服务领域方面比KDC更积极,因为如果客户端无法猜测,请求将失败。 客户端尝试HADOOP.COM,因为它最后的猜测是剥离主机名并尝试使用大写域名。 如果您正确配置KDC,那么您将保存一个请求。与MIT Kerberos相比,Windows主机可能更关心KDC的正确配置。