SAG / ARCHITECTURE NOTE
テナントパスに会社名が含まれていても権限チェックが必要な理由
顧客企業のパスはナビゲーションに使い、データへのアクセスはサーバーで許可する構成です。URLに会社名が含まれていても、認証の代わりにはなりません。識別子を変更して別のデータを読めるなら、独立したメニューはセキュリティ境界ではありません。
パスと権限の分離とは何か?
顧客企業のパスはナビゲーションに使い、データへのアクセスはサーバーで許可する構成です。 このノートでは、パスと権限の分離を機能名ではなく、入力・変換・出力における責任として捉えます。分析結果を信頼するには、どのデータが入力され、何を確認し、どこまで結論を導けるのかが一貫していなければなりません。
なぜこの技術が必要なのか?
URLに会社名が含まれていても、認証の代わりにはなりません。識別子を変更して別のデータを読めるなら、独立したメニューはセキュリティ境界ではありません。
設計原則とデータフロー
アカウント・所属・リソースの所有権をあわせて確認し、元データのダウンロードにも同じ制御を適用します。画面を非表示にすることは権限チェックではありません。
アカウント認証 → テナント・リソースの権限 → 許可されたデータ
各段階では、前段階の成功を次の段階の成果と呼び替えてはなりません。データの識別子、期間、検証状態を続けて記録すれば、欠落やエラーが生じた場所を見つけ、再確認する範囲を定められます。
SAGアーキテクチャとの関連
SAGの顧客メニューではテナントパスを使用し、データの照会ではアカウント権限を確認します。公開体験と顧客スペースは区別されています。
SAGの運用価値は、この関係をページや質問、比較結果、改善作業へとつなげることにあります。顧客は数値を読むだけでなく、補強が必要な対象と判断の根拠をあわせて確認できます。追加の適用が必要なパターンは、該当する段落の範囲を基準に読み取ってください。
説明用の例と判断基準
説明用の例として、URLの顧客企業名を変更しても、その会社のデータが提供されてはなりません。判断基準は、メニューを非表示にしているかどうかではなく、サーバーがリクエストを拒否するかどうかです。
上記の例は構造と計算を説明するためのものであり、特定の顧客企業で実測された成果ではありません。実際のレポートでは、選択した期間・対象・観測条件と元の記録を関連付ける必要があります。そうすれば、同じ判断を再確認できます。
実務での検証チェックリスト
| フローの段階 | 確認項目 |
|---|---|
| アカウント認証 | 別のテナントからのリクエストを拒否する |
| テナント・リソースの権限 | ダウンロード権限を確認する |
| 許可されたデータ | 認証と所属を区別する |
正常な入力だけでなく、データが空の場合、データが重複する場合、条件が異なる場合にも、同じ意味が保たれることを確認してください。検証項目を作業完了の基準に結び付ければ、機能の説明と実際の運用との差を縮められます。
制約と適用時の注意点
DBのRLSとアプリの権限では、適用範囲が異なります。実際のデプロイロールと迂回条件を別途確認する必要があります。
研究資料と公式ドキュメント
- OWASP Authorizationガイド — リクエストとリソースのレベルで権限を確認するアクセス制御の資料です。
外部資料は上記の設計テーマに関する背景情報であり、SAGのすべての実装や顧客の成果を証明するものではありません。このノートの適用に関する解釈と説明用の例は、SAGの運用構造を基準にまとめています。資料確認日:2026-10-06。
関連記事と機能の確認
この技術についてさらに読むには
テナント権限、作業の再試行、キャッシュ、承認履歴について確認します。
SAG / KNOWLEDGE LINKS
