Flask_kerberos KrbError :(“在密钥表中找不到主体”,-1)

时间:2019-04-26 07:26:14

标签: python flask kerberos

我正在尝试将kerberos与flask / python集成在一起。 我已按照以下步骤操作: https://flask-kerberos.readthedocs.io/en/latest/

每当我尝试获取主体详细信息时,我都会得到提到的错误。

principal = kerberos.getServerPrincipalDetails('http', '10.113.41.11')

这是我的密钥表详细信息:

Keytab name: FILE:crme1.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 04/26/2019 12:25:50 crme/master@10.113.41.11
   1 04/26/2019 12:25:50 crme/master@10.113.41.11

1 个答案:

答案 0 :(得分:0)

问题与错误消息所指出的完全相同-您已经告诉kerberos库从密钥表中获取服务主体,但是密钥表中不包含该服务主体的条目。

对于您的示例代码,您的密钥表应包含一个名为“ HTTP / 10.113.41.11”的服务主体。 (请注意,我不建议您为此类地址提供IP地址,因为很难读取IP地址,但我不知道它不起作用的任何原因。)

您需要在KDC上为HTTP / 10.113.41.11生成一个密钥表,然后将该密钥表放到flask主机上。

当这样的错误看起来不清楚时,通常是因为您对Kerberos总图的思维模型丢失了一些东西。您确定您了解服务princiapl是什么,密钥表是什么以及身份验证过程中的工作流程如何?