テナントカスタマイズパターン
このドキュメントの目的
テナント別設定管理では、設定駆動アーキテクチャによりコード変更なしでテナントの挙動を変える方法を学びました。しかし、設定のパラメータ化だけでは対応できないケースがあります。
本記事では、設定駆動の限界を超えてテナント固有の要件に対応するための拡張パターンを学びます。
具体例について: 本記事ではIDサービスを題材にした例(認証 フロー、外部IdP連携等)を使用していますが、カスタマイズパターン自体はSaaS全般に共通です。
設定駆動ではカバーできない要件
どんなケースか
設定駆動は「同じロジックの中のパラメータを変える」アプローチです。以下のような要件は、パラメータの変更では吸収できません。
| 要件の種類 | 例 | なぜ設定では無理か |
|---|---|---|
| ロジック自体が異なる | テナントAは独自の承認フローを持つ | if/elseの分岐ではなく、処理の流れ自体が違う |
| 外部連携が異なる | テナントBは独自の本人確認APIと連携 | 接続先URLだけでなく、リクエスト/レスポンスの形式が異なる |
| データモデルの拡張 | テナントCはユーザーに独自属性を追加したい | スキーマ自体の変更が必要 |
| UIフローの変更 | テナントDは登録ステップの順序を変えたい | 画面遷移のロジックが異なる |