PythonでWebリクエストをするときにいろいろな認証を通す方法
PythonでWebリクエストをするときにいろいろな認証を通すためのライブラリのメモ。
Request
Requests: HTTP for Humans™ — Requests 2.21.0 documentation
言わずもがなの有名なライブラリ。普通の用途はこれで何とかなる。 利用できる認証方式は以下の通り(使い方はAuthentication — Requests 2.21.0 documentationを参照)。
- Basic Authentication
- netrc Authentication
- Digest Authentication
- 自作の認証
日本語では以下などが参考になる。
request-kerberos, request-ntlm
イントラ環境下だと上記のようなオープンな方式ではなく、Active Directoryなんかの認証を通したい場合もある。そういった場合は以下のようなサードパーティのライブラリを利用する。 利用できる認証方式は名前の通り。
- GitHub - requests/requests-kerberos: An authentication handler for using Kerberos with Python Requests.
- GitHub - requests/requests-ntlm: NTLM authentication support for Requests.
例えばSharePointの内容をスクレイピングしたいような場合は上記のようなライブラリは必須。
requests-oauthlib
OAuth関連の認証を利用したい場合は以下のライブラリを利用する。
Requests-OAuthlib: OAuth for Humans — Requests-OAuthlib 1.0.0 documentation
OAuth1, OAuth2に対応している。
その他いろいろ
- Keroberos認証を利用したLDAPの実装がActive Directory。
- OAuthについてはOAuth 2.0 の仕組みと認証方法 | murashun.jpあたりがわかりやすそう*1。
- NTLMはいまは非推奨。詳しくはNT LAN Manager - Wikipedia参照
- 認証回りの思想と仕組みをわかりやすくまとめた資料とかないのだろうか*2