0

背景の詳細​​:

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リクエスト内でそれを実行したいと思います。

どんな助け/ヒントも大歓迎です。

4

0 に答える 0