ベーシック認証とダイジェスト認証
HTTPの認証方法で代表的なものとしてベーシック認証、ダイジェスト認証などがある。
ベーシック認証
ベーシック認証は基本認証と呼ばれることもあり、ユーザとパスワードをコロンで繋ぎBase64でエンコードしたものを送信する。
サーバには以下のようなフォーマットでヘッダに含まれる。
Basic Z3Jtbjpob2dlaG9nZQ==
セキュリティ
盗聴された場合はbase64でデコードすることで簡単にユーザ・パスが判明する。
$ echo 'Z3Jtbjpob2dlaG9nZQ==' | base64 -D grmn:hogehoge
設定方法(Apacheの場合)
htpasswdの作成
$ htpasswd -c -b /path/to/.htpasswd <ユーザ名> <パスワード> #新規作成 $ htpasswd -b /path/to/.htpasswd <ユーザ名> <パスワード> #追記
Apacheの設定
AuthType Basic AuthName "Access to the staging site" AuthUserFile /path/to/.htpasswd Require valid-user
ダイジェスト認証
ベーシック認証で問題となった盗聴・改竄を防ぐために考案された。 パスワードをMD5でハッシュ化したものを送信する。ユーザ名は平文で流れる。
サーバには以下のようなフォーマットで送信される。
Digest username=\"grmn\", realm=\"Access to the staging site\", nonce=\"uWyUio91BQA=272da557c40a99343123d4de48a6ed1024cb5f60\", uri=\"/path/to/index.html\", algorithm=MD5, response=\"6b752b43a30e613c520f78b346553775\", qop=auth, nc=00000001, cnonce=\"2c2e499270c1169b\"
ダイジェスト認証の大枠の流れはDigest認証 - Wikipediaがわかりやすい。
htpasswdの作成
新規作成の場合は「-cオプション」を追加。追記の場合は「-cオプション」を除く。
$ htdigest -c /path/to/.htpasswd "Access to the staging site" ユーザ名 Adding password for grmn in realm Access to the staging site. New password:<パスワード応答> Re-type new password:<パスワード応答>
Apacheの設定
AuthType Digest AuthName "Access to the staging site" AuthUserFile /path/to/.htpasswd Require valid-user
参考
Apache(mod_wsgi) + Flask環境でベーシック認証が効かない
Docker ERROR: 2 matches found based on name: network api_default is ambiguous
重複してるDockerネットワークを削除する
$ docker network ls NETWORK ID NAME DRIVER SCOPE a09c35602c0f api_default bridge local c33c065d9280 api_default bridge local
$ docker network rm c33c065d9280
参考
2 matches found based on name: network ddev_default is ambiguous · Issue #811 · drud/ddev · GitHub
visudo: command not found
visudo
パッケージは存在しない。sudo
をインストールする。
yum -y install sudo
ERROR: Named volume "data:/var/lib/mysql:rw" is used in service "xxxx" but no declaration was found in the volumes section.
トップレベルにもvolumes
を指定しないとだめ。
version: "3" services: db: image: db volumes: - data-volume:/var/lib/db backup: image: backup-service volumes: - data-volume:/var/lib/backup/data volumes: data-volume:
参考
yumでnode.jsをインスールする
6系の場合
$ curl -sL https://rpm.nodesource.com/setup_6.x | bash - $ yum install nodejs