アレコレ・ティプス

これ便利だな〜と思ったことなど

HAproxy BASIC 認証設定 version 2.6.7

HAproxy BASIC認証設定

(ブラウザで閲覧するユーザー向けのBASIC認証 HAproxy設定)

 

自分で書いたこちらの記事が古くなっていたので、

HAproxy で Basic 認証を使う際の パスワード文字列 エンコード - アレコレ・ティプス

改めて書きます。

 


 

主に3点 行う。

  1. パスワードを生成 エンコード
  2. ユーザー定義
  3. Backend に アクセス制限を定義

動作確認環境:

HAproxy docker コンテナ version 2.6.7

 


 

1、パスワード生成エンコード

mkpasswd コマンドが使えるLinuxマシンなどで以下コマンドを打つ。

printf "生成したいパスワードを半角英数で" | mkpasswd --stdin --method=sha-256

 

55zkY5oZnIhmM7wrJ$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

ーーー