設定権限
権限セット
アプリケーション、オブジェクト、フィールド、システムの権限を付与します。
権限セット
権限セットは、機能を付与するための主要な方法です。ユーザーに直接割り当てることも、ロールを介して間接的に割り当てることもできます。
権限セットが制御するもの
| 権限タイプ | 例 |
|---|---|
| アプリケーションアクセス | ユーザーが CRM または Console を開ける |
| オブジェクト権限 | レコードの作成、読み取り、更新、削除 |
| フィールド権限 | 選択したフィールドの読み取りまたは更新 |
| システム権限 | Console へのアクセス、レポートの実行、データのエクスポート |
| 統合権限 | API キー、Webhook、または管理操作の使用 |
オブジェクト権限
オブジェクト権限は次の問いに答えます。
Can this user perform this operation on this object at all?権限セットの付与では、次のフラグ名を使用します(セキュリティプラグインの権限評価エンジンによって適用されます)。
| フラグ | 意味 |
|---|---|
allowRead | レコードアクセスルールで許可されたレコードを読み取る |
allowCreate | レコードを作成する |
allowEdit | レコードアクセスルールで許可されたレコードを更新する |
allowDelete | レコードアクセスルールで許可されたレコードを削除する |
viewAllRecords | レコードアクセスをバイパスして、オブジェクトのすべてのレコードを読み取る |
modifyAllRecords | レコードアクセスをバイパスして、オブジェクトのすべてのレコードを更新または削除する。読み取りに対しては viewAllRecords を含む |
viewAllRecords または modifyAllRecords が通常の行レベルの境界をバイパスしない限り、レコードアクセスは依然として重要です。これらのフラグは管理用の権限セットに限定してください。これらは、そのオブジェクトに対するテナント全体のスーパーユーザー付与に相当します。
システム権限
システム権限は、次のようなプラットフォーム操作のためのものです。
- Console アクセス。
- ユーザーの管理。
- ロールおよび権限セットの管理。
- レポートの実行。
- レポートのエクスポート。
- 統合の管理。
- 監査ログの表示。
管理者が容易に監査できるよう、システム権限はビジネスオブジェクトの権限とは分けておきましょう。
推奨セット
まず、いくつかの名前付き権限セットから始めましょう。
| 権限セット | 目的 |
|---|---|
| Basic User | ログインしてメインアプリケーションにアクセスする |
| Setup Administrator | ユーザー、ロール、設定、診断を管理する |
| Report Viewer | レポートとダッシュボードを表示する |
| Integration Operator | Webhook / API キーを管理する |
| Support User | サポートオブジェクトの読み取り/更新 |
その後、顧客のアプリケーション向けにドメイン固有のセットを追加します。
フィールドセキュリティ(付録)
権限セットには、フィールドレベルの付与も含まれます。ユーザーがレコードを読み取れる場合でも、個々のフィールドを非表示にしたり読み取り専用にしたりできます。
2 つのモード
| モード | 効果 |
|---|---|
| 非表示 | フィールドは API レスポンスや Console ビューから完全に除外される |
| 読み取り専用 | フィールドは返されるが、書き込みは拒否される |
適用される場所
オブジェクト権限をチェックするのと同じ評価エンジンが、すべての経路(REST、ObjectQL、生成された Console フォーム、エクスポート)でフィールドルールを適用します。低レベルの API を経由した「裏口」は存在しません。
一般的なパターン
| ユースケース | 推奨事項 |
|---|---|
sys_user 上の HR データ(給与、SSN) | HR 権限セットを除くすべての人に対して非表示にする |
| 外部システムの識別子 | サポートには読み取り専用、統合オペレーターには書き込み可能にする |
product 上の社内コストと顧客価格 | cost を営業には非表示にし、財務には表示する |
| PHI を含むメモフィールド | 権限セットに該当する臨床ロールが含まれない限り非表示にする |
作成時のガイダンス
- フィールドが機微なデータを保持する場合は、読み取り専用ではなく非表示をデフォルトにしてください。読み取り専用でも、値がレスポンスやログに漏れてしまいます。
- フィールドごとに 1 つのセットを作成するのではなく、実際のロール(
HR Manager、Finance Read-only)に合致する権限セットにフィールドルールをまとめてください。監査が容易になります。 - コンプライアンスのユースケースでは、フィールドセキュリティと監査ログの保持を組み合わせることで、事後に「誰がこの行を見たか」という問いに答えられるようにしてください。