- これは
- tl;dr
- curl で Basic 認証を利用する場合
- Authorization ヘッダ を利用する場合
- RFCでAuthorization ヘッダや Basic 認証周りの情報をチェックしてみた
— RFC2617 HTTP Authentication: Basic and Digest Access Authentication
— RFC7235 Hypertext Transfer Protocol (HTTP/1.1): Authentication - 以上
これは
qiita.com
初老丸 Advent Calendar 2017 3 日目になる予定の記事です.
tl;dr
- ヘッダに付与する認証文字列を Base64 でエンコードする時にハマったのでメモ
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 ヘッダの仕様が書かれている.
以上
- メモでした
- curl を利用する場合, Authorization ヘッダをわざわざ利用することは無いかもしれないけど
- RFC は英語を読めなくても, ざっと斜め読みするだけでも学ぶことがあるので, これからは出来るだけ読みたいと思う