パスキーを自分のホームサーバーに移動するまでは、パスキーが頭痛の種でした

in tech

Google のパスワード マネージャーは、Android デバイス間でのパスキーの同期を処理します。同じ Google アカウントを使用している限り、どのプラットフォームでも同じパスキーが Chrome と同期されます。ただし、私は携帯電話とコンピューターではもっぱら Firefox を使用します。また、私は可能な限りセルフホスティングの大ファンなので、Google に依存しないソリューションを好みます。そのために私が使用しているセットアップは次のとおりです。

デスクトップおよびモバイル デバイス上のパスキーがこの自己ホスト型アプリでどのように機能するか

Bitwarden アプリまたはブラウザ拡張機能を使用するだけです

パスキー (読者が気づいていない場合) は、パスワードを使用せずにオンライン アカウントにログインする手段です。パスワードを入力する代わりに、指紋や顔のスキャンを使用して、Google、Discord、Spotify などの Web サイトにログインできます。または、コンピュータの PIN またはパスワードを使用して、パスキーをサポートする Web サイトにログインすることもできます。

誰かが電話番号でログインしようとすると、Google がパスキーを要求する クレジット: Google

パスキーを同期する最もシームレスな方法は、パスキーの同期をサポートするサードパーティのパスワード マネージャーを使用することです。しかし、そのようなパスワード マネージャーを安全に自己ホストできるでしょうか?はい、絶対に。

答えはヴォルトワーデンです。これは、Bitwarden バックエンドの非公式の完全にオープンソースのフォークです。これを使用して独自の Bitwarden ボールトをセルフホストすることができ、デスクトップ アプリ、ブラウザ拡張機能、モバイル アプリなど、すべての公式 Bitwarden クライアントと互換性があります。

Google のパスワード マネージャーは Android と Chrome に限定されています。ただし、Bitwarden クライアントをインストールできる場所であればどこでも、Bitwarden はパスキーを同期します。こうすることで、どのデバイスやブラウザからでもパスキーにアクセスできますが、パスキーはホーム サーバーに保存したままになります。

Bitwarden 拡張機能は、ユーザーに新しいパスキーを作成して同期するように求めます。

Vaultwarden でのパスキーの作成と使用

パスキーを作成して保存するには、Bitwarden クライアントをインストールしてログインする必要があります。

デスクトップで、ブラウザに Bitwarden 拡張機能をインストールし、セルフホスト型 Vaultwarden サーバーにログインします。次に、パスキーをサポートする Web サイトにアクセスします。サインアップして「パスキーの作成」ボタンをクリックすると、Bitwarden 拡張機能により、パスキーを保存するよう自動的に求められます。 「パスキーを新しいログインとして保存」ボタンをクリックするだけです。

一般的な Bitwarden ログイン ページには、この「経由でアクセス」ボタンが表示されます。デフォルトでは、公式 Bitwarden サーバーにログインしますが、代わりに自己ホスト型インスタンスにログインすることも選択できます。

携帯電話またはタブレットには、Bitwarden モバイル アプリをインストールする必要があります。 Vaultwarden サーバーにログインします。次に、パスキー設定に移動し、Bitwarden をデフォルトのパスワードおよびパスキー サービスとして構成します。新しいパスキーを作成するか、タップしてパスキーを使用してサインインすると、Bitwarden アプリからそうするためのプロンプトが表示されます。

Bitwarden パスキーをグローバルに使用するには、Android 14 以降を使用している必要があります。古いバージョンでは、サードパーティのパスキー サービスがサポートされていません。

Vaultwarden コンテナの実行

これは Bitwarden のセルフホスト型バックエンドになります

Vaultwarden を使用して Bitwarden の自己ホスト型インスタンスをセットアップするには、そのための Docker コンテナをスピンアップします。

  ラップトップ コンピューターのキーボード上に配置された Docker ロゴ。

初心者のための Docker: 知っておくべきことすべて

この非常に人気のある開発ツールの使い方を学びましょう。

ホームサーバーに ssh で接続し、Vaultwarden コンテナ用の新しいフォルダーを作成しました。フォルダー内に、Vaultwarden 用の Docker Compose ファイルを作成しました。

services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "8080:80"
Vaultwarden 用の Docker 構成ファイル。

アカウントを作成して保護したら、「SIGNUPS_ALLOWED」の横の「true」を「false」に置き換えます。ポートを変更するには、「8080」を任意のポート番号に置き換えます。

ラズベリーパイ5-1

ブランド

ラズベリーパイ

ストレージ

8GB

CPU

コーテックス A7

メモリ

8GB

これは技術に精通したユーザーにのみ推奨されますが、Raspberry Pi 5 はいじくり屋の夢です。安価で、高度にカスタマイズ可能で、優れたオンボード仕様を備えているため、次のミニ PC の強固な基盤となります。


ボールトに HTTPS を設定する

Vaultwarden が機能するには安全な HTTPS 接続が必要です

通常、この時点ではコンテナを起動し、Web ブラウザでアクセスするだけです。ただし、セキュリティ上の理由から、Vaultwarden には HTTPS が必要であり、プレーンな HTTP 経由でアクセスすることはできません。

HTTPS 接続を強制するには、Caddy を使用することをお勧めします。これは、Docker コンテナとして実行できるオープンソース Web サーバーであり、HTTPS を自動的に処理します。 Caddy が機能するにはドメイン名が必要です。ただし、ドメインの料金を支払う必要はありません。次のいずれかを行うことができます。

  1. DuckDNS などのサービスから無料のドメインを取得すると、他のサイトと同様に、世界中のどこからでも、公共のインターネット上のボールトにアクセスできるようになります。

  2. Tailscale を使用して、無料の MagicDNS を取得します。このドメイン名はプライベート Tailscale ネットワーク内でのみアクセスできることに注意してください。つまり、コンテナーにアクセスするには、ホーム サーバーとクライアント デバイスに Tailscale をインストールして実行する必要があります。

ホームラボのドメインを使用すると、他のサービスへのアクセスがはるかに簡単になります。

ステップ #1: Caddy コンテナーをスピンアップする

まず、Caddy コンテナを起動しましょう。 Caddy 用の新しいディレクトリを作成し、これを Caddy 用の Docker 構成ファイルに貼り付けます。

services:
caddy:
image: caddy:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
caddy_data:
caddy_config:

走る docker compose up -d コンテナをスピンアップします。

Caddy 用の Docker 構成ファイル。

ステップ #2: 無料のドメインを取得し、Caddy にそのドメインを指定する

すでに DuckDNS にドメイン名を設定しています。次のようになります。 myvault.mooo.com。この新しいドメイン名がインターネット上に伝播されるまでに数分かかります。 Caddy にこのドメイン名を指定すると、HTTPS の強制が自動的に処理されます。

Caddy は という単一のファイルで構成されます。 CaddyFile。この名前でプレーン テキスト ファイルを作成し (大文字と小文字が区別されます)、ファイル内にドメイン名と、前に Vaultwarden に割り当てたポートを入力します。

myvault.mooo.com 関連情報は以下のリンクからご確認いただけます
キャディ設定ファイル。

このプレースホルダー ドメイン名を独自のドメイン名に置き換える必要があります。 Tailscale MagicDNS を使用している場合は、プレースホルダーを ts.net アドレスに置き換えます。

CaddyFile を保存し、Caddy コンテナを再起動してこれらの変更を適用します。

docker compose restart caddy

ステップ 3: Vaultwarden 構成ファイルにドメイン名を追加する

最後に、Vaultwarden Docker 構成ファイルに加えなければならない変更が 1 つあります。この行を環境の下に追加します。

 DOMAIN=https://myvault.mooo.com

したがって、Vaultwarden の Docker compose ファイルは次のようになります。

services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- SIGNUPS_ALLOWED=true
- DOMAIN=https://myvault.mooo.com
volumes:
- ./vw-data:/data
ports:
- "8080:80"
Vaultwarden の Docker 構成ファイルにはドメイン変数が必要です。

Vaultwarden コンテナを再起動します。

docker compose restart vaultwarden

これで、ブラウザ内で HTTPS 経由でボールトにアクセスできるようになります。次のようなアドレスで私のアドレスにアクセスできます。

https://myvault.mooo.com

アカウントに登録して設定する SIGNUPS_ALLOWED 偽に。拡張機能やアプリなどの公式 Bitwarden クライアントを使用して Vaultwarden サーバーにログインするときに、これと同じ HTTPS アドレスをセルフホスト型フィールドに入力します。

Bitwarden モバイル アプリのセルフホスト環境設定。


これで、あらゆるデバイス間でパスキーとパスワードを自動的に同期する自己ホスト型パスワード マネージャーが完成しました。いくつかのプレミアム Bitwarden 機能も無料で提供されます。

詳しい情報を見る

完全ガイドはこちら

関連記事

前の投稿
すべての部屋にスマート スイッチを購入するのはやめましょう。このセンサーがスイッチの代わりになります。
次の投稿
このデフォルトの Windows 設定は理由もなく SSD を消耗させます

関連記事