メインコンテンツまでスキップ

Azure Static Web Appsの認証・認可環境をローカルで構築する

だいたいどのサービスでも認証・認可って利用されると思うんですが、必須にもかかわらず、認証・認可周りって環境を整えるのが面倒だと思うのは自分だけではないはず・・・。
しかし、AzureのStatic Web AppsにはAzure側で認証・認可の機能を提供してくれます(MSサイト)。
これを使わない手はないってことで、意気揚々と実装したんですが、ローカルってどうやんねん?ってことで調査・構築できたので、メモメモ。

環境

バージョンとか

今回は以下の環境で実施しています。

AngularNode
18.2.722.9.0

コンテナ開発でやっているので、Dockerが入っている方は是非Cloneしてみてください(Github

SPA

angularでng newをした状態が前提となります。

swaのインストール

static-web-apps-cliというcliが必要とのこと。
しかし、手順の通りにやると

bash: swa: command not found

ってなるので、今回はグローバル(-Dじゃなくて-g)で入れちゃいます(;´д`)

install swa
$ npm install -g @azure/static-web-apps-cli

構築手順

基本的にはMS公式の通りです。

swa init

package.jsonと同じ階層で以下のコマンドを実行し、設定を行います

swa init
$ swa init

以下のように

? Choose a configuration name > workspace

と設定ファイルの名前を聞かれるので、好きなものを設定し、エンターを押す。
すると、多分package.jsonを読み取ってアプリの構成こんな感じでしょ?って提示があるので、
とりあえずY

Detected configuration for your app:

  • Framework(s): Angular

  • App location: .

  • Output location: dist/sample-auth-static-apps

  • API location:

  • API language:

  • API version:

  • Data API location:

  • App build command: npm run build

  • API build command:

  • App dev server command: npm start

  • App dev server URL: http://localhost:4200

  • API dev server URL:

? Are these settings correct? › (Y/n)

警告

だいたいは上の設定でいいんですが、開発時にnpm run devとか設定してあった場合は、swa-cli.config.jsonrunとかをそのコマンドに書き換えてあげないといけません。

この状態で以下のコマンドを実行するとswa-cli.config.jsonrunのコマンドが内部的に実行され、ブラウザが立ち上がる状態になるはずです。

$ swa start
注記

もし、実行しても動いてなくね?ってなったら、一度coinfigのrunに設定してあるコマンドを実行してみてください。
というのも、angularとかだと最初にオートコンプリートの設定とか聞かれるパターンもあるので、runの実行自体が正常に行われているかどうか確認が必要になります。

正常に完了するとlocalhost:4280にアクセスしてみると、SPAの画面になるかと思います(今回の環境では下図)。 img alt

authの設定をしてみる

azure static web appsのauthはログインのURLが~/.auth/login/xxxとなっており、xxxは例えばgithubになります。
試しにhttp://localhost:4280/.auth/login/githubへアクセスすると下図のような画面になるはずです。

img alt

ここで例えばUsernameb0cchiとかに設定し、Loginボタンをクリックすることで認証状態になり、以下の画面のように遷移するはずです。

img alt

SPAからは~/.auth/meでユーザー情報が得られるので、ここでは、nameをとっています。
もちろん~/.auth/meへアクセスすると以下のようになっていることが確認できると思います。

img alt

これでローカルにてAzure Static Web Appsのauthの環境が整いました!

最後に

意外とログイン状態とログアウト状態で気にすることが多い昨今。サクッと開発環境を整えて本業をガツガツ進めちゃってください。