【问题标题】:How to impersonate or delegate on kerberos with python?如何使用 python 模拟或委托 kerberos?
【发布时间】:2019-11-24 06:08:57
【问题描述】:

我正在 python 上设置一个应用程序,该应用程序通过 thrift 连接到 hbase。此节俭连接使用 kerberos 作为服务帐户的身份验证,我需要 python 应用程序连接模拟用户,因为我的公司使用带有广告组的 kerberos 来限制对 hbase 上表的访问。

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

我正在查看 kerberos 默认库 https://github.com/apple/ccs-pykerberos/blob/master/pysrc/kerberos.py

在第 159 行我发现了这个:

@param delegated: Optional server context containing delegated credentials

但我不熟悉如何使用此凭据。

我只是希望能够使用模拟连接到 hbase。 谢谢。

P.S:我对 kerberos 不太熟悉,如有任何误解,请见谅。

【问题讨论】:

    标签: python kerberos impersonation


    【解决方案1】:

    首先您需要熟悉委托和constrained delegation 的概念。这是 Kerberos 支持“模拟”的两种不同方式。

    短版:我建议使用约束委派,因为它受到更多限制。我能找到的唯一一个绝对支持约束委派的python库是python-gssapi。我使用它来模拟使用约束委派的用户,并且效果很好。

    长版:如果不充分了解 Kerberos 的工作原理,就无法成功使用它。它不像其他任何东西。您必须首先familiarize yourself with the essential concepts 的 Kerberos:票证、主体、KDC 等。然后,当您了解 Kerberos 语言时,您需要熟悉 GSSAPI 的元素,以及它们如何映射到您所掌握的 Kerberos 概念学到了。 AFAIK,您在那里找到的任何用于 Kerberos 的 python 库都可能是实现 GSSAPI 规范的 MIT krb5 库的包装器。这就是我喜欢 python-gssapi 库的原因:因为它与底层 MIT 库的映射非常接近。这意味着我通常可以使用 MIT 文档弄清楚如何做事,如果需要,我通常可以从 MIT 邮件列表中获得帮助。

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 2022-01-13
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 2013-06-29
      • 2020-05-16
      相关资源
      最近更新 更多