ADVERTISEMENT

【Salesforce】項目レベルセキュリティが想定と違う時の管理者が見るべき原因

【Salesforce】項目レベルセキュリティが想定と違う時の管理者が見るべき原因
🛡️ 超解決

Salesforceの項目レベルセキュリティ(Field-Level Security、以下FLS)は、ユーザーが特定の項目を参照・編集できるかどうかを制御する重要な設定です。しかし、プロファイルや権限セットで正しく設定したはずなのに、想定通りに動作しないケースが少なくありません。管理者として「設定したのに反映されない」「一部のユーザーだけ項目が見えない」といった問題に直面した場合、原因を体系的に切り分ける必要があります。本記事では、FLSが想定と違う動作をする原因を特定するための具体的な確認手順と、管理者が見るべきポイントを詳しく解説します。

【要点】この記事で確認すること

  • 最初に見る場所: 対象ユーザーに割り当てられているプロファイルと権限セットのFLS設定、およびページレイアウトでの項目の表示設定
  • 切り分けの軸: 権限の優先順位(プロファイルより権限セットが上位かどうか)、オブジェクト・項目単位の権限と画面表示の分離
  • 注意点: 会社のSalesforce環境でプロファイルや権限セットを変更する前に、必ず変更管理プロセスを確認し、Sandboxでテストしてから本番に適用してください

ADVERTISEMENT

項目レベルセキュリティの基本と設定箇所

FLSとは何か

FLSは、オブジェクトの各項目に対して「参照可能」「編集可能」を個別に設定する権限です。プロファイルや権限セットで設定でき、レコードの詳細画面やリストビューでの表示・編集に影響します。ただし、FLSが「参照可能」になっていても、ページレイアウトにその項目が配置されていないとユーザーは見ることができません。また、共有ルールや組織全体の共有設定とは別のレイヤーです。

設定できる場所

FLSは主に以下の3つの場所から設定します。それぞれの役割を理解しておくことがトラブルシューティングの第一歩です。

  • オブジェクトマネージャ: オブジェクトの「項目とリレーション」から各項目のFLSを一括編集できます。権限セットやプロファイルを横断して設定を確認する際に便利です。
  • プロファイル: ユーザーの基本的な権限セット。プロファイルでFLSが制限されていると、権限セットで開放しても反映されない場合があります(権限セットの設定によって異なる)。
  • 権限セット: プロファイルを補完する追加権限。権限セットのFLSは通常、プロファイルの設定を上書きしますが、後述の優先順位に注意が必要です。

想定と違う原因の切り分け方

アクセス権限の優先順位

FLSの最終的な権限は、プロファイルと権限セットの組み合わせで決まります。基本ルールは「最も制限の少ない設定が優先される」ですが、プロファイルと権限セットの関係には例外があります。具体的には、権限セットで「参照可能」をオンにしても、プロファイルで「参照不可」になっていると権限セットの設定が無効になるケースがあります。これは、プロファイルが「参照不可」の場合、権限セットで「参照可能」にしても“より制限の少ない”とはみなされず、プロファイルが優先されるからです。逆に、プロファイルで「参照可能」、権限セットで「参照不可」にすると、権限セットの「参照不可」が優先されます(つまり制限が適用される)。この動作は直感と異なる場合があるため、注意が必要です。

プロファイル vs 権限セットの比較表

設定 プロファイルのみ 権限セットのみ 両方設定
参照可能 プロファイルの設定が適用 権限セットの設定が適用 プロファイル「参照不可」+権限セット「参照可能」→プロファイル優先(参照不可)。プロファイル「参照可能」+権限セット「参照不可」→権限セット優先(参照不可)。
編集可能 プロファイルの設定が適用 権限セットの設定が適用 同様に、どちらかが「編集不可」ならその制限が優先される。

上記の表からわかるように、プロファイルと権限セットの設定が競合する場合、制限側(不可)の設定が優先される傾向があります。この動作はバージョンや設定によって変わる可能性があるため、常に実機で確認することが重要です。

原因特定のための確認手順

以下の手順に沿って確認することで、原因を体系的に特定できます。管理者権限でログインし、Sandbox環境でテストすることを推奨します。

  1. 対象ユーザーのプロファイルを確認する: 設定画面から「ユーザー」を開き、該当ユーザーのプロファイルを特定します。プロファイルの「オブジェクト設定」から対象オブジェクトの「編集」をクリックし、問題の項目のFLSがどうなっているか確認します。
  2. 割り当てられている権限セットをリストアップする: 同じユーザー詳細画面から「権限セットの割り当て」を開き、アクティブな権限セットをすべて確認します。権限セットが複数ある場合、それぞれのFLS設定を確認します。
  3. オブジェクトマネージャで該当項目のFLSを一覧表示する: 設定画面の「オブジェクトマネージャ」から対象オブジェクトを選択し、「項目とリレーション」で該当項目の「フィールドレベルセキュリティ」を開きます。プロファイルと権限セットごとに「参照可能」「編集可能」のチェック状態を確認します。
  4. ページレイアウトの割り当てを確認する: 同じくオブジェクトマネージャで「ページレイアウト」を開き、該当ユーザーのプロファイルや権限セットに割り当てられているページレイアウトを確認します。そのレイアウトに問題の項目が配置されているか、セクションの詳細表示設定が適切か確認します。
  5. ユーザーとして画面を実際に表示する: 「ログイン as ユーザー」機能を使って該当ユーザーと同じ権限で画面を開き、項目が表示されるか、編集できるかを確認します。この手順でUI上の問題を特定できます。
  6. 必要に応じて権限セットの有効化状態をチェック: 権限セットが割り当てられていても、有効期限や条件(例:権限セットグループの割り当て条件)が適切か確認します。また、権限セットが「有効」になっているかも確認します。

よくある失敗パターン

編集可能と参照可能の混同

FLSでは「参照可能」と「編集可能」は独立した設定です。例えば、プロファイルで「参照可能」のみチェックし、「編集可能」をチェックしていない場合、ユーザーは項目を見ることはできても編集はできません。しかし、「編集不可」にしたいがために「参照可能」も外してしまうと、そもそも項目が表示されなくなります。このような混同が原因で、想定と違う動作になることがあります。正しくは、「参照可能」は残したまま「編集可能」のみを外す必要があります。

ページレイアウトで項目が非表示

FLSで「参照可能」にしていても、ページレイアウトでその項目が配置されていないと、ユーザーは見ることができません。また、ページレイアウトの項目プロパティで「常に更新」や「読み取り専用」などの設定が行われている場合もあります。特に、権限セットでFLSを開放したがページレイアウトが対応していないケースは多いです。ページレイアウトの割り当ても確認しましょう。

権限セットの重複と優先度の誤認識

複数の権限セットが割り当てられている場合、それらのFLS設定が競合することがあります。例えば、権限セットAで項目Xを「参照可能」にし、権限セットBで「参照不可」にしていると、どちらが優先されるかは、先述の優先順位ルールに依存します。多くの管理者は「権限セットはプロファイルより優先される」という認識を持っていますが、実際には制限側が優先されるため、意図しない制限がかかることがあります。権限セット間の競合も同様です。

管理者が確認すべき設定情報

問題を解決するために、管理者は以下の情報を収集し、原因を特定する材料とします。

  • 使用しているSalesforceエディションとライセンス: 一部のエディションではFLSの動作や権限セットの使用に制限があります。
  • オブジェクトの共有設定: 共有ルールや組織全体の既定のアクセス権限がFLSに影響を与えることはありませんが、レコードへのアクセスがないと項目も見えません。そのため、レコードレベルセキュリティも併せて確認します。
  • 権限セットの有効化と割り当て履歴: 最近変更された権限セットや、割り当てが正しく適用されたか確認します。監査証跡を活用すると便利です。
  • カスタム項目か標準項目かの区別: 標準項目の中には特別な制御(例:システム管理者のみ編集可能など)がかかっているものがあります。ヘルプドキュメントで確認します。
  • ApexやVisualforceページによる制御: カスタムコードで項目の表示・非表示を制御している場合、FLSの設定が無視される可能性があります。開発チームと連携して確認します。

よくある質問(FAQ)

Q: プロファイルと権限セットのFLS設定が競合した場合、どちらが優先されますか?
A: 原則として、制限する側の設定(参照不可や編集不可)が優先されます。例えば、プロファイルで「参照不可」、権限セットで「参照可能」の場合、プロファイルの「参照不可」が有効になります。逆に、プロファイルで「参照可能」、権限セットで「参照不可」の場合は、権限セットの「参照不可」が優先されます。この動作を理解しておく必要があります。

Q: FLSを正しく設定したのに項目が表示されません。次に何を確認すればよいですか?
A: まずページレイアウトの割り当てと、そのレイアウト内に項目が配置されているかを確認します。次に、オブジェクトの共有設定でレコード自体にアクセスできるか確認します。さらに、ユーザーのプロファイルや権限セット以外に、項目制御を特定の条件で行うApexトリガやVisualforceページが存在しないか確認してください。

Q: 権限セットを新しく割り当てたのに、FLSが反映されるまでタイムラグはありますか?
A: 通常、権限セットの割り当ては即座に反映されます。ただし、ユーザーがログインし直さないとキャッシュが残る場合があります。また、Lightning Experienceのキャッシュをクリアする必要があることもあります。管理画面から「ユーザーのキャッシュをクリア」を試してください。

Q: 複数の権限セットが割り当てられている場合、FLSはどうなりますか?
A: 権限セットごとにFLS設定が独立しており、それらの設定が競合する場合は制限側の設定が優先されます。すべての権限セットのFLS設定を確認し、最も制限の厳しい組み合わせが有効になると想定してください。権限セットが多数ある場合は、権限セットグループを使用して整理することを検討します。

Q: システム管理者プロファイルでもFLSは影響しますか?
A: システム管理者プロファイルは通常、すべての項目に対して「参照可能」「編集可能」がデフォルトで有効になっています。ただし、カスタム項目のFLS設定を明示的に変更した場合、システム管理者でも制限がかかることがあります。意図しない制限を避けるため、システム管理者のFLSは変更しないことを推奨します。

まとめ

項目レベルセキュリティが想定と違う動作をする場合、原因はプロファイルと権限セットの競合、ページレイアウトの設定漏れ、または権限の優先順位の誤解に集約されます。管理者はまず、対象ユーザーのプロファイルと権限セットのFLS設定をオブジェクトマネージャで一覧確認し、次にページレイアウトの割り当てをチェックしてください。さらに、権限セットやプロファイルの変更は必ずSandboxで検証し、本番環境に適用する前に影響範囲を確認する習慣が重要です。定期的にアクセス権限を監査し、想定外の設定が混入していないかを確認することで、問題の早期発見につながります。この記事で紹介した手順とポイントを参考に、Salesforceのセキュリティ設定を的確に管理してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT