アプリケーション概要 — 中央会員管理 & SSO ヒブ
1. システム名
中央会員管理 & SSO ヒブ
タグライン:
一つのアカウント、すべてのアプリケーション。
2. システム概要
中央会員管理 & SSO ヒブは、以下の機能を提供する統合システムです。
- アイデンティティセンター: 一つのアカウントですべてのSaaS製品にアクセスできる。
- ライセンスセンター: 各製品のライセンスを管理する。
- ビリングセンター: サブスクリプションの選択と支払いを管理する。
- SSO プロバイダー: 各SaaS製品に認証トークン (JWT) を発行する。
3. 背景
各SaaS製品は異なる機能を提供していますが、アイデンティティ管理が統合されていないため、ユーザーは各製品ごとに別々に登録、パスワード管理、支払いを行う必要があります。
中央会員管理ヒブは、これらの経験を簡素化するために、以下の機能を提供します。
- 一度の登録ですべての製品にアクセスできる。
- 一つのダッシュボードですべてのサブスクリプションを確認できる。
- 一度のログインですべてのアプリケーションにアクセスできる。
- 一つの場所ですべての支払いを管理できる。
4. 登録されているSaaS製品
このエコシステムに参加した各SaaS製品は、製品としてシステム内で登録されます。
最初の登録された製品:
| 製品コード | アプリケーション名 | パッケージモデル | ステータス |
|---|---|---|---|
| NTO | NOTO | 無料でいつまでも (Free Forever) | 有効 |
次の製品はロードマップに従って追加されます。
5. 主な概念
5.1 会員アカウント
会員アカウントはエコシステム内でのユーザーの主なアイデンティティです。
一つの会員アカウントは、以下の機能を持つことができます。
- 複数の異なる製品のサブスクリプションを持つ。
- 各製品ごとに一意のライセンスIDを持つ。
- 各製品ごとに異なるパッケージステータスを持つ。
5.2 ライセンスID
ライセンスIDは、ユーザーが製品のサブスクリプションを有効にしたときにシステムによって生成される一意のコードです。
フォーマット:
[製品プレフィックス]-[XXXX]-[XXXX]-[XXXX]
NOTOの例:
NTO-A1B2-C3D4-E5F6
ライセンスID:
- ユーザーごとに製品ごとに一意です。
- 会員ダッシュボードで表示されます。
- メールで送信されます。
- サポートのために参照できます。
5.3 サブスクリプションパッケージ (製品ごと)
各製品は独自のパッケージリストを持っています。
利用可能なパッケージの種類:
- 無料 / 無料: 有効なパッケージで支払いは必要ありません。有効期限はありません。
- 試用: 期間限定で完全なアクセスが可能です。
- 有料: 月額または年額のサブスクリプションです。
現在、NOTOは無料でいつまでものパッケージを提供しています。
5.4 Single Sign-On (SSO)
ユーザーは、会員ヒブに一度ログインするだけで、すべてのアプリケーションにアクセスできます。
SSOのメカニズムは、ヒブによって発行されたJWT (JSON Web Token) を使用して、各SaaS製品で検証されます。
5.5 Grace Period
サブスクリプションが有効期限切れになったときに、ユーザーが延長しなかった場合、システムはGrace Periodを提供します。
Grace Period中:
- ユーザーはアプリケーションにアクセスできます。
- システムは緊急通知を表示して延長を促します。
- ユーザーのデータは安全です。
Grace Periodが終了したときに延長しなかった場合、アクセスが停止されます。
6. 支払いゲートウェイ
システムは2つの支払いゲートウェイをサポートしています。
- Midtrans
- Xendit
ユーザーはチェックアウト時に利用可能な支払い方法を選択できます。
7. 主なモジュール
システムの主なモジュールは以下のとおりです。
- 登録 & アカウント検証
- 会員プロフィール管理
- 製品 & パッケージカタログ
- チェックアウト & 支払い
- ライセンス管理
- SSO / OAuth2 サーバー
- 通知 & メール
- スーパーアドミンダッシュボード
- オーディットログ
8. 開発原則
- ユーザーの財務情報とアイデンティティを最高のセキュリティで保護する。
- 各SaaS製品はユーザーのパスワードを保存しない (代わりにヒブに委譲する)。
- 支払いプロセスは部分的に保存されないようにする。
- システムは主なアーキテクチャを変更せずに新しい製品を追加できるようにする。
- ライセンスIDはJWTを使用して各アプリケーションで検証できる。
- Grace Periodはユーザーに明確に通知される前にアクセスを停止する。