こんにちは。最近娘に「慌てて転ばないようにね」とか「早く服着ないと風邪引くよ」と注意すると「転んでないよ?」「風邪引いてないよ?」と言い返すようになって、予防の概念を教えていかないとなと思った木村です。
先日、弊社松村がAzure Static Web Appsへのアクセスに認証をかけるという記事を書きました。
これでアクセス制限はできるのですが、もうちょっとお手軽に1つのパスワードで制限したいというケースもあると思います。
2022/3/17にプレビューになった以下の機能で実現できるのですが、早速試してみたので紹介したいと思います。
デプロイするコードの準備
認証がかかってることを確認したいだけなので以下のindex.htmlだけのものをデプロイします。
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Home</title> </head> <body> Hello, Static Web App! </body> </html>
デプロイ方法は何を使っても構いませんが、今回私はgithubからのデプロイでやってみました。このファイルだけが含まれるgitリポジトリ「staticwebapp-test-emptyindexonly」を作成し、githubにプッシュします。
Azure Static Web Appsを準備する。
ポータルからAzure Static Web Appsを準備します。「リソースの作成」画面で「static」で検索すると「Static Web App」が出てくるのでこれを選びます。
サブスクリプションを選択し、リソースグループを選択または新規作成します。本機能はStandardでしか使えないのでホスティングプランは「Standard」を選択します。
同じ画面でデプロイの詳細を設定します。ソースでgithubを選択し、githubアカウントでサインインします。リポジトリや分岐(ブランチ)を選択し、ビルドのプリセットは「Custom」を選択します。
あとは「確認及び作成」に進み、「作成」を押せばStatic Web Appsがデプロイされ、Webアプリ(今回はHTMLファイル1つ)がgithubからデプロイされます。
パスワードを設定する
デプロイされたStatic Web Appsに移動し、メニューの「構成」を押し、「全般設定」を押します。「環境」でステージングを作っておくとそちらだけにパスワードを書けると言うこともできますが、今回は「ステージングと運用の両方の環境を保護」を選びます。
パスワードは「全角半角のアルファベット、数字、記号」全てを含んで8文字以内となっていますので、適当なものを入力して「保存」を押します。
アクセスする
設定が終わったら実際にアクセスしてみましょう。「概要」に表示されるURLにアクセスします。
アクセスすると、https://xxxxxxxxxx.azurestaticapps.net/.auth/basicAuth/login
というAzure Static Web Appsで準備されたURLにリダイレクトされ、以下の画面が表示されます。
あとはここにパスワードを入力すれば、無事表示されます。
内部的には入力されたパスワードをJavaScriptを使ってBASIC認証の形でHTTPヘッダに付与して/.auth/BasicAuth/login/callback
というURLにPOSTし、成功したら認証したことを示すStaticWebAppsBasicAuthCookie
というCookieを設定して、最初にアクセスしたURLにリダイレクトされていました。
まとめ
Azure Static Web Appsで、テストの間はパスワードをかけてアクセス制限をしたい・・といった場合に、ポータルから設定できるようになりました。利用方法もとてもかんたんなので、是非お試しください。
みなさまのお役に立てば幸いです。