HAproxy BASIC 認証設定 version 2.6.7
HAproxy BASIC認証設定
(ブラウザで閲覧するユーザー向けのBASIC認証 HAproxy設定)
自分で書いたこちらの記事が古くなっていたので、
HAproxy で Basic 認証を使う際の パスワード文字列 エンコード - アレコレ・ティプス
改めて書きます。
主に3点 行う。
- パスワードを生成 エンコード
- ユーザー定義
- Backend に アクセス制限を定義
動作確認環境:
HAproxy docker コンテナ version 2.6.7
1、パスワード生成エンコード
mkpasswd コマンドが使えるLinuxマシンなどで以下コマンドを打つ。
printf "生成したいパスワードを半角英数で" | mkpasswd --stdin --method=sha-256
zkY5oZnIhmM7wrJ$sRdh1DFp1zBHoyEHPwhcPSL5hBmGjqCqYAq5lDZvxkB
と sha-256 で エンコードされたハッシュが生成される。 これを以下で用いる。
2、ユーザー定義
haproxy.cfg など HAproxyで使っている設定ファイルを編集する。
"defaults"項目の定義後あたりに userlist 定義を行う。
## -------------------------------------------------------
## userlist
## -------------------------------------------------------
userlist user_group1
user usr1 password $5$zkY5oZnIhmM7wrJ$sRdh1DFp1zBHoyEHPwhcPSL5hBmGjqCqYAq5lDZvxkB
( 先ほどパスワードからハッシュ生成したものを上記のように "password" の後に挿入する )
ーー
3、Backend に アクセス制限を定義
ーーー
"Backend"項目 に アクセス制限を追加 例
haproxy.cfg など HAproxyで使っている設定ファイルを編集する。
backend gui_server
balance roundrobin
acl auth_usr_ok http_auth(user_group1)
http-request auth if !auth_usr_ok
server gui_service 888.88.8.88:1881 check
http_auth のところでは 定義したユーザーグループ単位で指定できる。
これで、usr1 ユーザーで 設定したパスワードで、BASIC認証の設定ができた。
昔のバージョンでは、パスワードエンコードが、DES だったかもしれないが、現在 HAproxy の BASIC認証では、SHA-256 がデフォルトのようである。
23/02/20
ーーー