インストール
このガイドでは、Authrimソースリポジトリからの詳細なインストールと設定プロセスについて説明します。ガイド付きデプロイにはセットアップウィザードを使用してください。
システム要件
Section titled “システム要件”| 要件 | 最小バージョン |
|---|---|
| Node.js | >= 22.0.0 |
| pnpm | >= 9.0.0 |
| Git | 最新版 |
| Cloudflareアカウント | 無料枠以上 |
インストール手順
Section titled “インストール手順”1. クローンとインストール
Section titled “1. クローンとインストール”# リポジトリをクローンgit clone https://github.com/sgrastar/authrim.gitcd authrim
# 依存関係をインストールpnpm install
# Cloudflareにログインwrangler login2. 暗号鍵を生成
Section titled “2. 暗号鍵を生成”JWT署名に使用するRSA鍵を生成:
./scripts/setup-keys.sh以下が作成されます:
| ファイル | 用途 |
|---|---|
.keys/private.pem | JWT署名用のRSA秘密鍵 |
.keys/public.jwk.json | JWK形式の公開鍵 |
.keys/metadata.json | Key IDとメタデータ |
3. 環境変数を設定
Section titled “3. 環境変数を設定”# 環境変数を含む.dev.varsを作成./scripts/setup-local-vars.sh
# ローカル開発用のwrangler.tomlを生成./scripts/setup-local-wrangler.sh4. Cloudflareリソースをセットアップ
Section titled “4. Cloudflareリソースをセットアップ”KV名前空間
Section titled “KV名前空間”./scripts/setup-kv.sh --env=devキャッシュと設定データ用に、環境別のKV名前空間が作成されます。現在の主なbindingは以下です:
CLIENTS_CACHE- OAuthクライアントメタデータキャッシュINITIAL_ACCESS_TOKENS- Dynamic Client Registration用initial access tokenSETTINGS- システム設定REBAC_CACHE- RBAC/ReBACクレームキャッシュUSER_CACHE- ユーザーメタデータキャッシュAUTHRIM_CONFIG- 生成されたデプロイ設定TENANT_RUNTIME_REGISTRY- テナントランタイムレジストリのスナップショットSTATE_STORE- 互換性/ランタイム状態ストレージCONSENT_CACHE- 同意キャッシュ
認可コード、リフレッシュトークンローテーション、DPoP JTIリプレイチェック、PAR request state、デバイスコード、CIBAリクエスト、SAML state、レート制限はKVではなくDurable Objectsで扱います。
D1データベース
Section titled “D1データベース”./scripts/setup-d1.sh --env=devデプロイ単位のD1データベースを作成します:
| Binding | データベース名パターン | 用途 |
|---|---|---|
DB | {env}-authrim-core-db | Core OAuth/OIDC、policy、consent、passkey、custom claim、transient authデータ |
DB_PII | {env}-authrim-pii-db | sensitive identity values、subject identifiers、linked identity records、PII tombstones、PII audit data |
DB_ADMIN | {env}-authrim-admin-db | Admin users、Admin RBAC、runtime profiles、tenant database registry、audit/logging controlデータ |
新規インストールでは以下のSQLが適用されます:
migrations/001_core_foundation.sqlから最新のcore migrationmigrations/pii/001_pii_schema.sqlmigrations/admin/001_admin_users_rbac_security.sqlから最新のadmin migration
Authrimはランタイムストレージプロファイルでlogical sourceとstorage sliceをルーティングします。デフォルトは builtin:storage:shared-d1 です。より大規模または規制要件のある環境では、生成されたtenant D1 bindingを使う builtin:storage:tenant-d1 や、対応済みの外部DBプロファイルを使用できます。
Durable Objects
Section titled “Durable Objects”./scripts/setup-durable-objects.sh@authrim/ar-lib-core からDurable Objectsをデプロイします。主なbindingは以下です:
SESSION_STORE/SESSION_CLIENT_STORE- セッション状態とクライアントセッションミラーKEY_MANAGER- 暗号鍵管理AUTH_CODE_STORE- OAuth認可コードストレージREFRESH_TOKEN_ROTATOR- リフレッシュトークンローテーションCHALLENGE_STORE- パスキー/ワンタイムチャレンジ状態RATE_LIMITER- アトミックなレート制限PAR_REQUEST_STORE- PAR request URI状態DPOP_JTI_STORE- DPoPリプレイ保護DEVICE_CODE_STORE/CIBA_REQUEST_STORE- Device FlowとCIBA状態TOKEN_REVOCATION_STORE- トークン失効状態SAML_REQUEST_STORE/SAML_AGGREGATE_METADATA_STORE- SAML requestとmetadata状態FLOW_STATE_STORE- Flow Engine runtime state
5. オプション:メール設定(Resend)
Section titled “5. オプション:メール設定(Resend)”Email Code認証用:
./scripts/setup-resend.sh --env=localResendなしでは、Email Codeの値はコンソールに出力されます(開発に便利)。
プロジェクト構造
Section titled “プロジェクト構造”authrim/├── packages/│ ├── ar-lib-core/ # Core services、schemas、Durable Objects、storage routing│ ├── ar-discovery/ # Discovery & JWKSエンドポイント│ ├── ar-auth/ # 認可、ログイン、同意、Flow Engine│ ├── ar-token/ # Token、introspection、revocation、token exchange│ ├── ar-userinfo/ # UserInfoエンドポイント│ ├── ar-management/ # Admin APIと管理サーフェス│ ├── ar-async/ # Device Flow & CIBA│ ├── ar-saml/ # SAML IdP/SP│ ├── ar-bridge/ # 外部IdP bridge│ ├── ar-policy/ # Policy service│ ├── ar-vc/ # Verifiable Credentials│ ├── ar-router/ # Service Bindings router│ ├── ar-admin-ui/ # Admin UI worker│ ├── ar-login-ui/ # Login UI worker│ ├── setup/ # @authrim/setup CLIとWeb UI│ ├── ar-lib-scim/ # SCIM library│ ├── ar-lib-logging/ # Logging/audit runtime│ └── ar-lib-policy/ # Policy engine library├── scripts/ # セットアップ&デプロイスクリプト├── migrations/ # Core、PII、Admin D1マイグレーション├── conformance/ # OpenID適合性テスト└── test/ # 環境検証とsmoke testsワーカーアーキテクチャ
Section titled “ワーカーアーキテクチャ”| ワーカー | 用途 | エンドポイント |
|---|---|---|
| ar-discovery | OIDC Discovery | /.well-known/* |
| ar-auth | 認可、ログイン、同意 | /authorize, /login, /consent, flow routes |
| ar-token | トークン発行とトークン操作 | /token, /introspect, /revoke, token exchange |
| ar-userinfo | UserInfo | /userinfo |
| ar-management | Admin APIと管理サーフェス | /api/admin/*, /register |
| ar-async | 非同期フロー | /device_authorization, /bc-authorize |
| ar-saml | SAML IdP/SP | SAML metadata, SSO, SLO, ACS routes |
| ar-bridge | 外部IdP bridge | Social login, linked identity, handoff routes |
| ar-policy | Policy evaluation | Policy check/evaluation routes |
| ar-vc | Verifiable Credentials | VC issuer/verifier routes |
| ar-router | Service Bindingsによる公開ルーティング | リクエストを各component workerへ転送 |
利用可能なスクリプト
Section titled “利用可能なスクリプト”pnpm run dev # ホットリロードですべてのワーカーを起動pnpm run build # すべてのパッケージをビルドpnpm run build:api # APIワーカーのみビルド(UIを除く)pnpm run test # ユニットテストを実行pnpm run test:e2e # E2Eテストを実行(Playwright)pnpm run test:e2e:ui # UIでE2Eテストを実行pnpm run test:lighthouse # Lighthouseパフォーマンステストを実行pnpm run lint # ESLintを実行pnpm run typecheck # TypeScript型チェックpnpm run format # Prettierでコードをフォーマットpnpm run format:check # コードフォーマットをチェックpnpm run deploy # リトライロジックでワーカーをデプロイpnpm run deploy:ui # Admin UIとLogin UI workerをデプロイpnpm run deploy:all # すべてをデプロイSetup CLI
Section titled “Setup CLI”pnpm run setup # ソースからセットアップWeb UIを起動pnpm run setup:init # 新しい環境を初期化pnpm run setup:deploy # 設定済み環境をデプロイpnpm run setup:status # デプロイ状態を表示pnpm run setup:info # リソース情報を表示tenant-D1環境では以下も使用します:
npx @authrim/setup tenant-db-pool-status --env prodnpx @authrim/setup tenant-db-pool-expand --env prod --add-slots 10npx @authrim/setup tenant-db-migrate-all --env prodトラブルシューティング
Section titled “トラブルシューティング”ポート8787が使用中
Section titled “ポート8787が使用中”# ポートを使用しているプロセスを終了lsof -ti:8787 | xargs kill -9
# または別のポートを使用wrangler dev --port 8788KV名前空間が見つからない
Section titled “KV名前空間が見つからない”wrangler kv namespace list./scripts/setup-kv.sh --env=dev秘密鍵が見つからない
Section titled “秘密鍵が見つからない”./scripts/setup-keys.sh./scripts/setup-local-vars.sh