背景の詳細:
2FA の SSO を備えた内部サイトがあり、クライアント証明書も必要です。ジョブを送信するフォームがあります。CLIから実行してプロセスを自動化しようとしています。これまでのところ、curl を使用してジョブを送信できました。動作させるには、ブラウザ セッションから Cookie を抽出する必要があります。したがって、次のcurlコマンドは期待どおりに実行されています
curl -b cookies.txt -k --cert cert --key key -F 'field=value' url
私は今、同じものを Python requests 呼び出しに変換しようとしました。ただし、Cookie を取得していないようです。これは、SSO ログイン ページに移動するスクリプトの出力からわかります。ここに私がこれまでに持っているスクリプトがあります
from requests_toolbelt import MultipartEncoder
import requests
import http.cookiejar
cookies = http.cookiejar.MozillaCookieJar('cookies.txt')
cookies.load(ignore_expires=True)
cert = ('cert','key')
m = MultipartEncoder(
fields={'field': 'value'}
)
headers = {
'Content-Type': m.content_type,
}
r = requests.request('POST', url, data=m,
headers=headers, cookies=cookies, cert=cert, verify=False)
私ができることから、すべてのcurlオプションを一致させました。しかし、前述のように、Cookie を無視しているようで、SSO を実行しようとします。これを実行する方法はありますか?他に何も機能しない場合は、サブプロセスを介してカールを実行する必要があります。しかし、Pythonリクエスト内でそれを実行したいと思います。
どんな助け/ヒントも大歓迎です。