Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

Azure Static Web Appsへのアクセスをパスワードで制限する

こんにちは。最近娘に「慌てて転ばないようにね」とか「早く服着ないと風邪引くよ」と注意すると「転んでないよ?」「風邪引いてないよ?」と言い返すようになって、予防の概念を教えていかないとなと思った木村です。

先日、弊社松村がAzure Static Web Appsへのアクセスに認証をかけるという記事を書きました。

aadojo.alterbooth.com

aadojo.alterbooth.com

これでアクセス制限はできるのですが、もうちょっとお手軽に1つのパスワードで制限したいというケースもあると思います。

2022/3/17にプレビューになった以下の機能で実現できるのですが、早速試してみたので紹介したいと思います。

docs.microsoft.com

デプロイするコードの準備

認証がかかってることを確認したいだけなので以下の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」が出てくるのでこれを選びます。

f:id:showm001:20220318145611p:plain
リソースの作成

サブスクリプションを選択し、リソースグループを選択または新規作成します。本機能はStandardでしか使えないのでホスティングプランは「Standard」を選択します。

f:id:showm001:20220318145921p:plain
Static Web Appsの作成(1)

同じ画面でデプロイの詳細を設定します。ソースでgithubを選択し、githubアカウントでサインインします。リポジトリや分岐(ブランチ)を選択し、ビルドのプリセットは「Custom」を選択します。

f:id:showm001:20220318150159p:plain
デプロイの詳細設定

あとは「確認及び作成」に進み、「作成」を押せばStatic Web Appsがデプロイされ、Webアプリ(今回はHTMLファイル1つ)がgithubからデプロイされます。

パスワードを設定する

デプロイされたStatic Web Appsに移動し、メニューの「構成」を押し、「全般設定」を押します。「環境」でステージングを作っておくとそちらだけにパスワードを書けると言うこともできますが、今回は「ステージングと運用の両方の環境を保護」を選びます。

パスワードは「全角半角のアルファベット、数字、記号」全てを含んで8文字以内となっていますので、適当なものを入力して「保存」を押します。

f:id:showm001:20220318152623p:plain
パスワードの設定

アクセスする

設定が終わったら実際にアクセスしてみましょう。「概要」に表示されるURLにアクセスします。

f:id:showm001:20220318151314p:plain
アクセスURL

アクセスすると、https://xxxxxxxxxx.azurestaticapps.net/.auth/basicAuth/login というAzure Static Web Appsで準備されたURLにリダイレクトされ、以下の画面が表示されます。

f:id:showm001:20220318151530p:plain
パスワード入力画面

あとはここにパスワードを入力すれば、無事表示されます。

f:id:showm001:20220318151808p:plain
表示された

内部的には入力されたパスワードをJavaScriptを使ってBASIC認証の形でHTTPヘッダに付与して/.auth/BasicAuth/login/callbackというURLにPOSTし、成功したら認証したことを示すStaticWebAppsBasicAuthCookieというCookieを設定して、最初にアクセスしたURLにリダイレクトされていました。

まとめ

Azure Static Web Appsで、テストの間はパスワードをかけてアクセス制限をしたい・・といった場合に、ポータルから設定できるようになりました。利用方法もとてもかんたんなので、是非お試しください。

みなさまのお役に立てば幸いです。