【ゼロからのSalesforce#2】
皆さん、こんにちは。アクセンチュアの北海道オフィス(AIH)所属の王 煦(オウク)です。
【ゼロからのSalesforce#1】では、Salesforceの歴史、そして、Salesforceにおける重要な概念である「オブジェクト(Object)」についてご紹介しました。この章では、Salesforceにおける「権限の配分(Access Control)」についてご紹介します。
3.2 権限の配分(Access Control)
3.2.1 セキュリティの四階構造(Four Layers of Security in Salesforce)
Salesforceのセキュリティレベル | 制御範囲 | 主な機能 |
---|---|---|
組織レベル(Organization-level) | システム | ・IP範囲の制限(Login IP Ranges) ・ログイン可能の時間帯(Login Hours) ・ユーザーアカウントの有効化/凍結(User Activation/Freeze) ・MFA ・セッション設定など |
オブジェクトレベル(Object-level) | オブジェクト | ・プロファイル(Profile) ・権限セット(Permission Set) ・権限セットグループ(Permission Set Group) によってユーザーの制御をする |
項目(フィールド)レベル(Field-level) | 項目(フィールド) | ・プロファイル(Profile) ・権限セット (Permission Set) ・権限セットグループ(Permission Set Group) によってユーザーの制御をする ・項目のアクセス性 (Field Accessibility) |
レコードレベル(Record-level) | レコード | ・OWD(組織全体の共有設定) ・ロール階層(Role Hierarchy) ・共有ルール(Sharing Rules) ・手動共有(Manual Sharing) |
3.2.2 プロファイル(Profile)&レコードレベルのセキュリティ(OWD/ロール階層/共有ルール/手動共有)
プロファイル(Profile)は本質的に「会社内の役割テンプレート」と言えます。各プロファイルは、あらかじめ決められた権限が付与されており、すべてのユーザーは必ず1つのプロファイルに割り当てられます。具体的に、オブジェクト+項目に対して、どのような操作(新規作成・参照・編集・削除)を行えるかは、プロファイルによって決められます。
要するに、プロファイルはユーザーの「最大権限」を規定し、オブジェクトレベル&項目レベルのセキュリティをコントロールしています。
ただし、プロファイルはレコードレベルのセキュリティは直接にコントロールしていない、という点に注意しましょう。これはどういうことか。AさんのプロファイルがAccountというオブジェクトの参照(Read)権限を持つ場合、理論上では、Accountのレコードを参照できることになるはずなのですが、しかし、Aさんにとって実際にAccountのレコードが見えるかどうかは、レコードレベルのセキュリティをコントロールするルール(OWD、共有ルール、ロール階層など)によって決まります。
組織全体の共有設定(OWD):
OWDはレコードレベルのセキュリティをコントロールします。 簡単に言えば、OWDは、どのレコードが操作できるかを規定するものです。
プロファイルとOWDが両方許可してから初めて、ユーザーはレコードに対して操作を実行できるようになるのです。
また、OWDで設定できるアクセス権限は概ね以下の3つ:
-
Private(非公開):機密データ用。レコード所有者や上長のみがアクセス可。
-
Public Read Only(公開・参照のみ):非機密データで共有や閲覧が必要な場合に使用。全ユーザーが参照できるが編集はできない。
-
Public Read/Write(公開・参照および編集可):ほとんど使われない。全ユーザーがレコードの参照・編集ともに可能。
ロール階層(Role Hierarchy):
レコードレベルのセキュリティをコントロールするルールです。
プロファイルとは異なり、ロール(Role)は必ずしも全ユーザーに割り当てる必要はありません(ロールなしのユーザーもいる)。
システム管理者がロール・ロール階層を設定した場合、 OWDでの設定に基づいて、「上位階層にいる者が自動的に下位階層にいる者も持つデータを閲覧できる」という権限が追加されます。下から上へ、また、横方向(同級)のデータ閲覧はできません。
共有ルール(Sharing Rules)& 手動共有(Manual Sharing):
レコードレベルのセキュリティをコントロールするルールです。より正確に言えば、この両者は、OWDが厳しく設定された(OWD=Private/Public Read Only)際に、権限を柔軟に拡張させるためのものです。
共有ルール | 手動共有 | |
---|---|---|
活用場面 | 広範囲・自動・一括付与 | 個別レコード・一時的な付与 |
対象 | ロール/パブリックグループ /チーム/条件ベース |
指定ユーザー/指定チーム |
実行者 | 管理者 | レコードの所有者または管理者 |
効果 | 条件を満たすと自動で付与 | 手動で一つずつ付与 |
主な用途 | 部門間の協力・チーム共有 | 一時的な協力・例外対応 |
3.2.3 権限セット&権限セットグループ(Permission Set&Permission Set Group)
プロファイルと同様に、権限セット(Permission Set)および権限セットグループ(Permission Set Group)は、オブジェクトレベルと項目レベルのセキュリティをコントロールします。
レコードレベルのセキュリティでは、OWDを踏まえて、ロール階層や共有ルールがOWDの権限を柔軟に拡張させるのと同じように、 オブジェクト&項目レベルのセキュリティでは、プロファイルを踏まえて、権限セットや権限セットグループはプロファイルの権限を柔軟に拡張させる役割を果たしています。また、先ほど述べたように、各ユーザーはプロファイルを1つだけしか割り当てられませんが、権限セットや権限セットグループは複数割り当てられたりします。こうした仕組みにより、柔軟な権限拡張が可能になります。
Discussion