如何使用python模拟或委托kerberos?

如何使用python模拟或委托kerberos?,python,kerberos,impersonation,Python,Kerberos,Impersonation,我正在python上设置一个应用程序,它通过thrift连接到hbase。这个节省连接使用kerberos作为服务帐户的身份验证,我需要python应用程序模拟用户进行连接,因为我的公司使用kerberos和ad组来限制对hbase上表的访问 这是一个在linux上运行的python 2.7 flask应用程序 我正在查看kerberos默认库 在第159行,我发现: @param delegated: Optional server context containing delegated

我正在python上设置一个应用程序,它通过thrift连接到hbase。这个节省连接使用kerberos作为服务帐户的身份验证,我需要python应用程序模拟用户进行连接,因为我的公司使用kerberos和ad组来限制对hbase上表的访问

这是一个在linux上运行的python 2.7 flask应用程序

我正在查看kerberos默认库

在第159行,我发现:

@param delegated: Optional server context containing delegated credentials
但我不熟悉如何使用这些凭证

我只想能够使用模拟与hbase连接。 谢谢


注:我对kerberos不太熟悉,因此很抱歉有任何误解。

首先,您需要熟悉委托和代理的概念。Kerberos支持两种不同的“模拟”方式

简短版本:我建议使用受约束的委派,因为它更受约束。我能找到的唯一一个明确支持受限委托的python库是。我用它来模拟使用受约束的委托的用户,效果很好

Long version:如果不很好地理解Kerberos在高层的工作原理,就无法成功地使用Kerberos。它和其他任何东西都不一样。您必须首先了解Kerberos:票证、主体、KDC等。然后,当您理解Kerberos语言时,您需要熟悉GSSAPI的元素,以及它们如何映射到您所学的Kerberos概念。顺便说一句,您在那里找到的任何用于Kerberos的python库都可能是实现GSSAPI规范的MIT krb5库的包装器。这就是为什么我喜欢python GSSAPI库:因为它与底层MIT库的映射相当接近。这意味着我通常可以通过麻省理工学院的文档了解如何做事情,如果有必要,我通常可以从麻省理工学院的邮件列表中获得帮助