2025年1月28日に、「パスキーのすべて」という本を技術評論社から共著で出版しました。
おかげさまでいろんな方に読んで頂き、ご好評頂いています。
本書の付録として、iOS用のサンプルアプリを含めているのですが、それを動かすためのサーバプログラムを、無料でサーバをホストできる Glitch で動かす前提で説明を書いていました。
ですが、2025年7月をもって、Glitch はサービス終了となってしまいました。
Glitch に変わって、Google CloudのCloud Runを利用して動作させる方法をここで説明させていただきます。
Cloud Runとは
Google Cloudでコンテナを実行するサービスです。無料実行枠もあるので、簡単なテストサーバであれば無料で利用することができます。
Githubのレポジトリから、ブラウザ上でボタンをポチポチするだけでWebサーバを立てることができるのでとても便利です。
細かい説明や利用開始までの手続きは省略します。
注意事項:DBの永続化は行っていません。
今回作成したサンプルアプリ上でユーザ登録やパスキーの登録を行っても、数分経ってコンテナが終了すると、データは消えてしまいますので注意してください。
こういう心配をしなくて良かったのはGlitchの非常に便利な点だったのですがね・・・。
まずはGithubで Fork
こちらのレポジトリをご自身のGitHubアカウントでForkしてください。
https://github.com/kkoiwai/passkey-example
Cloud Runの設定
Google Cloudのコンソールから Cloud Runの画面に行って、「コンテナをデプロイ」を押します。

「リポジトリから継続的にデプロイする(ソースまたは関数)」を選択して、「Cloud Build の設定」を押します、

Cloud Buildの設定で、フォークしたレポジトリを選択してください。初回は GitHubアカウントと連携する必要があります。

ビルドタイプに 「Go、Node.js、Python、Java、.NET Core、Ruby、PHP(Google Cloud の Buildpacks を使用)」を選択します。それ以外は何も入力せずに「保存」を押してください。

サービスの名前を決めて、リージョンを選択します。認証は「公開アクセスを許可する」を選択します。

課金はリクエストベースにしておきます。
サービスのスケーリングは手動にして、インスタンスの最小数を0、最大数を1にして、不要な課金を防ぎます。
Ingressはそのままにして、その下の「コンテナ、ボリューム、ネットワーキング、セキュリティ」をクリックします。

コンテナの編集の下にある、「環境変数」から、「変数を追加」を押します。

名前に「IOS_APPID」、値にご自身の AppIDを入力してください。大文字小文字は区別されるので気をつけてください。
そのほかの設定はそのままにして、「作成」を押してください。

数分待つと、ビルドが完了するので、完了後のサイトにアクセスし、AASAファイルが表示できることを確認して完了です。
iOSサンプルアプリの設定
あとは「パスキーのすべて」217ページからの通りです。Associated Domainsの設定と、ソースコード内部のドメインを書き換えて、実行してみてください。
Pull Request 募集しています。
サーバサンプルは、Glitch で動作させるため、Nodeのバージョンが16にしているなど、実サービスで参考にするには不十分なところが多いです。
改善点あれば是非 Pull Requestをお送りください。



