Salesforceのアクセス権といえばプロファイル、ロール、共有ルール、権限セットなどがありますが、
2021年10月のWinter’22で正式リリースとなった制限ルールを検証してみます。
結論
最初に結論です。
制限ルールとは今までのアクセス権をベースに、アクセス権を絞るオプション設定のイメージです。
ロール、共有設定、共有ルール、プロファイル、権限セットなどを経て決定したアクセス権をベースに
最後にトッピングとしてそのアクセス権から一部を除外するときに使用できます。
何が特徴的?
共有モデルで設定されたアクセスベースに対して、共有ルールなどでアクセス権を拡張していくことがSalesforceの基本です。
一方制限ルールではアクセス権を除外していく考え方の為、従来の拡張とは逆の設定になります。
制限ルールの適用制限
●適用できるオブジェクトは下記のみ
カスタムオブジェクト
外部オブジェクト
契約
行動
ToDo
タイムシート
タイムシートエントリ
●作成できる制限ルールの数
・Enterprise EditionとDeveloper Edition:オブジェクトあたり最大2つ
・Performance EditionとUnlimited Edition:オブジェクトあたり最大5つ
●1ユーザに適用できる制限ルール数
同一ユーザに適用される有効なルールがオブジェクト内に2つある場合、適用されるのは1ルールのみです。
ただしどちらのルールが適用されるかは指定できないようです。意図しないアクセス権状態を避けるため、1ユーザに対して適用される有効制限ルールは1つの状態としておくことが推奨されます。
共有ルールとの違い
- 活動や主従レコードでは親レコードに依存し共有ルールを独自設定出来ないため、制限ルールは非常に効果的
- 共有ルールを適用できるカスタムオブジェクトなどでもアクセス権の付与方法が共有ルールと異なるため、使い分けることで「アクセス権を除外」する設定は効果的
設定箇所
オブジェクトマネージャーの「Restriction Rule」から制限ルールを作成できます。
翻訳の関係か、まだ「Restriction Rule」という英語名の表記になっています。
主従の主は参照可能、従はアクセス不可とすることが可能に
①主レコードは参照可能、従レコードは一律参照不可としたい
主従関係にある場合、プロファイルで従レコードへ参照権限を付与しなければ今までもこれは実現可能でした。
➁主レコードは参照可能、従レコードは一部参照可能で一部参照不可としたい
一方、この設定は従来は実現が出来ませんでした。
が、制限ルールが登場したことで実現できるようになっています。
●検証シーン
・売上オブジェクトと売上明細オブジェクトが主従関係
・1つの売上に2つの売上明細が作成されており、そのうち1つの売上明細だけはアクセス不可としたい
●共有設定は下記とする
・売上の共有設定は「公開/参照・更新可能」
・売上明細の共有設定は「親レコードに連動」
→この状態では全売上、全売上明細が参照編集可能となっている
●売上明細オブジェクトへ下記制限ルールを作成する
・対象:一般ユーザプロファイルのユーザ
・ルール:売上明細へ「一般ユーザへアクセス権の維持」チェックを作成しておき、
Trueならアクセス権維持、Falseの場合ならアクセスをはく奪となる
★ポイント★
・制限ルールに合致しないユーザからはアクセス権がはく奪される
・制限ルールに合致するユーザにはロールや共有設定で付与されているアクセス権がそのまま維持される
ベースで設定済みの共有状態に対して、見える範囲を減らすというのが制限ルールです。
注意:Lightning ExperienceのUIでのみ挙動が保証される
Salesforce Classicのユーザーに対しては制限ルールが意図したとおりに機能することを保証できません。
そのため、ユーザがClassic画面へ切り替え出来ないようにしておくことが推奨されます。
コメント