2024.11.01

制限ルールで簡単アクセス権コントロール

Just a moment... (34202)

1 はじめに

Salesforceはアップデートで日々便利な新しい機能が追加されますが、その中で今回ご紹介するのは制限ルールです。
今回の記事では、機能の概要から制限ルールの活用方法まで紹介しています。こちらの記事を読むだけで制限ルールを理解し使用することができるようになりますので、ぜひ最後まで読んでいただけると幸いです。
※本記事はSummer'24時点の情報で記載しています

2 機能紹介

2-1 制限ルールとは

制限ルールはWinter23のアップデートで追加された機能で、簡単にいうとレコードへのアクセス権を制御する機能になります。
類似のレコードのアクセス権を操作する機能として共有ルールがありますが、主にアクセス権を広げるか狭めるかというところに違いがあります。
共有ルールは共有設定で非公開に設定した後、対象のグループ・ユーザーに対して、部分的に公開の権限を与えることができるアクセス権を拡張する機能です。
一方で制限ルールは、公開されているレコードを特定のグループ・一部のユーザーに見せないよう非公開に設定できるアクセス権を狭めたいときに使用できる機能です。
そういう意味では共有ルールと制限ルールは正反対の使い方になりますが、共有ルールと制限ルールはセットで使うこともできます。
その使い方に関しては、次章でご紹介します。

2-2 制限ルールでできるようになること

制限ルールによって、主従関係のリレーションをもつ従側のオブジェクトのレコードに対して、一部参照・一部参照不可の権限を与えることができます。
主従関係では、従側のオブジェクトは主側のオブジェクトの権限を暗黙的に引き継ぐため、主側に参照のみという設定がされていると従側も強制的に参照のみになります。

制限ルール適用前のアクセス権

従側のレコードを一部見せたくないという制御は今までSalesforceではできなかったのですが、ここで制限ルールを使うことでこの問題を解決することができます。
制限ルールで適用する対象と、対象とするレコードの条件を設定します。
例えば、今回ユーザー名がAと一致するユーザーに対して、従レコードのフラグ項目がTRUEと一致するレコードのみ参照できるという条件を設定します。
すると、フラグ項目がFALSEのレコードに対して、Aさんは参照する権限を失います。
制限ルールを利用することで、こうしたレコードごとでのアクセス権制御が実現できます。

制限ルール適用後のアクセス権

2-3 制限ルールの設定方法

制限ルールの設定方法は、オブジェクトマネージャから対象のオブジェクトを選択後、左のタブの「Restriction Rules」の新規ボタンから作成できます。
選択すると、「ユーザー条件」と「Record Criteria」を入力する画面が表示されますが、ユーザー条件が適用の対象とするユーザー、Record Criteriaが適用するレコードの条件になります。
一部英語になっていますので、こちらは少し注意が必要です。

3 デモ・活用例

今回は以下シナリオを想定します。
ーーーーーーー
A銀行の融資情報のセキュリティについて議論しており、A銀行には融資担当社員と預金担当社員がいる。
社員は自分の所属する支店のみのレコード参照権限をもち、一部の融資情報は機密性が高いため、預金担当社員には参照させたくない
ーーーーーーー
事前準備として、融資情報をカスタムオブジェクトとして作成し、項目として「担当エリア」と「融資情報開示フラグ」を用意します。
さらに支店ごとに公開グループを用意し、それぞれの支店に融資社員ロールと預金社員ロールのユーザーが所属しています。
融資情報はアクセス権を非公開に設定し、共有ルールを使用して担当エリア(大阪支店)と公開グループ名(大阪支店)が一致するレコードのみの参照権限を、公開グループ(大阪支店)に所属するユーザーに対して与えます。
現時点では、大阪支店に所属するユーザーは融資社員であっても、預金社員であっても参照権限をもつため、預金社員の参照権限を制御(一部を参照不可に設定)するために制限ルールを使用します。

ロールが預金社員のユーザーに対して、融資情報開示フラグがTRUEのレコードのみ参照できるように設定を行います。
こうすることで、大阪支店の預金社員のユーザーは融資情報開示フラグがFALSEのレコードは参照することができなくなります

融資情報開示フラグがTRUEのレコードは参照可能

融資情報開示フラグをFALSEに変更すると参照不可になる

4 制限ルールの考慮事項

制限ルールを使用するうえで考慮事項がありますので、ご紹介します。

制限ルールが使用できるオブジェクトは以下7つになります。
カスタムオブジェクト外部オブジェクト・契約・行動・TODO・タイムシート・タイムシートエントリです。
制限ルールは利用頻度が多いカスタムオブジェクトやもともと主従関係でアクセス権コントロールが難しい行動・TODOで使用することができます。

また制限ルールは外部オブジェクトでも使用することができます。
かつては外部オブジェクトに共有ルールを設定できなかったため、セキュリティー対策が難しいという懸念点がありましたが、今では制限ルールによって外部オブジェクトにも個別のアクセス権が設定できるためとても便利な機能になっています。
外部オブジェクトを利用される際には、セキュリティ対策としてぜひ制限ルールの使用を検討してみてください。

また作成できるルール数も組織のエディションによって異なります。
EnterpriseとDeveloperエディションでは1オブジェクトあたり2つまで、Performance・Unlimitedエディションでは1オブジェクトあたり5つまで設定可能です。
そして、制限ルールの条件に使用できる演算子も制限があります。
現時点で使用できるのは「次と一致する」のみで、「次を含む」や「次から始まる」などの条件は選択できません。
情報は以下サイトより引用:
https://help.salesforce.com/s/articleView?id=sf.security_restriction_rule_considerations.htm&type=5

5 まとめ

いかがでしたでしょうか。
制限ルールは比較的新しい機能ですので、使用方法などがあまりWEB上で紹介されておらず、機能自体をご存じでない方もいらっしゃったのではないでしょうか?
この記事を読んで、少しでも制限ルールについて理解を深めていただけていれば幸いです。
制限ルールを使いこなすことで、以前よりも柔軟なアクセス権の設定が可能になりますので、ぜひ使用を検討してもらえたらと思います。
27 件
     
  • banner
  • banner

関連する記事