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==')