用python和kerberos验证凭证

问题描述 投票:0回答:1

我正在为大学做一个项目。我设置了一个服务器,它必须验证几个凭证(用户名和密码)与kerberos 5服务器(这是一个独立的服务器在我的网络中)。我不需要对这些用户的权限进行任何操作,只是检查用户名和密码的组合是否有效。我的项目是在Ubuntu 18.04服务器上用python编写的。

这个问题涉及到一个 前题 我的

我设法用 gssapi 验证了证书,但有人告诉我。

只是一个无关紧要的说明 -- 我不知道你的项目是如何结构的, 但如果你在服务器上做这个密码验证, 那么它并没有很好地利用Kerberos...

什么是正确的a更好的验证凭证的方法?

我就是这样设法验证的。

import gssapi

server_name = gssapi.Name('krbtgt/DOMAIN.COM@')

username = "USERNAME"
password = "PASSWORD"

user = gssapi.Name(base=username, name_type=gssapi.NameType.user)
bpass = password.encode('utf-8')
result = False
try:
    creds = gssapi.raw.acquire_cred_with_password(user, bpass, usage='initiate')
    creds = creds.creds
    context = gssapi.SecurityContext(name=server_name, creds=creds, usage='initiate')
    result = True
except AttributeError:
    print("AttributeError")
except gssapi.exceptions.GSSError as er:
    print(er)
# acquire_cred_with_password returns a wrapper, we want the creds
# object inside this wrapper
print(result)
python kerberos gssapi
1个回答
0
投票

gssapi.raw.acquire_cred_with_password(user, bpass, usage='initiate') 完全足以获得TGT。没有其他必要。

© www.soinside.com 2019 - 2024. All rights reserved.