- これは
- tl;dr
- curl で Basic 認証を利用する場合
- Authorization ヘッダ を利用する場合
- RFC で Authorization ヘッダや Basic 認証周りの情報をチェックしてみた
- 以上
これは
初老丸 Advent Calendar 2017 3 日目になる予定の記事です.
tl;dr
curl で Basic 認証を利用する場合
これは皆さんご存知の書き方.
curl --basic -u $username:$password https://api.example.com/api/sample.json -H "accept: application/json"
Authorization ヘッダ を利用する場合
敢えて前述のオプションを使わずに, リクエストヘッダに Authorization
を付与してリクエストする.
curl https://api.example.com/api/sample.json \ -H "accept: application/json" \ -H "Authorization:Basic $(echo -n $username:$password | openssl base64)
ユーザー名とパスワードを :
でくっつけた文字列を Base64 でエンコードする必要がある。
echo -n $username:$password | openssl base64
echo -n
しておかないと意図しない文字列が生成されるので辛かった.
$ echo "foo:bar" | openssl base64 Zm9vOmJhcgo= $ echo -n "foo:bar" | openssl base64 Zm9vOmJhcg==
RFC で Authorization ヘッダや Basic 認証周りの情報をチェックしてみた
RFC2617 HTTP Authentication: Basic and Digest Access Authentication
Basic 認証でユーザー名とパスワードを :
で繋ぐあたりのことが書かれている.
RFC7235 Hypertext Transfer Protocol (HTTP/1.1): Authentication
Authorization ヘッダの仕様が書かれている.