python:验证kerberos票证

Jos*_*ua 8 python linux kerberos

我想知道 - 如果有人有一个优雅的解决方案来检查使用Python的有效Kerberos票证.无论如何我都没有看到kinit或者klist显示一个票证是否已过期并返回代码,但我可以运行klist并使用正则表达式输出.

小智 7

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

import subprocess

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


Jam*_*ape 3

您有两个选择:第一个是使用“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
Run Code Online (Sandbox Code Playgroud)