認証モデル
Mezusphereはトラフィックがワークロードに到達する前に、エッジでリクエストを認証します。認証はSDKインテグレーションやミドルウェアライブラリではなく、Consoleからルートごとに有効化するトラフィックレイヤーの機能です。
エッジでの認証適用
ルートで認証が有効な場合、Mezusphereのグローバルエッジが認証フロー全体を処理します:
- エンドユーザーが保護されたルートにリクエスト:エッジが有効なセッションを確認
- セッションが見つからない:ユーザーがMezusphereのホスティングされたログインページにリダイレクト
- ユーザーが認証:ログイン、サインアップ、パスワードリセットすべてをプラットフォームが処理
- セッション確立:セッションが作成され、ユーザーがアプリケーションにリダイレクト
- 後続リクエスト:エッジがセッションを検証し、認証済みトラフィックをWarpgateに転送
保護されたルートでは、ワークロードが未認証トラフィックを受け取ることはありません。リクエストがアプリケーションに到達する時点で、ユーザーのアイデンティティは検証済みです。
ルートごとの設定
認証はルートレベルで設定され、きめ細かい制御が可能です:
| ルート | 認証 | ユースケース |
|---|---|---|
/api/v1/* | 必須 | 認証済みAPIアクセス |
/health | 公開 | 監視用ヘルスチェックエンドポイント |
/webhooks/* | 必須 | 認証済みWebhookレシーバー |
/docs/* | 公開 | 公開ドキュメント |
同じプロジェクト内で公開ルートと認証済みルートを混在させることができます。アプリケーションレベルの認証ミドルウェアは不要で、エッジが適用を処理します。
認可ルール
認証に加えて、ルートには特定の権限を要求できます:
- ロールベースアクセス:特定のロールを持つユーザーにルートを制限
- パーミッションベースアクセス:ルートアクセスに特定のパーミッションを要求
- 複合ルール:認証と特定の認可クレームの両方を要求
認可ポリシーは認証と並行してエッジで適用されます。ワークロードは認証と認可の両方の要件を満たすトラフィックのみを受信します。
ユーザーディレクトリ
Mezusphereにはエンドユーザーアカウントを管理する組み込みのユーザーディレクトリが含まれています。ユーザーディレクトリはプロジェクトまたは組織にスコープされ、以下を提供します:
- アカウント作成:ホスティングされたログインフローでのサインアップ、またはConsoleでの作成
- アカウントライフサイクル:ユーザーアカウントの有効化、停止、無効化
- プロフィール管理:名前、メールアドレス、表示名、ステータス追跡
- ログイン履歴:認証イベントと最終ログインタイムスタンプの追跡
ユーザーディレクトリは、多くのプロダクト向けユースケースでAuth0、Cognito、Keycloakなどの個別のアイデンティティプロバイダーの必要性を置き換えます。アイデンティティ面はプラットフォームの一部であり、別のインテグレーションではありません。
サービスアカウントアイデンティティ
マシンは人間とは異なる方法で認証します。Mezusphereはマシン間アイデンティティにサービスアカウントを使用します:
- Warpgate認証:各WarpgateがサービスアカウントAPIキーを使ってコントロールプレーンに認証
- APIアクセス:サービスアカウントが設定可能な権限でMezusphereのAPIにアクセス
- プロジェクトスコープ:サービスアカウントは分離のため特定のプロジェクトにスコープ
- 即時取り消し:APIキーはConsoleから即座にローテーションまたは取り消し可能
サービスアカウントは、人間のアイデンティティ(ユーザーディレクトリ)とマシンのアイデンティティ(サービスアカウント)をそれぞれ適切な認証メカニズムで明確に分離します。
アイデンティティ伝播
認証後、Mezusphereは信頼されたアイデンティティコンテキストをワークロードに転送します。アプリケーションが受け取る情報:
- ユーザーアイデンティティ:誰がリクエストしたか(ユーザーID、メールアドレス、表示名)
- 認証メタデータ:ユーザーがどのように認証したか、いつ認証したか
- 認可コンテキスト:ユーザーが持つパーミッションやロール
このアイデンティティコンテキストは転送リクエストのHTTPヘッダーとして到着します。アプリケーションは独自のトークン検証を実装せずにこのコンテキストを信頼できます:
- エッジが転送前にアイデンティティを検証済み
- Warpgateが第二の防御レイヤーとしてリクエストを検証
- エッジとWarpgate間の接続がmTLSで保護
コードにとっての意味
Mezusphereなしの場合、アプリケーションには通常以下が必要です:
- 認証SDKまたはライブラリ(Auth0 SDK、Passport.js、Spring Securityなど)
- トークン検証ミドルウェア
- セッション管理ロジック
- ユーザー管理エンドポイント
- パーミッションチェックコード
Mezusphereの場合、アプリケーションは信頼されたアイデンティティヘッダー付きの事前認証済みリクエストを受信します。ヘッダーを読んでビジネス上の判断を行うだけで、認証の配管工事は不要です。
事前認証済みトラフィック保証
認証が有効なルートでは、Warpgateに到達するすべてのリクエストが認証済みです。これは慣習やベストプラクティスではなく、アーキテクチャ上の保証です:
- 未認証リクエストはエッジでログインフローにリダイレクト
- 無効または期限切れのセッションを持つリクエストはエッジで拒否
- 認証・認可済みのリクエストのみがmTLSトンネルを通じてWarpgateに転送
ワークロードは「事前認証済みゾーン」で動作し、アイデンティティの問題はコードが実行される前にすでに解決されています。