在 Python 中通过 SMB 使用 Kerberos 身份验证进行身份验证并将文件传输到共享驱动器

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

我正在编写一个 Python 脚本,通过 SMB 使用 Kerberos 进行身份验证并将文件传输到共享驱动器。我设置了密钥分发中心 (KDC) 和 Kerberos 领域,并且需要连接到 SMB 服务器进行文件传输。以前使用的是 ntlm auth。但由于安全原因,它被网络团队禁用了。

我们已经成功完成了kerberos身份验证,通过java中的smb将文件传输到共享驱动器。但是对于Python来说,gssapi、requests_kerberos等库需要在系统中安装keberos客户端应用程序,并且需要设置路径变量。但这无法完成,因为该 python 将在 aws lambda 中运行。还有其他替代方法吗?

python authentication kerberos smb mit-kerberos
1个回答
0
投票

纯 Python Kerberos 实现确实存在,但使用它们非常罕见1;您可能使用的最相关的 SMB 客户端库,

smbprotocol
,仍然依赖于 python-gssapi 和 python-krb5 模块,它们期望系统范围的 GSSAPI 和 Kerberos 库存在,并且我不知道有任何下降- 合适的替代品。

1(部分原因是与系统 Kerberos 互操作的最简单方法就是仅使用系统 Kerberos – 例如,Java 通常存在无法读取系统 Kerberos 库存储的票证的问题,例如常用的“原生 Go”Kerberos 实现甚至根本不尝试进行太多互操作,这在很大程度上破坏了 Kerberos 的主要优势之一。)

但据我所知,您可以将系统库部署为AWS Lambda函数的一部分(也就是说:我刚刚浏览了Lambda常见问题解答,它特别指出“您可以使用Amazon支持的任何语言启动流程” Linux”,甚至“您可以包含自己的库副本,以便使用与 AWS Lambda 提供的默认版本不同的版本”),因此应该可以仅捆绑 MIT Krb5 或您需要的任何内容。

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