オブジェクトへのアクセスの制御
学習の目的
この単元を完了すると、次のことができるようになります。
- プロファイル、権限セット、権限セットグループの違いを説明する。
- オブジェクトへのアクセス権を変更する。
- プロファイルをコピーして割り当てる。
- 新しい権限セットを作成して割り当てる。
- 新しい権限セットグループを作成して割り当てる。
オブジェクト権限の管理
データアクセスを制御する最も簡単な方法は、オブジェクトの特定の種別に対して権限を設定することです。(オブジェクトとは、リードや取引先責任者のようなレコードのコレクションです)。そのオブジェクトの任意のレコードをユーザーが作成、参照、編集、削除できるかどうかを管理できます。
オブジェクト権限はプロファイルでも設定できますが、権限セットと権限セットグループを使用して設定することをお勧めします。こうした機能の違いは何なのでしょうか?
-
権限セット: オブジェクト、項目、ユーザー権限をユーザーに割り当てるために使用します。リードの操作など、限定的なタスクに必要な権限をすべて含めて権限セットを整理することをお勧めします。ユーザーに複数の権限セットを割り当てることができます。
-
権限セットグループ: 管理しやすくする目的で、複数の権限セットをグループ化するために使用します。権限セットグループは、営業担当などの組織の「ペルソナ」を表すものと考えることができます。権限セットグループに割り当てられたユーザーには、そこに含まれる権限セットのすべての権限が付与されます。ユーザーに複数の権限セットグループを割り当てることができます。また、権限セットは別の権限セットグループで再利用できるため、アクセスを管理しやすくなります。
-
プロファイル: 割り当てられるアプリケーション、レコードタイプ、ページレイアウトなど、ユーザーのデフォルト設定を定義するために使用します。ユーザーにはプロファイルが 1 つ割り当てられます。
詳細は、Salesforce ヘルプの「権限セットおよび権限セットグループの作成のガイドライン」を参照してください。ご覧のとおり、こうした機能を使用すれば、オブジェクトレベルのアクセス権を極めて柔軟に指定できます。この単元では、社員募集アプリケーションにこうした機能を設定して、ユーザーにオブジェクトの適切なアクセス権が付与されるようにする方法を説明します。
社員募集アプリケーションのオブジェクト権限
では、社員募集アプリケーションにオブジェクトレベルのアクセス権を設定する方法を見てみましょう。このアプリケーションには、主に採用担当マネージャー、採用担当者、面接官、標準従業員という 4 種のユーザーがいます。各種のユーザーはオブジェクトに対してどのようなアクセス権が必要でしょうか?
採用担当マネージャー
採用担当マネージャーの Ben は、自分が募集している職種に関連する採用レコードへはアクセスできるが、その他の採用レコード (自分の部下である他の採用担当マネージャーが所有しているものを除く) にはアクセスできないようにします。また、社会保障番号項目など、Ben が参照する必要のない機密項目もあります。アプリケーション内の主要なカスタムオブジェクトのそれぞれに対して Ben に必要な権限を検討します。
-
Position (職種): Ben が新しい職種を掲載し、自分が採用担当マネージャーである職種のすべての項目を更新および参照できるようにし、他のマネージャーの職種は参照のみできるようにする必要があります。
-
Candidate (応募者): Ben が、自分が採用担当マネージャーである職種に応募した人のみを参照できるようにする必要があります。さらに、Ben が応募者の社会保障番号を参照する理由はないため、この項目は Ben が参照できないように制限する必要があります。
-
Job Application (求人応募): Ben が、どの応募者が採用または不採用かを示すために求人応募の状況を更新できるようにする必要があります。ただし、求人の応募者の一覧や各人が応募している職種については変更できないようにしなければなりません。そのため、Ben が求人応募の参照項目を更新できないようにする必要があります。
-
Review (審査): 応募者について決定を行うために、Ben が、面接官が投稿した審査を参照し、面接官の審査が偏っていると感じたときにはコメントを入力できるようにする必要があります。同様に、Ben は自分が面接した応募者の印象を覚えておけるように、審査票を作成する必要もあります。
採用担当者
採用担当者である Mario は、システム内のすべての職種、応募者、求人応募、審査を作成、参照、変更できる必要があります。また、作成者に関係なく、採用担当者全員がすべての職種の求人について協力し合うことになるため、Ben は他の採用担当者が所有している社員募集レコードについても参照と変更ができなければなりません。
採用担当者が応募者に関する情報を含むレコードを誤って削除してしまわないようにする必要があります。これは、採用に関する意思決定に疑惑が生じた場合に法廷で弁護できるように、社員募集関連のレコードを数年間保存しておくことが、州法や連邦法によって定められているためです。
面接官
Melissa は、高度に技術的な職種への応募者を面接するエンジニアです。Melissa については、自分が面接を担当する応募者と求人応募のみを参照できるようにする必要があります。また、すべての職種のボーナスの最大値と最小値およびすべての応募者の社会保障番号は、面接官の職務には関係ない機密情報であるため、参照できないようにします。
標準従業員
Harry のような従業員は、活動中の採用担当マネージャーや面接官ではありませんが、新しい人材を採用する際の最適なリソースであることがよくあります。このため、募集中の職種を参照できるが、ボーナスの最大値と最小値の項目は参照できないようにする必要があります。また、Harry が社員募集アプリケーションのその他のレコードを参照できないようにする必要があります。
次に、4 つの種別の各ユーザーに必要な権限をまとめました。
カスタムオブジェクト
|
採用担当者
|
採用担当マネージャー
|
面接官
|
標準従業員
|
---|---|---|---|---|
Position (職種) |
参照、作成、編集 |
参照、作成、編集* |
参照 (ボーナスの最小値、最大値を除く) |
参照 (ボーナスの最小値、最大値を除く) |
Candidate (候補者) |
参照、作成、編集 |
参照* (社会保障番号を除く) |
参照* (社会保障番号を除く) |
該当しない |
Job Application (求人応募) |
参照、作成、編集 |
参照、編集 (参照項目を除く) |
参照* |
該当しない |
Review (審査) |
参照、作成、編集 |
参照、作成、編集 |
参照**、作成、編集** |
該当しない |
* 採用担当マネージャーや面接官が担当する職種に関連するレコードのみ。
** 面接官が所有するレコードのみ。
ここからは、プラットフォームを使用して社員募集アプリケーションにこれらの要件を実装する方法について学習します。このためには、オブジェクト、項目、レコードの 3 つのレベルでセキュリティコントロールを設定する必要があります。
プロファイルを設定する
先ほど説明したとおり、どのユーザーにもプロファイルが 1 つあり、ユーザーライセンスに関連付けられています。プラットフォームには、設定が事前定義された一連の標準プロファイルが含まれます。たとえば、次のようなものがあります:
- 標準ユーザー
- マーケティングユーザー
- 契約管理者
- システム管理者
- 最小アクセス - Salesforce
各標準プロファイルには、プラットフォーム上で使用可能な標準オブジェクトのデフォルトの権限のセットが含まれています。たとえば、標準ユーザーはレコードの作成や編集ができますが、「最小アクセス - Salesforce」ユーザーはレコードを参照できても作成や編集はできません。システム管理者プロファイルには、最も広範なデータへのアクセスが許可され、Salesforce での設定やカスタマイズについて最大の権限が付与されます。特に、システム管理者プロファイルには「すべてのデータの参照」と「すべてのデータの編集」という特別な 2 つの権限が含まれます。これらの権限は他のすべての共有設定より優先されるため、システム管理者以外のプロファイルに割り当てる場合には注意が必要です。
権限セットと権限セットグループを使用してアクセス権を設定するというセキュリティのベストプラクティスに従っている場合は特に、一部の標準プロファイルにユーザーが必要とする以上のアクセス権が含まれていることがあります。プロファイルをユーザーに割り当てる前に、各プロファイルに含まれる権限や設定を必ず確認します。
標準プロファイルのオブジェクト権限は編集できません。ただし、既存のプロファイルをコピーして、それを新しいプロファイルの基盤として使用し、必要に応じて設定を調整することができます。可能な限り、最小アクセス - Salesforce プロファイル (またはそのコピー) を使用したうえで、権限セットと権限セットグループを使用して、ユーザーに必要な権限のみを付与するようにします。たとえば、社員募集アプリケーションでは、職務が異なる採用担当者、面接官、採用担当マネージャーに、最小アクセス - Salesforce プロファイルを割り当てることが考えられます。このプロファイルで付与される Salesforce Platform の権限と機能は極めて限定的ですが、権限セットと権限セットグループを使用して追加のアクセス権を付与できます。
プロファイルを作成して割り当てる
プロファイルを作成する最も簡単な方法は、作成するプロファイルと似た既存のプロファイルをコピーし、それを変更することです。たとえば、最小アクセス - Salesforce プロファイルをわずかに変更して、異なるデフォルトアプリケーションが表示されるバージョンが必要になることがあります。
Salesforce の拡張プロファイルユーザーインターフェースを使用すれば、プロファイル設定を簡単に検索して変更できます。この演習で実際に使ってみましょう。
[代替テキスト: ユーザープロファイルのリスト。「顧客プロファイルは、任意の属性を編集できます。標準プロファイルは、権限設定をそのまま受け入れる必要があります。」という注記が付いています。]
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [User Management Settings (ユーザー管理設定)] を検索して選択します。
-
[拡張プロファイルユーザーインターフェース] を有効にします。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Profiles (プロファイル)] を検索して選択します。
- 作成するプロファイルに似たプロファイルの横にある [コピー] をクリックします。
- 新しいプロファイルに名前を付けて [Save (保存)] をクリックします。
- 必要に応じて、プロファイルのデフォルト設定を編集し、[Save (保存)] をクリックします。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Users (ユーザー)] を検索して選択します。
- プロファイルを割り当てるユーザーの横にある [編集] をクリックします。
-
[プロファイル] ドロップダウンで、先ほど設定したプロファイルを選択します。
-
[Save (保存)] をクリックします。
権限セットと権限セットグループを使用してアクセス権を付与する
以前に、権限セットと権限セットグループが、ユーザーの権限とアクセス権を管理する推奨方法であることを学びました。その理由を詳しく見ていきましょう。
権限セットは、さまざまなツールと機能へのアクセス権をユーザーに付与する設定と権限のコレクションです。権限セットグループは、その名のとおり、権限セットのグループです。権限セットを使用すれば、その柔軟性と再利用性により、組織内のさまざまなアプリケーションやオブジェクトへのアクセス権を簡単に付与できます (さらに、不要になったアクセス権を簡単に取り消すことができます)。小さな権限セットのビルディングブロックを再利用できるため、ユーザーや職務ごとに数十から数百のプロファイルを作成する手間を省けます。
ジョブまたはタスクに必要なすべての権限が含まれる権限セットを作成します。次に、これらの権限セットを、ユーザー人格に対応する権限セットグループにバンドルします。異なる人格が同じタスクを実行する場合、その権限セットを異なる権限セットグループで再利用できます。
たとえば、営業担当とマーケティングスペシャリストの両方がリードを削除して移行しなければならないとします。リードの管理に基づいて権限セットを作成できます。続いて、ユーザーのロールに基づいて、この権限セットを「Sales Reps (営業担当)」と「Marketing Specialists (マーケティングスペシャリスト)」という権限セットグループに含めます。営業またはマーケティングのみに関連する追加の権限については、権限セットを作成して、それぞれの権限セットグループに含めることができます。
権限セットで次の権限と機能を設定します。
- Apex クラス
- 接続アプリケーションのアクセス
- カスタム権限
- 項目権限
- オブジェクト権限
- ユーザー権限 (アプリケーション権限およびシステム権限)
- タブの設定
- Visualforce ページ
社員募集アプリケーションの権限セットと権限セットグループ
権限セットと権限セットグループについて理解したところで、サンプルの社員募集アプリケーションにオブジェクトレベルのアクセス権を設定する方法を考えてみます。このアプリケーションには、主に 4 つの種別のユーザーがいます。採用担当者、採用担当マネージャー、面接官、標準従業員です。
採用担当者
明確に定義された職務であるため、「Recruiters (採用担当者)」権限セットグループを作成することが理にかなっています。採用データ (審査、応募者、職種、求人応募) へのアクセスについては、この各オブジェクトのタスクに関連する別々の権限セットを作成します。
採用担当マネージャー
営業部門の採用担当マネージャーとエンジニアリング部門の採用担当マネージャーでは、アクセスする必要のあるデータの種別が異なる可能性があります。その一方で、どの採用担当マネージャーにも、採用データに対するオブジェクト権限を介した同じ種別のアクセス権が必要です。このため、さまざまな種別のユーザーに割り当て可能な「Hiring Manager (採用担当マネージャー)」権限セットを作成することをお勧めします。項目レベルセキュリティやレコードアクセスなど、具体的な制限には後で対処します。
面接官
どの部署のどの職務の従業員でも、指名されて面接を行う可能性があります。この場合、限定された期間のみ採用情報へのアクセス権が必要となります。面接官の権限セットグループを定義し、必要に応じてユーザーを割り当てる、または削除することが理にかなっています。
特に審査については、採用担当者、採用担当マネージャー、面接官のすべてに、審査オブジェクトに対する「参照」「作成」「編集」権限が必要です。このすべての職務の権限セットグループに同じ権限セットを再利用すれば、手間を省くことができます。
標準従業員
採用業務に関与していない従業員も、職種を参照できるようにする必要があります。これは全社的な要件であるため、職種に対するより限定的な「参照」アクセス権を付与するベースライン権限セットを作成することを検討します。次に、この権限セットをペルソナ固有の権限セットグループに追加して、すべてのユーザーが何らかの方法でこのアクセス権を取得できるようにします。
権限に関する上記のシナリオを念頭に置いた、社員募集アプリケーションのオブジェクト権限の最適な設定方法は次のようになります。
- 採用担当者と採用担当マネージャーと面接官の 3 つの権限セットグループを作成します。
- 審査、応募者、職種、求人応募の処理に関連する権限セットを作成します。可能な限り、権限セットグループの権限セットを再利用しますが、ユーザーに過度の権限を付与しないようにします。
権限セットを作成する
社員募集アプリケーションの Review (審査) オブジェクトに対するアクセス権を管理する権限セットを作成します。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Permission Sets (権限セット)] を検索して選択します。
-
[New (新規)] をクリックします。
- 権限セットの表示ラベルと説明を入力します。
Access and Manage Reviews
(審査のアクセスと管理) という名前にします。
- 必要に応じて、特定のライセンスを持つユーザーのみをこの権限セットの割り当て対象にするかどうかを選択できます。[–None– (–なし–)] を選択します。
-
[Save (保存)] をクリックします。
- オブジェクト権限を追加するには、[Find Settings (設定の検索)] ボックスで、[Reviews (審査)] を検索して選択します。
-
[Edit (編集)] をクリックします。
-
[Read (参照)]、[Create (作成)]、[Edit (編集)] 権限を有効にします。
-
[Save (保存)] をクリックします。
権限セットを直接ユーザーに割り当てることができます。ただし、ここでは最初に権限セットグループを作成して、この権限セットを追加します。
権限セットグループを作成する
社員募集アプリケーションについては、ペルソナベースの 3 つの権限セットグループのすべてに、審査に対する同じオブジェクト権限を含めることにしました。採用担当者の権限セットグループを作成します。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Permission Set Groups (権限セットグループ)] を検索して選択します。
-
[New Permission Set Group (新規権限セットグループ)] をクリックします。
- 権限セットグループの表示ラベル (この場合は
Recruiters
(採用担当者)) と説明を入力します。
-
[Save (保存)] をクリックします。
- 作成した [Recruiters (採用担当者)] 権限セットグループをクリックし、[Permission Sets in Group (グループの権限セット)] をクリックします。
-
[Add Permission Set (権限セットの追加)] をクリックして、[Access and Manage Reviews (審査のアクセスと管理)] 権限セットのチェックボックスをオンにします。
-
[Add (追加)] をクリックして、[Done (完了)] をクリックします。
「Recruiters (採用担当者)」権限セットグループが設定され、審査へのアクセス権が付与されます。最後のステップは、これをユーザーに割り当てることです。
- [Access and Manage (アクセスと管理)] 権限セットグループの概要ページで、[Manage Assignments (割り当ての管理)]、[Add Assignment (割り当てを追加)] の順にクリックします。
- このグループに割り当てるユーザーを選択して、[Next (次へ)] をクリックします。
- 必要に応じて、ユーザー割り当てが失効する有効期限を選択します。このオプションは、ユーザーに一時的に権限セットグループを割り当てる場合に便利です。
-
[割り当て] をクリックします。
概要を使用してアクセスを確認する
すべてのオブジェクトに対するアクセス権を設定しているときに、追跡すべきことがたくさんあると気づくかもしれません。「どの権限セットで取引先にアクセスできるか?」「Joe Smith にリードを削除する権限があるか?」などと考えます。オブジェクトアクセス、ユーザーアクセス、権限セット、権限セットグループに関する Salesforce の概要を使用すると、権限を確認して管理しやすくなります。
たとえば、オブジェクトマネージャーで、オブジェクトへのアクセス権を付与する権限セット、権限セットグループ、プロファイルのほか、付与されたアクセスレベルを確認できます。
- [Setup (設定)] から [Object Manager (オブジェクトマネージャー)] に移動します。
- オブジェクト権限をサポートするオブジェクトを選択します。
- サイドバーで、[Object Access (オブジェクトアクセス)] をクリックします。
ユーザーに割り当てられているすべてのオブジェクト、項目、ユーザー権限のほか、そのアクセスがどのような方法で付与されているかも確認できます。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Users (ユーザー)] を検索して選択します。
- ユーザーを選択します。
-
[View Summary (概要を表示)] をクリックします。
最後に、概要ページで、権限セットまたは権限セットグループに含まれているすべての権限を簡単に確認できます。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスで [Permission Sets (権限セット)] を検索して選択します。または、[Quick Find (クイック検索)] ボックスで [Permission Set Groups (権限セットグループ)] を検索して選択します。
- 権限セットまたは権限セットグループを選択します。
-
[View Summary (概要を表示)] をクリックします。
これで完了です。オブジェクト権限を割り当てて、データアクセスの管理の第一歩を踏み出しました。次の単元では、項目とレコードに制限を設定するという方法で、このデータアクセスを微調整します。
リソース
- Salesforce ヘルプ: ユーザーおよびデータアクセスの管理
- Salesforce ヘルプ: オブジェクトの権限
- Salesforce ヘルプ: プロファイルでのデフォルト設定の定義
- Salesforce ヘルプ: 権限セットでの権限とアクセス権の設定
- Salesforce ヘルプ: 権限セットグループ
- Salesforce ヘルプ: オブジェクトマネージャーでのオブジェクトアクセス権の表示
- Salesforce ヘルプ: ユーザーのアクセス権の概要の表示
- Salesforce ヘルプ: 権限セットまたは権限セットグループで有効化された権限の表示