basic認証
basic認証とは
Webにおける一番基本的な認証方法
特定領域・リソースに対するアクセスにID・Passを求める
https://scrapbox.io/files/62e0f1592bb49b001d9e84b2.png
詳細な仕組み
1. Basic認証が設定されたリソースにアクセスすると、サーバーから401レスポンスが返される
2. 401レスポンスにWWW-Authenticateヘッダーが付与されてるはずで、その値がBasic`になっているはず
参考:
3. Basicであるなら、クライアントはBasic認証で求められるヘッダーと値を付与して、同リソースに再リクエストを行う
ヘッダーの例
code: header
Authorization: Basic <Base64でエンコードした値>
<Base64でエンコードした値>には何が入る?
A. 「ユーザー名(ID)」「パスワード」をコロンで結合し、その結果をbase64でエンコードした文字列 ブラウザでBasic認証付リソースにアクセスする流れは簡単
1. Basic認証付リソースにアクセス
2. ユーザーID、Passを求められるポップアップが表示される
3. 値を入力して送信
4. ID, Passが正しければ、リソースが表示される
5. 正しくなければ、401が表示される
Basic認証はセキュリティ的に危ない
なので、第3者に通信を盗聴された場合、普通にID, Passが盗まれてしまう。
そもそも、エンコード値を盗まれるだけで、リソースを不正閲覧されてしまう...
なのでセキュリティ的に危険と言われている
ただ...HTTPS通信が当たり前になったこの時代においては危険度は高く無い。
HTTPS通信だと、そもそもデータの中身を盗聴することが難しくなるため。
ブラウザによる認証のキャッシュ
ブラウザからBasic認証を成功させた場合、ブラウザを閉じるまでの間は特定リソースに対する認証が不要になる。
参考