AUTH=NTLM을 사용하여 Exchange imap 서버에 대해 imaplib.IMAP4_SSL을 인증합니다.

StackOverflow https://stackoverflow.com/questions/1866460

문제

어제 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. imaplib과 함께 NTLM을 사용하여 imap 서버에 어떻게 인증합니까?이 작업을 수행하려면 IMAP4_SSL.authenticate("NTLM", authobject)를 사용해야 한다고 가정합니까?authobject 콜백을 어떻게 설정합니까?
  2. SSL/TLS는 서버에 연결하는 유일한 방법이므로 일반 텍스트 비밀번호 인증을 다시 활성화해도 보안 위험이 발생하지 않습니다.옳은?

imap 서버에 연결하는 프로세스는 Linux, BTW에서 실행됩니다.그래서 pywin32를 사용할 수 없습니다.

편집하다:

1을 알 수 있었습니다.내 자신.하지만 2는 어떻습니까?:SSL을 통한 IMAP의 일반 텍스트 비밀번호는 보안 문제가 아닙니다. 그렇죠?

도움이 되었습니까?

해결책

나는 사용할 수 있었다 파이썬-ntlm 프로젝트.

python-ntlm HTTP에 대한 NTLM 인증을 구현합니다.이 프로젝트를 확장하여 IMAP에 대한 NTLM 인증을 쉽게 추가할 수 있었습니다.

나는 제출했다 프로젝트용 패치 내 추가로.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top