python:验证kerberos票证

时间:2010-06-29 18:27:58

标签: python linux kerberos

我想知道 - 如果有人有一个优雅的解决方案来检查使用Python的有效Kerberos票证。我没有看到kinitklist,如果票证已过期并返回代码,但我可以运行klist并使用正则表达式输出。

2 个答案:

答案 0 :(得分:7)

另一种选择是检查' klist -s'的退出状态。 看起来更短,不使用krbV:

import subprocess

def has_kerberos_ticket():
    return True if subprocess.call(['klist', '-s']) == 0 else False

答案 1 :(得分:2)

你有两个选择:第一个是使用'klist -s'并检查返回码。更好的选择是使用python-krbV模块:

import krbV

def has_ticket():
    '''
    Checks to see if the user has a valid ticket.
    '''
    ctx = krbV.default_context()
    cc = ctx.default_ccache()
    try:
        princ = cc.principal()
        retval = True
    except krbV.Krb5Error:
        retval = False

    return retval