セットアップウィザード
Authrim セットアップウィザードは、AuthrimをCloudflareにデプロイするための直感的なWebベースのインターフェースを提供します。このガイドでは、セットアッププロセスの各ステップを説明します。
セットアップウィザードを実行する前に、以下を準備してください:
| 要件 | 詳細 |
|---|---|
| Cloudflareアカウント | 開発用には無料プランで十分です。本番利用前にCloudflare Workers、D1、KV、R2、Durable Objectsの最新制限を確認してください。 |
| Node.js | バージョン22以降 |
| npm | Node.jsに含まれています |
事前に準備しておくと良い情報
Section titled “事前に準備しておくと良い情報”以下を事前に決めておくとスムーズです:
- 環境名: このデプロイメントの識別名(例:
prod、staging、dev) - カスタムドメイン(任意):
*.workers.devではなく独自ドメインを使用する場合 - メールサービスの認証情報(任意): OTPメール送信用のResend等のAPIキー
Cloudflareプランの考慮事項
Section titled “Cloudflareプランの考慮事項”| 領域 | 開発時の目安 | 本番時の確認事項 |
|---|---|---|
| OIDC/OAuth flows | 小規模環境で評価可能 | リクエスト、CPU、D1、KV、queue、Durable Object制限を検証 |
| カスタムドメイン | ローカル/初期検証では任意 | 最新のCloudflareプランとドメイン要件を確認 |
| ストレージプロファイル | builtin:storage:shared-d1 がデフォルト | 大規模/規制要件がある場合はtenant-D1や外部DBプロファイルを検討 |
| 監査/ログ | D1ベースの基本経路を利用可能 | retention、archive、R2、sink、監視要件を計画 |
セットアップウィザードの起動
Section titled “セットアップウィザードの起動”以下のコマンドを実行してセットアップウィザードを起動します:
npx @authrim/setupウィザードは以下を実行します:
- 前提条件の確認(Wrangler CLIとCloudflare認証)
- Authrimソースコードのダウンロード(存在しない場合)
- セットアップUIをWebブラウザで開く
ステップ1: 前提条件チェック
Section titled “ステップ1: 前提条件チェック”
ウィザードは環境の準備状況を確認します:
Wrangler CLI
Section titled “Wrangler CLI”WorkersをデプロイするためのCloudflareコマンドラインツールです。インストールされていない場合:
npm install -g wranglerCloudflare認証
Section titled “Cloudflare認証”Cloudflareアカウントにログインしている必要があります。認証されていない場合:
wrangler loginブラウザウィンドウが開き、CloudflareとのOAuth認証が完了します。
ウィザードが確認する項目
Section titled “ウィザードが確認する項目”- ✅ Wranglerがインストールされアクセス可能
- ✅ Cloudflareにログイン済み
- ✅ アカウントIDが有効
- ✅ 現在の作業ディレクトリが書き込み可能
ステップ2: メインメニュー
Section titled “ステップ2: メインメニュー”
3つのオプションから選択します:
| オプション | 使用するタイミング |
|---|---|
| 新規セットアップ | 初めてAuthrimをデプロイする場合、または新しい環境を作成する場合 |
| 設定ファイルの読み込み | 以前のセットアップで保存した authrim-config.json がある場合 |
| 環境の管理 | 既存のデプロイメントを表示、更新、または削除する場合 |
ステップ3: セットアップモード
Section titled “ステップ3: セットアップモード”
クイックセットアップ(推奨)
Section titled “クイックセットアップ(推奨)”ほとんどのユーザーに最適です。自動的に設定されるもの:
- 標準的なOIDC/OAuth workers(
ar-auth、ar-token、ar-userinfo、ar-discovery、ar-management) - Login UIとAdmin UI workers
- デフォルトのshared-D1ストレージプロファイル
- 適切なセキュリティデフォルト
カスタムセットアップ
Section titled “カスタムセットアップ”以下の場合に選択してください:
- tenant-D1ストレージと事前割り当てテナントDB slotを選択する
- SAML、Device Flow、CIBA、外部IdP bridge、policy、Verifiable Credentialsの挙動を設定する
- ドメイン、UIデプロイ、runtime profiles、高度な設定を調整する
ステップ4: 設定
Section titled “ステップ4: 設定”
環境名は、このデプロイメントの一意の識別子です。すべてのCloudflareリソースのプレフィックスとして使用されます。
推奨される命名:
| 環境 | 用途 |
|---|---|
prod | 本番環境 - 実際のユーザー向け |
staging | 本番前のテスト用 |
dev | 開発と実験用 |
同じCloudflareアカウント下で複数の環境を同時に実行できます(例:prod と staging)。
ドメイン設定
Section titled “ドメイン設定”オプション1: workers.dev を使用(デフォルト)
Section titled “オプション1: workers.dev を使用(デフォルト)”- 追加の設定は不要
- URLは次のようになります:
https://prod-ar-router.your-account.workers.dev - 開発とテストに適しています
- 制限: マルチテナントURLのワイルドカードサブドメインは使用不可
オプション2: カスタムドメイン
Section titled “オプション2: カスタムドメイン”- 現在のCloudflare Workersカスタムドメイン要件を、利用するアカウントとプランで確認してください
- URLは次のようになります:
https://auth.yourdomain.com - 本番環境に適したプロフェッショナルな外観
- マルチテナントサブドメインをサポート:
https://tenant1.auth.yourdomain.com
カスタムドメインを使用するには:
- ドメインをCloudflareに追加(DNS管理)
- セットアップウィザードでドメインを入力
- ウィザードが必要なDNSレコードを設定
ネイキッドドメインオプション
Section titled “ネイキッドドメインオプション”チェックすると、発行者URLは https://default.auth.yourdomain.com ではなく https://auth.yourdomain.com になります。以下の場合に選択:
- シングルテナントのみ必要な場合
- よりクリーンなURLを好む場合
デフォルトテナント
Section titled “デフォルトテナント”Authrimは、1つのデプロイメントで複数のテナント(組織)をサポートします。
- テナントID: 内部識別子(例:
default、acme、corp) - 表示名: ログイン画面に表示される名前(例:「My Company」、「ACME Corp」)
シングルテナント構成の場合は、デフォルト値のままで構いません。
UIドメイン(オプション)
Section titled “UIドメイン(オプション)”デフォルトでは、Login UIとAdmin UIは自動生成されたURLを持つCloudflare Workersとしてデプロイされます。必要に応じて、それぞれにカスタムドメインを設定できます。
ステップ5: データベース設定
Section titled “ステップ5: データベース設定”
Authrimはランタイムストレージプロファイルを使用します。デフォルトの builtin:storage:shared-d1 プロファイルでは、デプロイ単位で3つのD1データベースを作成します:
| Binding | データベース | 内容 |
|---|---|---|
DB | Core database | OAuth/OIDC core data、policy、consent、passkeys、custom claim metadata、transient auth persistence |
DB_PII | PII database | sensitive identity values、subject identifiers、linked identity records、PII tombstones、PII audit data |
DB_ADMIN | Admin/control database | Admin users、Admin RBAC、runtime profiles、tenant database registry、audit/logging control data、operational jobs |
より大規模または規制要件のあるデプロイでは、セットアップフローで builtin:storage:tenant-d1 を選択できます。このモードではcontrol dataは共有DBに残し、テナント所有のcore/PII dataを生成済みtenant DB bindingとtenant database registry経由でルーティングします。
なぜストレージプレーンを分離するのか?
- コンプライアンス: PIIとadmin/control dataの境界を明確にできる
- セキュリティ: Admin、audit、core identity、PIIのアクセス経路を個別にレビューできる
- テナントスケール: tenant-D1モードではテナント所有sliceを生成済みtenant DBへルーティング可能
- ポータビリティ: 対応済みプロファイルでは選択したsliceを外部DB adapterへルーティング可能
ストレージプロファイルの選択
Section titled “ストレージプロファイルの選択”| Profile | 向いている用途 | 補足 |
|---|---|---|
builtin:storage:shared-d1 | 小規模デプロイと評価 | 共有 DB、DB_PII、DB_ADMIN bindingを使用 |
builtin:storage:tenant-d1 | より大きなマルチテナントデプロイ | 事前割り当て/生成済みtenant DB slotを使用 |
| 外部DBプロファイル | 規制要件または既存DB基盤がある環境 | tenant settingsに生の認証情報を保存せず、connection referenceを使用 |
リージョンの選択
Section titled “リージョンの選択”以下を基準にリージョンを選択してください:
| 考慮事項 | 推奨 |
|---|---|
| ユーザーの所在地 | 可能であれば主要ユーザーに近いリージョンを選択 |
| データ居住地の法律 | EUのユーザーがいる場合、GDPR準拠のためWEURを検討 |
| 企業の要件 | 一部の組織では特定のデータ場所を義務付けている |
利用可能なリージョン:
- 自動: Cloudflareが最も近いリージョンを選択(グローバルユーザーに適しています)
- WNAM: 北米西部(米国西海岸)
- ENAM: 北米東部(米国東海岸)
- WEUR: 西ヨーロッパ(EUデータ居住地に適しています)
- APAC: アジア太平洋
重要: データベースリージョンは作成後に変更できません。本番デプロイメントでは慎重に選択してください。
典型的な構成例
Section titled “典型的な構成例”| シナリオ | ストレージプロファイル | リージョンの考え方 |
|---|---|---|
| 小規模評価 | builtin:storage:shared-d1 | Automaticまたは主要ユーザーに近いリージョン |
| EU PII要件 | builtin:storage:shared-d1 またはEU向けresidency profile付きtenant-D1 | 必要に応じてPIIをEU互換リージョンへ配置 |
| 大規模マルチテナント | builtin:storage:tenant-d1 | tenant slot数とmigration rolloutを計画 |
| 既存DB基盤 | 外部DBプロファイル | 承認済みconnection referenceとresidency controlを使用 |
ステップ6: メール設定
Section titled “ステップ6: メール設定”
メールは以下の目的で使用されます:
- ログイン時のワンタイムパスワード(OTP)検証
- パスワードリセットリンク
- アカウント確認メール
今すぐ設定する(本番環境推奨)
Section titled “今すぐ設定する(本番環境推奨)”Resend はシンプルさと無料枠があるため推奨:
- resend.com でアカウントを作成
- ドメインを追加して検証(DNSアクセスが必要)
- APIキーを生成
- ウィザードで入力:
- APIキー: ResendのAPIキー
- 送信元アドレス: 例:
[email protected](検証済みドメインからである必要があります)
今はスキップする(開発専用)
Section titled “今はスキップする(開発専用)”メール設定をスキップした場合:
- Email Codeの値はコンソールにログ出力されます(Cloudflareダッシュボードのログで確認可能)
- パスワードリセットは機能しません
- 開発には適していますが、本番環境には不適切
メールは後から管理UIで設定できます。
ステップ7: 設定の保存(オプション)
Section titled “ステップ7: 設定の保存(オプション)”
プロビジョニング前に、設定をJSONファイルに保存できます。
保存のメリット:
- 中断した場合に後でセットアップを再開
- 同一の環境を作成(例:本番設定からステージングを作成)
- インフラ設定をバージョン管理
- チームメンバーと設定を共有
ファイルは現在のディレクトリに authrim-config.json として保存されます。
ステップ8: プロビジョニング
Section titled “ステップ8: プロビジョニング”
設定サマリーを確認し、リソースを作成 をクリックします。
作成されるもの
Section titled “作成されるもの”| リソース | 目的 |
|---|---|
| D1データベース | DB、DB_PII、DB_ADMIN; tenant-D1選択時はtenant DB slots |
| KV名前空間 | キャッシュ、生成設定、テナントランタイムレジストリスナップショット、同意キャッシュ |
| Durable Objects | セッション、認可コード、リフレッシュローテーション、PAR、DPoP、device/CIBA、SAML、flow state、レート制限 |
| RSAキー | アクセストークンとIDトークンのJWT署名 |
| AESキー | 保存時の機密データの暗号化 |

プロビジョニングには通常1〜2分かかります。ウィザードはリアルタイムで進捗を表示します。
プロビジョニングが失敗した場合:
- Cloudflareアカウントに十分なクォータがあることを確認
- 必要な権限があることを確認
- 再試行してください - クラウドAPIでは一時的なエラーは一般的です
ステップ9: デプロイメント
Section titled “ステップ9: デプロイメント”
プロビジョニング後、デプロイ開始 をクリックしてアプリケーションをデプロイします。

デプロイプロセス
Section titled “デプロイプロセス”- ビルド: すべてのTypeScriptコードをコンパイル
- Workersデプロイ: APIエンドポイントをCloudflare Workersにアップロード
- UI Workerデプロイ: Login UIとAdmin UI workerをアップロード
- マイグレーション実行: core、PII、admin、選択されたtenant-D1 migrationを適用
- シークレットアップロード: 暗号化キーを安全に保存
デプロイには通常3〜5分かかります。
ステップ10: 完了
Section titled “ステップ10: 完了”
Authrimのデプロイメントが完了しました!
重要なURL
Section titled “重要なURL”| URL | 目的 |
|---|---|
| 発行者URL | OIDCプロバイダーエンドポイント。アプリケーションのOIDC設定でこれを使用します。 |
| 管理者セットアップ | 最初の管理者アカウントを作成するためのワンタイムURL。すぐにアクセスしてください! |
| ログインUI | ユーザーがログインする場所 |
| 管理UI | ユーザー、クライアント、設定を管理するダッシュボード |
すぐにやるべきこと
Section titled “すぐにやるべきこと”-
管理者アカウントの作成(最初にこれを実行!)
- 完了画面に表示される管理者セットアップURLにアクセス
- パスキー(TouchID、FaceID、またはセキュリティキー)を使用して登録
- このURLは有効期限があり、一度しか使用できません
-
管理UIにログイン
- 新しく作成した管理者アカウントを使用
- ダッシュボードを確認
-
最初のOAuthクライアントを作成
- クライアント → クライアントを作成 に移動
- アプリケーションのリダイレクトURIを入力
- クライアントIDとシークレットを保存
-
統合をテスト
- 発行者URLとクライアント認証情報でアプリケーションを設定
- ログインフローをテスト
例: アプリケーションの設定
Section titled “例: アプリケーションの設定”完了画面から以下の値を使用してください:
// OIDC設定の例const oidcConfig = { issuer: 'https://your-issuer-url', clientId: 'your-client-id', clientSecret: 'your-client-secret', redirectUri: 'https://your-app.com/callback', scope: 'openid profile email'};コマンドラインオプション
Section titled “コマンドラインオプション”# Web UIの代わりにCLIモードを使用npx @authrim/setup --cli
# 既存の設定を読み込みnpx @authrim/setup --config ./authrim-config.json
# 言語を指定(en, ja, zh-CN, zh-TW, es, pt, fr, de, ko, ru, id)npx @authrim/setup --lang ja
# 環境を直接指定npx @authrim/setup --env stagingトラブルシューティング
Section titled “トラブルシューティング”サーバーが起動しない
Section titled “サーバーが起動しない”ポート3456が使用中の可能性があります:
# macOS/Linuxlsof -ti:3456 | xargs kill -9
# Windowsnetstat -ano | findstr :3456taskkill /PID <PID> /F「Wranglerが見つかりません」
Section titled “「Wranglerが見つかりません」”npm install -g wranglerノードバージョンマネージャー(nvm、fnm)を使用している場合は、グローバルbinがPATHに含まれていることを確認してください。
「Cloudflareにログインしていません」
Section titled “「Cloudflareにログインしていません」”wrangler loginログインが失敗する場合:
wrangler logoutwrangler loginレート制限エラーでデプロイメントが失敗
Section titled “レート制限エラーでデプロイメントが失敗”CloudflareにはAPIレート制限があります。1〜2分待ってから 再試行 をクリックしてください。
カスタムドメインが機能しない
Section titled “カスタムドメインが機能しない”- ドメインがCloudflareに追加されていることを確認
- DNSレコードが正しく設定されていることを確認
- DNS伝播を待つ(最大24時間かかる場合があります)
- 選択したドメイン/route構成をアカウントとプランがサポートしていることを確認
データベース作成が失敗
Section titled “データベース作成が失敗”- CloudflareアカウントにD1アクセスがあることを確認
- 無料アカウントには限られたD1データベースがあります - 未使用のものを削除
- 問題が発生しているリージョンの場合は別のリージョンを試す