べにおブログ

学んだことを、ゆっくり深く。

コンポーネントの可視性とは:同じプロファイルでも画面の見え方を変える仕組み

結論:まずこれだけ覚える

コンポーネントの可視性は、Lightning App Builderで配置したコンポーネントを、条件に応じて表示または非表示にする機能です。レコードの項目値、閲覧ユーザーのプロファイルや権限、利用端末などを条件にできます。 同じプロファイルのユーザーを権限セットの違いで出し分けたい場合は、対象の権限セットにカスタム権限を含め、そのカスタム権限を可視性条件に使用します。ただし、可視性は画面表示を調整する機能であり、データへのアクセス権限を制限するセキュリティ機能ではありません。

コンポーネントの可視性とは

Lightning App Builderで、レコードページ、アプリケーションページ、ホームページに配置したコンポーネントへ表示条件を設定する仕組みです。標準コンポーネント、カスタムコンポーネント、AppExchangeのコンポーネントに適用できます。 フィルタを設定しない場合、コンポーネントは通常どおり表示されます。1つ以上のフィルタを設定した場合、指定した条件とフィルタロジックを満たすまでコンポーネントは非表示になります。

ページレイアウトの割り当てとの違い

ページレイアウトは、主にプロファイルとレコードタイプの組み合わせに基づいて割り当てます。そのため、同じプロファイルを共有するユーザーを、権限セットの違いだけで別々のページレイアウトへ振り分けることはできません。 コンポーネントの可視性を使うと、同じLightningレコードページを使用したまま、関連リストやリッチテキストなどのコンポーネント単位で表示を切り替えられます。

比較項目ページレイアウトの割り当てコンポーネントの可視性
主な制御対象項目、関連リスト、ボタンなどのレイアウトLightningページ上の個々のコンポーネント
主な判定単位プロファイルとレコードタイプレコード項目、ユーザー、権限、端末などのフィルタ
同じプロファイル内の出し分け権限セットの違いだけでは不可権限やカスタム権限を条件にして対応可能

可視性フィルタで使える主な条件

ページの種類によって利用できる条件は異なりますが、主に次の条件を使用できます。

  • レコードの項目値
  • 関連オブジェクトやユーザーなどの項目
  • 閲覧ユーザーのプロファイル
  • 標準権限またはカスタム権限
  • デバイスの種類 レコードページではレコード項目を条件にできます。オブジェクトに関連付かないアプリケーションページやホームページでは、ユーザー、ユーザー権限、デバイスなどのコンテキストが中心になります。

権限セットごとに表示を分ける方法

権限セットの名前そのものではなく、権限セットを通じて付与したカスタム権限を判定条件にします。

  1. 表示対象を表すカスタム権限を作成する。
  2. そのカスタム権限を対象チーム用の権限セットまたは権限セットグループに含める。
  3. 対象ユーザーへ権限セットまたは権限セットグループを割り当てる。
  4. Lightning App Builderで対象コンポーネントを選択する。
  5. [コンポーネントの可視性]で、対象のカスタム権限が真であることを条件にする。
  6. ページを保存して有効化し、対象ユーザーと対象外ユーザーの両方で確認する。 カスタム権限は、標準のオブジェクト権限や項目権限では表せない独自の処理・機能へのアクセス判定を定義し、プロファイルまたは権限セットを通じてユーザーへ付与する仕組みです。

セキュリティ上の注意

コンポーネントを非表示にしても、その背後にあるレコードや項目へのアクセス権限は失われません。値はレポート、ダッシュボード、リストビューなど別の場所から見える場合があります。 データそのものを保護する場合は、次の仕組みを使用します。

  • オブジェクト権限
  • 項目レベルセキュリティ
  • 組織の共有設定、ロール階層、共有ルール、手動共有などのレコード共有 可視性フィルタで参照する項目へユーザーがアクセスできない場合、その条件は偽として評価されます。表示条件に使用する項目のアクセス権も確認してください。

試験での判別ポイント

  • 「同じプロファイルだが、特定のユーザー群だけコンポーネントを表示する」なら、コンポーネントの可視性を検討する。
  • 「特定の権限セットを持つユーザーだけ表示する」なら、カスタム権限を権限セットに含め、可視性条件で判定する。
  • 「データ自体を閲覧できないようにする」なら、コンポーネントの可視性ではなく、権限や共有を設定する。

出典(Salesforce公式)

  • Visibility Rules on Lightning Pages — Lightningページ上のコンポーネントにフィルタ条件とロジックを設定できること、レコード項目、ユーザー、ユーザー権限、デバイスなどを条件にできることを裏付けます。
  • Add Visibility Rules for Dynamic Pages — 条件未設定時の表示動作、複数条件のフィルタロジック、プロファイル・権限・端末に基づく可視性制御を裏付けます。
  • Custom Permissions — カスタム権限を独自機能のアクセス判定として定義し、プロファイルまたは権限セットを通じてユーザーへ付与できることを裏付けます。
  • Lightning components are not visible if their visibility is set via custom permissions — カスタム権限をプロファイルまたは権限セットで付与し、Lightningコンポーネントの可視性条件に使用する構成がサポートされることを示すSalesforce公式の解決済みKnown Issueです。
  • Lightning Page Visibility Rule Considerations and Limitations — 可視性ルールで非表示にしても項目データへのアクセスは失われず、可視性は項目レベルセキュリティの代替ではないこと、および条件項目へアクセスできない場合の評価を裏付けます。