なぜ「ユーザー管理」を振り返るのか

アプリケーションのクラウドネイティブ化が進んだ現在、アプリケーション本体が持つべき機能と、共通サービスとして切り出すべき機能の線引きは年々変化しています。ユーザー管理もその一つです。これがどのように変化してきたかを振り返ることは、なぜ今SaaSアカウント管理サービスが求められているのかを理解する手がかりになります。

変遷

2000〜2010年代初め

この時期、多くのアプリケーションでは、ユーザー認証や権限管理のロジックがアプリケーションコード内に直接組み込まれていました。​ユーザーデータと機能データが混在し、機能追加のたびにロジックが分散・肥大化し、脆弱性の温床となっていました。​このような課題は、オンプレミス環境や初期のウェブアプリケーションにおいて一般的だったと考えています。

2010年代から2020年代初め

2010年代に入ると、認証技術の高度化や法令への対応が求められるようになり、企業が自社での認証管理の難しさを感じ始めた頃となります。​同時に、クラウドインフラを使った高度なDDoSアタックなどが活発になり、セキュリティへの対応も必要に迫られた頃です。その結果、Identity as a Service(IDaaS)の導入が進み、認証やAPIアクセスのセキュリティ強化、データ漏洩リスクの軽減、開発コストの削減が実現されました。​特に、シングルサインオン(SSO)や多要素認証(MFA)などの機能が標準化され、広く採用されるようになりました。 ​

現在

近年、企業は複数のアプリケーションやテナントをまたいだユーザー管理の必要性に直面しています。​オンボーディングや招待フロー、ユーザーのアプリ利用権限管理が複雑化し、従来のアプリケーション内での管理では対応が難しくなっています。​そのため、テナント管理やユーザーアカウント管理を外部サービスに委ねる動きが加速しています。​特に、多くの事業部を抱えるエンタープライズ企業では、アプリケーションの増加に伴う管理・開発コストの増大を抑えるため、共通基盤を自社開発し、テナント・ユーザー・アプリのライフサイクルを一元管理する取り組みが早くより進められていました。

企業のソフトウェア基盤は機能群を下図のように分類して切り出すことで、よりコア機能の価値創造にフォーカスするよう進化してきました。

  • 赤のブロック: エンドユーザー寄りの機能群
  • 青のブロック: ビジネス・開発寄りの機能群

ユーザー管理の周辺機能をみると、図の「認証・外部IdP連携」「認可・権限管理」「SaaSアカウント管理」に大きく分類されてきています。

  1. 認証・外部 IdP 連携
    成熟度: 高い
    役割: ユーザー本人確認とSSO/Federationを行う
  2. 認可・権限管理
    成熟度: 立ち上がり期(2023 年頃〜)
    役割: リソースごとのアクセス制御を動的に定義・評価する
  3. SaaSアカウント管理
    成熟度: 新興領域
    役割: テナント・ユーザーのライフサイクルを管理する

留意点

ローコード/フルスタックPaaSには、上記3つをまとめて提供しているものもあります。ただし、広く機能を提供する分、細部をみたときには機能が不足していることもあり、それを補う形で上記個別サービスを組み合わせることが一般的です。

SaaSアカウント管理とは

ここではSaaSアカウントを「アプリを利用するテナント(企業/組織/部署/etc…)、個々のユーザー」をまとめた概念として定義しています。

SaaSアカウント管理は、例えばアプリへのサインアップ機能を通じてユーザーやテナントがシステムに登録され、そのユーザー情報の変更や削除をするといった、アプリ横断のアカウントライフサイクル登録・変更・削除)に責任を持ちます。

SaaSアカウント管理が解決する課題

企業が複数アプリを当たり前に作り運用するようになってきたことにより、アプリを横断した動線/機能が増えました。それらをアプリ個別に実装していては全体の整合性が崩れやすいため、これを共通化して切り出す必要がでてきたのです。

例えば、サインアップ機能をアプリ個別に作ってしまうと、ユーザーがアプリAにサインアップしている途中で、アプリBにもサインアップしたらどうすべきかなど、アプリをまたいだ仕様調整が必要となってきます。こういった共通機能を個別開発することに起因して生まれたコストは気づきにくく、アプリ開発する上では当然のコストとして見られてしまうこともあります。

すべてのサービスに言えることですが、その分野に特化した人材を集めて継続して開発していかない限りは新たな社会のニーズに追随できません。しかし差別化要素の少ない共通機能に対する実装・運用コストにそこまでの投資を行えないのが現実です。

参考:
実践 B2B SaaS 設計: https://www.tc3.co.jp/pragmatic-b2b-saas-organization/

SaaSアカウント管理の中身

具体的にSaaSアカウント管理の機能にはどのようなものがあるか見ていきます。

機能分類主要ユースケース考慮ポイントの例
テナント管理テナントの作成・解約・プラン変更ユーザーの階層構造やプラン別のリソース制限を持つ
ユーザー管理ユーザーの招待、削除、再招待Emailの重複チェック、アプリ/チームごとのロール付与
属性管理テナント x ユーザー x アプリのカスタム属性(業種、従業員数など)スキーマバージョニングと動的なUI生成
オンボーディング / オフボーディング制御初回のセットアップ、退会時のデータ削除ステップ状態をトラッキングし途中離脱からの再開を可能に
ステータス管理テナントのアプリ利用開始/停止、ユーザーのアプリ利用開始/停止登録手続中/利用中/一時停止/削除済といったステータスへの変更を機能の一部に全体整合性を維持し埋め込む
ライフサイクルイベント集積と活用アプリ利用開始・ロール変更・プラン更新などのイベント閲覧CRMなどとWebhook連携し、業務フローを自動化

まとめ

IDaaS が「認証」を共通化したことで、開発者はパスワード保存やIdP連携の負担から解放されました。
しかし、テナントやユーザーのライフサイクル管理については、依然としてアプリケーション側の実装負荷が大きいのが現状です。
クラウドネイティブかつマルチアプリが当たり前となる次の 10 年を見据え、外部サービスを活用してアカウント管理をシンプルにすることは、事業戦略を実現するうえでの重要な鍵となりつつあります。


サービスのご紹介

本記事で説明した「SaaS アカウント管理」周りのギャップを埋めるサービスとして実践的に設計・実装された「Tactna 」(https://www.tactna.com)を提供しています。

TC3はAuth0を代表とするIDaaSを活用したデジタルサービス開発のプロフェッショナルです。プロジェクトの企画の段階から、どのようにIDaaS/CIAMを導入するかについてもサポートさせていただきますので、お気軽にお問い合わせください。

今回ご紹介したような内容をAWSのベスプラクティスもあわせてご紹介するウェビナーのアーカイブ配信をしております。ぜひご確認ください!