カスタムクライアントポータルに含まれるもの
ご依頼の内容に合わせて、進め方を設計します。提案書では、どの成果物を含めるか、誰が必要な素材を用意するか、それぞれをどのように検収するかを明記します。
- ご要件に照らした「自社開発か購入か」の検討
- クライアントごとのアクセスルールを備えたマルチテナントのデータモデル
- 社内スタッフとクライアントユーザー向けのサインイン、招待、ロール管理
- クライアント向けダッシュボード、書類、依頼、通知
- CRM、ERP、請求システム、ファイルストレージとの連携
- 必要に応じたホワイトラベルのブランディングとクライアント専用ドメイン
- クライアント間のアクセステスト、検証済みのバックアップ、管理コンソール
カスタムポータルを作る価値があるのはどんなとき?
クライアントに必要なのが主にファイル、メッセージ、タスク、請求書であれば、既製のポータルツールを購入しましょう。手頃な価格で、すぐ導入できるものも多くあります。開発をおすすめするのは、クライアントのデータを厳密に分離する必要がある場合、課金が独自ルールに従う場合、ポータルが社内システムの読み書きを行う必要がある場合、そしてポータル自体が提供する価値の一部である場合です。ポータルそのものが製品なら、より広い開発範囲をカバーするWebアプリ、SaaS、MVP開発をご覧ください。
要件定義から、クライアントが実際に使うポータルまで
まず、誰がサインインするのか、それぞれが何を見て何を行う必要があるのか、そのデータが現在どのシステムにあるのかを書き出します。このリストが、自社開発か購入かの判断材料になります。ツールで足りるなら、そうお伝えしたうえで選定をお手伝いします。そうでなければ、データモデル、権限マトリクス、主要画面をご用意し、レビューしていただきます。
開発は、サインイン、テナント分離、権限設定から始め、機能画面の前にテストを行います。以降のすべての機能がこれらに依存するためです。その後、ダッシュボード、書類、依頼、連携をマイルストーンごとに追加します。まず少数の実際のクライアントをパイロットに招待し、見つかった問題を修正してから、他のクライアントをお招きします。
クライアントポータルは自社開発すべき?それとも購入すべき?
ツールで業務フローをカバーできるなら、まず購入を検討してください。ファイル、メッセージ、タスク、請求書、ブランド対応のサインインを備えたクライアントポータルソフトは、低い月額料金で広く提供されており、保守も提供元が行います。カスタムポータルは構築費用がかかり、完成後も担当者が必要です。そのため、ツールにはできないことで、その費用に見合う価値がなければなりません。
開発する理由として妥当なのは次の4つです。ツールでは表現できないデータ分離ルールがある、課金ロジックがビジネスモデルの一部である、チームがすでに使っているシステムと連携したい、ポータル自体が販売する製品の一部である。どれにも当てはまらなければ、ツールをおすすめします。
| 状況 | ポータルツールを購入 | カスタムポータルを開発 |
|---|---|---|
| クライアントに必要なのはファイル、メッセージ、タスク、請求書 | 適しています。ほとんどのツールで対応可能です | 下の他の行に当てはまる場合のみ |
| 契約や規制により、クライアントごとのデータを分離する必要がある | ツールのテナント分離、ホスティング、エクスポートの条件を確認してください | 適しています。分離をデータモデルに組み込み、テストします |
| 料金が利用量、ユーザー数、個別交渉の契約によって決まる | ツールの課金が自社のルールと合えば対応できます | 適しています。自社のルールに合わせて課金ロジックを作成します |
| クライアントのデータがCRM、ERP、社内データベースにある | 標準の連携機能があれば対応できます | 適しています。ポータルが御社のシステムを直接読み書きします |
| ポータルがクライアントの支払う対価の一部である | 共通のツールでは差別化しにくい | 適しています。製品もそのロードマップも御社のものになります |
| 今月中に稼働させたいが、運用保守の予算はない | 適しています | まだ開発すべき段階ではありません |
クライアントごとのデータはどのように分離されますか?
すべてのレコードはクライアントアカウントに属し、すべてのクエリはサーバー側で、サインインしている人のアカウントの範囲に限定されます。当たり前に聞こえますが、まさにポータルで情報が漏れやすい部分です。OWASP Top 10:2025でも、アクセス制御の不備は1位のままで、テスト対象のすべてのアプリケーションで何らかの形で見つかりました。画面上は正しいデータを表示していても、URLを書き換えると他のクライアントのファイルが返ってくるポータルは、失格です。
画面より先に、マルチテナントモデルを設計します。通常は、すべてのテーブルにクライアントキーを持たせた1つのデータベースを使い、契約や規制当局が物理的な分離を求める場合は別々のデータベースを使います。ロールは両側をカバーします。複数のクライアントを閲覧できる御社のスタッフと、自組織のデータだけを閲覧できるクライアントユーザーです。
- デフォルトで拒否:新しいルートは、ルールでアクセスが許可されるまで何も返しません。
- 自動テストが1つのクライアントとしてサインインし、別のクライアントのレコードの閲覧、変更、ダウンロードを試みます。
- ファイルのダウンロードには、サインイン中のユーザーに紐づく有効期限の短いリンクを使用します。
- スタッフによるクライアントレコードへのアクセスは、監査ログに記録されます。
- ユーザーを削除すると、そのセッションはただちに終了します。
代理店・コンサルタント向けのホワイトラベル対応レポートダッシュボード
代理店やコンサルタントには、クライアントがそれぞれ自分の成果(キャンペーンの数値、プロジェクトの進捗、SEOや売上の指標など)を確認できる、ブランド対応のダッシュボードが求められることがよくあります。作業の大半はデータにまつわるものです。どのデータソースから取り込むか、それぞれの更新頻度、ソースに障害が起きたときクライアントに何を表示するか、そしてクライアントがあなたと同じ意味で読み取れるよう、すべての数値をどう定義するかを決めます。
クライアントは、御社のドメインでも、クライアント独自のアドレスでもダッシュボードを閲覧できます。多数の顧客向けのカスタムホスト名については、Cloudflareのプランに含まれる内容や検証の仕組みも含め、Webアプリ、SaaS、MVP開発のページで解説しています。グラフは、当社のデータビジュアライゼーションの方針に沿っています。すべての数値に期間とデータソースを明記し、データがない場合は、その数値がない理由を表示します。
Dardoの公開実績にあるShiimainは、地域に関するエビデンスを見せるインターフェースで、当社のデータビュー設計に最も近い公開例です。表示を切り替えても、場所、期間、データソースが見えたままになります。これはサインインもクライアントごとのデータもない公開プロトタイプであり、クライアントポータルではありません。
ポータル内での請求、オンボーディング、サポート
クライアントがポータル内で支払いを行う場合は、カード情報を独自に処理するのではなく、決済・課金プロバイダを利用してください。Stripe Billing の従量課金プランでは、請求額の0.7%が手数料としてかかります。また、顧客が自分で請求情報を管理できる、Stripeがホストする顧客ポータルも含まれています。Dardoでは、これをお客様のプランと連携させ、支払い状況に応じてアクセス権が切り替わるようにします。その際、プロバイダから届く署名付きイベントを正として扱います。
クライアントがそもそもポータルを使ってくれるかどうかは、オンボーディングで決まります。招待メール、初回サインイン、開いてすぐに役立つ情報が見える最初の画面、そして各クライアントが最もよく使う操作までの短い導線を設計します。サポート機能では、特定のプロジェクトや書類に紐づけて問い合わせを起票できるため、メールを探し回ることなく、状況を踏まえて対応できます。
ご依頼前のご質問
カスタムクライアントポータルの費用は何で決まりますか?
ロールの数、データをどこまで厳密に分離するか、CRM・ERP・課金システムとの連携、ダッシュボードの種類の数、そしてポータル内でクライアントが支払いを行うかどうかで決まります。既存のクライアント情報や書類の移行にも作業が発生します。要件確認の後に、書面で作業範囲をお見積りします。ツールで同じ結果を安く実現できる場合は、その旨もお伝えします。
クライアントポータルの開発にはどのくらいかかりますか?
連携したいシステムにアクセスできるか、データの整理がどの程度必要か、権限に関する確認にどれだけ早くご回答いただけるかによって変わります。まずサインイン、テナント分離、権限をテスト済みのマイルストーンとして完成させ、その後に機能開発と、実際のクライアント数社によるパイロット運用を行います。スケジュールは、連携先へのアクセスが確認でき次第、ご提案書で確定します。
クライアントはGoogleやMicrosoftでログインできますか?
はい、可能です。GoogleのサインインはOpenID Connect標準に準拠しており、Microsoftのアイデンティティプラットフォームも、個人のMicrosoftアカウントと、Microsoft Entra IDの職場・学校アカウントの両方でこれに対応しています。Microsoftサインインは特定の組織のEntraテナントのみに制限することもでき、法人クライアント向けのポータルに適しています。どちらのアカウントもお持ちでないクライアントは、メールでサインインできます。
ポータルを当社のCRMやERPと連携できますか?
APIや信頼できるエクスポート機能があれば、たいていは可能です。開発に入る前に、アクセス方法、レート制限、各項目をどのシステムが管理するかを確認し、ポータルがリアルタイムのデータを読むのか、同期したコピーを読むのかを決めます。APIのないシステムでは、定期的なファイルのインポートが必要になる場合があり、その場合は作業範囲に明記します。
セキュリティとバックアップはどのように対応しますか?
権限はサーバー側で適用し、クライアントの境界を越えようとする自動テストで検証します。スタッフのアクセスも記録します。バックアップはデータベースによって異なります。たとえばCloudflare D1では、Workers Paidプランで過去30日間の任意の分にデータベースを復元できます。復元手順はドキュメント化し、公開前にテストします。
ポータルとそのデータの所有者は誰ですか?
お客様です。データベース、ファイルストレージ、サービスアカウントはお客様の会社名義で作成し、コードリポジトリは納品時に移管します。データは標準的な形式でエクスポートできます。クライアントの個人データは、お客様のプライバシーポリシーと、責任ある組織としてのお客様の義務のもとで管理されます。
公開後も継続的なサポートはありますか?
はい。監視、セキュリティアップデート、依存関係のアップグレード、小規模な変更を含む月額の作業範囲として、または大きな機能追加は個別のプロジェクトとして対応します。ポータルにはクライアントのデータが保存されるため、公開後のアップデートには担当者が必要です。社内チームが担当される場合は、代わりにドキュメントと操作説明をお渡しします。
出典・参考資料
このページの出典です。詳細は各発行元の原典をご覧ください。
- OWASP Top 10:2025、A01 アクセス制御の不備top10.owasp.org
- Stripe Billing の料金stripe.com
- Google Identity: OpenID Connectdevelopers.google.com
- Microsoft identity platform: OpenID Connectlearn.microsoft.com
- Cloudflare D1: Time Travel(ポイントインタイムリカバリ)developers.cloudflare.com

