2017-08-02 9 views
2

Windows上のPythonから自動NTLM認証を使用するにはどうすればよいですか?Windows上のPythonを使用した自動NTLM

パスワードをハードコーディングせずに、WindowsからTFS REST APIにアクセスできるようにしたいのですが、Webブラウザ(firefoxのnetwork.automatic-ntlm-auth.trusted-urisなど)と同じです。

答えて

3

私はので、私のために素晴らしい作品this answerが見つかりました:

  1. は、私が唯一のWindowsから実行するつもりですが、その可搬性はそう、
  2. 応答は、単純なJSON文書である問題ではありません開いているセッションを保存する必要はありません

ネイティブ認証を処理するためにWinHTTP.WinHTTPRequest.5.1 COMオブジェクトを使用しています何:

import win32com.client 
URL = 'http://bigcorp/tfs/page.aspx'  
COM_OBJ = win32com.client.Dispatch('WinHTTP.WinHTTPRequest.5.1') 
COM_OBJ.SetAutoLogonPolicy(0) 
COM_OBJ.Open('GET', URL, False) 
COM_OBJ.Send() 
print(COM_OBJ.ResponseText) 
0

NTLM資格情報は、対話型ログオン処理中に取得されたデータに基づいており、パスワードの一方向ハッシュを含みます。あなたは信任状を提供する必要があります。

Pythonには、HTTP NTLM認証を可能にするrequests_ntlmライブラリがあります。

あなたは、TFSのREST APIにアクセスするには、この記事を参照することができます。 Python Script to Access Team Foundation Server (TFS) Rest API

あなたはTFS 2017またはVSTSを使用している場合、あなたはRESTリクエストと一緒に基本認証HTTPヘッダーにPersonal Access Tokenを使用しようとすることができます。

+0

ありがとう@アンディーMSFTしかし、あなたが与えた例では、私が避けようとしているのはユーザー名とパスワードがハードコードされています。 – liorda

+0

@liorda NTLM資格情報は、対話型ログオンプロセス中に取得されたデータに基づいており、パスワードの一方向ハッシュを含みます。あなたは信任状を提供する必要があります。 –

+0

TFSウェブページにアクセスする際、Firefoxがどのように認証されますか?明示的にログインしたり、パスワードを入力したことはありません。 – liorda

関連する問題