Closed1
PythonのrequestsモジュールでBasic認証する際には気を付ける
よくある https://username:password@example.com/path/to/endpoint
みたいにBasic認証できるところは多いと思う。
また、もう一つ(こっちが正当なやり方)のやり方としてAuthorization HeaderにBasic xxxxとするやり方がある。まぁ詳しくはRFCでもmozillaでも読んで欲しい。
今回、Pythonのrequestsモジュール(モジュールやパッケージ、ライブラリの意味合いがよくわかってない、そのくらいPython初心者です)で一つ目の方法でBasic認証をしようとした。
また、諸事情でAuthorization Headerでは他の認証方法を指定していた。
すると、なんかサーバ側からエラーが返ってきた。このサーバの管理は他のチームがしており、ログをみることが出来なかった。よって、調査はだいぶ遅れてしまった。
しばらく調査したところ、Authorizatin HeaderがBasic xxxxになっていることが分かった。
そう、PythonのrequestsモジュールはURLに含んだusernameとpasswordを勝手に?Authorization Headerとしてセットするらしい。
これによって元々別の認証方法を埋め込んでいたはずが、上書きされてしまい認証が通っていなかった。
どうもこれを回避する方法はない(というより、そういう状況はあまりない?)みたいだったので、他の手段を検討 / 実装した。
Python、仲良くなれませんでした。
このスクラップは2022/11/01にクローズされました