给定kerberos“renew until”auto这样的关键字,找不到可以解决我问题的线程,所以在这里发布。
我创建了一个keytab,其中包含以下票证生存期信息
Valid starting: 09/14/2018 13:05:01
Expires: 09/15/2018 13:05:01
renew until: 09/19/2018 09:26:37
基于hadoop的kerberos票证自动续签
我可以续票延长有效期没有问题。
现在另一个问题是续费,直到7天后到期。
我的问题是:
哪个命令与 kinit -R
可以自动延长续期到日期,这样我就不需要重新发行了 kinit -kt mine.keytab my-principal
为了给我的钥匙扣买张新票?
或者任何能达到同样效果的api?使用以下hadoop api,基于https://www.cloudera.com/documentation/enterprise/5-14-x/topics/sg_kerberos_troubleshoot.html,我可以执行代码,但在更新之前找不到更新。
UserGroupInformation.loginUserFromKeytab(principal, keyPath)
val currentUser = UserGroupInformation.getCurrentUser()
currentUser.checkTGTAndReloginFromKeytab
val currentUser1 = UserGroupInformation.getLoginUser
currentUser1.checkTGTAndReloginFromKeytab`
``` `klist` 显示“续订到”部分中的日期保持不变。
编辑:格式
1条答案
按热度按时间hof1towb1#
可再生TGT
当票证是可更新的时,会话密钥会定期刷新,而不会发出全新的票证。如果kerberos策略允许可更新的票证,kdc将在它发出的每个票证中设置一个可更新标志,并在票证中设置两个过期时间。一个过期时间限制票证的当前示例的生命周期;第二个过期时间对票证的所有示例的累积生存期设置限制。
票证的当前示例的过期时间保存在end time字段中。与不可更新的票证一样,结束时间字段中的值等于开始时间字段中的值加上kerberos策略指定的最长票证生存期的值。持有可更新票证的客户机必须在到达结束时间之前将其发送给kdc以进行更新。当kdc收到一张更新的票证时,它会检查renew till字段中保存的第二个过期时间的值。此值在首次发行票据时设置。它等于票证开始时间字段中的值加上kerberos策略指定的最大累积票证生存期的值。当kdc更新票证时,它会检查以确定续订时间是否尚未到达。如果没有,kdc将发布一个新的票证示例,其中包含一个更晚的结束时间和一个新的会话密钥。
这意味着管理员可以设置kerberos策略,例如,每天必须以相对较短的时间间隔续订票据。续签票证时,会发出一个新的会话密钥,从而使受损密钥的值最小化。例如,管理员还可以设置一周或一个月的相对较长的累积票证寿命。在这段时间结束后,票将过期,不再有效续期。
所以renew-until是票证的一部分,出于安全原因,它的最大值在服务器端受到限制。设计上没有解决办法。