【问题标题】:Authenticate imaplib.IMAP4_SSL against an Exchange imap server with AUTH=NTLM使用 AUTH=NTLM 针对 Exchange imap 服务器对 imaplib.IMAP4_SSL 进行身份验证
【发布时间】:2010-12-24 09:35:54
【问题描述】:

昨天,IT 部门对 Exchange 服务器进行了更改。我以前可以使用imaplib 从服务器获取消息。但现在看来他们已经关闭了我使用的身份验证机制。从下面的输出中,看起来服务器现在只支持 NTLM 身份验证。

>>> from imaplib import IMAP4_SSL
>>> s = IMAP4_SSL("my.imap.server")
>>> s.capabilities
('IMAP4', 'IMAP4REV1', 'IDLE', 'LOGIN-REFERRALS', 'MAILBOX-REFERRALS', 
'NAMESPACE', 'LITERAL+', 'UIDPLUS', 'CHILDREN', 'AUTH=NTLM')
>>> s.login("username", "password")
...
imaplib.error: Clear text passwords have been disabled for this protocol.

问题:

  1. 如何使用 NTLM 和 imaplib 对 imap 服务器进行身份验证?我假设我需要使用 IMAP4_SSL.authenticate("NTLM", authobject) 来做到这一点?如何设置 authobject 回调。
  2. 由于 SSL/TLS 是连接到服务器的唯一方式,因此重新启用明文密码身份验证不应存在安全风险。正确吗?

连接到 imap 服务器的进程正在 Linux 上运行,顺便说一句。所以我无法使用pywin32。

编辑:

我能够弄清楚 1. 我自己。但是 2.: IMAP over SSL 中的明文密码不是安全问题,是吗?

【问题讨论】:

    标签: python exchange-server imap ntlm


    【解决方案1】:

    我能够使用python-ntlm 项目。

    python-ntlm 为 HTTP 实现 NTLM 身份验证。通过扩展这个项目很容易为 IMAP 添加 NTLM 身份验证。

    我提交了a patch for the project 以及我的补充。

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      相关资源
      最近更新 更多