dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

Cloud Armor での Basic 認証

2024-08-11 16:55:45 | GCP

Cloud Armor で Basic 認証を行う方法のメモ。

Cloud Armor のルールで、リクエストヘッダーの Authentication に指定された文字列が所定のID、パスワードからなる文字列になっていることを確認し、確認できなかった場合には拒否する。


Authorization は以下の形式の文字列となっている。

Authorization: Basic {base64encode(“{ユーザ}:{パスワード}”)}

ユーザ=user、パスワード=password の場合、以下のコマンドで base64 の文字列を生成することができる。

$ echo -n "user:password" | base64
dXNlcjpwYXNzd29yZA==

/auth ディレクトリに上記のユーザ、パスワードで Basic 認証をかける場合には、以下の拒否ルールを設定する。

request.path.matches('^/auth/')
&& (! has(request.headers['Authorization'])
    || request.headers['Authorization'] != 'Basic dXNlcjpwYXNzd29yZA==')