共有設定の各チェックボックスでセキュリティを強化する

sharingCheckbox 機能

Salesforceの共有設定ではオブジェクト毎の公開/非公開モデル、共有ルールの設定などアクセス権の制御が可能です。

その他にも下記のようにいくつかのチェックボックスがあり、細かなアクセス権制御が可能です。頻繁に変更しない場所ですが、セキュリティ的に意識すべき点ですので改めて整理していきます。

共有設定の各チェックボックス

ポータルユーザ表示

チェックありに設定された場合、組織の共有設定に関係なく同じ取引先に紐づくコミュニティ(エクスペリエンス)ユーザがお互いを表示できます。

<例>

・コミュニティユーザ1(取引先A所属)

・コミュニティユーザ2(取引先A所属)

・コミュニティユーザ3(取引先B所属)

->ユーザ1 とユーザ2 はお互いを表示可能 :同じ取引先所属の為

->ユーザ1 とユーザ3 はお互いに表示不可 :異なる取引先所属の為

->ユーザ2 とユーザ3 はお互いに表示不可 :異なる取引先所属の為

 

 

サイトユーザ表示

チェックありに設定された場合、同じコミュニティ(エクスペリエンス)サイトのメンバーとして追加されているユーザがお互いを表示できます。

ただし互いに表示するにはこれに加えて、下記のようにエクスペリエンスサイトの [ワークスペース] > [管理] > [詳細] にて、[このサイトの他のメンバーを表示] もチェックありとしておく必要があります。

管理画面

また組織の共有設定の [サイトユーザの表示] が無効の場合には、[このサイトの他のメンバーを表示] は自動的に無効となるようです。

 

 

マネージャのグループ

チェックありに設定された場合、ユーザ新規作成や編集する際のユーザページで設定できる「マネージャ」を元にアクセス権を制御できます。

ユーザ登録ページ

下記図の中央にいるユーザを自分と見立てた場合、ユーザ全体が1と2で分類されます。すべて各ユーザの「マネージャ」に指定されたユーザを元に階層が組まれているイメージです。

1.マネージャーのグループ:自ユーザの直属マネージャと、更にそれ以上の全マネージャ(間接マネージャ)が含まれる

2.マネージャーの下位グループ:自ユーザ自身と、自ユーザの直属部下およびそれ以下の全部下(間接部下)が含まれる

ここまで見てきた”マネージャーのグループ”、”マネージャーの下位グループ”はレコード手動共有や共有ルールなどで使用できます。例えば共有ルールの共有先をいままでは公開グループにしていた部分で”マネージャーのグループ”を代わりに使うなどが考えられます。

共有設定でマネジャーグループの確認

 

 

作成されるロール数を最小限に抑えます。これにより、処理の負荷が軽減され、パフォーマンスが向上します。

”取引先ロールの最適化”とも呼ばれます。チェックありに設定された場合、Experienceユーザ有効化が1名もいない取引先でExperienceユーザを有効化する際に個人取引先ロールを割り当てられます。

Experience CloudのライセンスであるPartnerCommunity、CustomerCommunityPlusでは各Experienceユーザにロールが割り当てられますが(CustomerCommunityライセンスでは割り当てられない)、通常は1取引先に1Experienceユーザしかいない場合でも最大3ロールが作成されてしまうことを防ぎます。

各Salesforce組織のデフォルトではロール自体の作成上限が5万のため、”取引先ロールの最適化”はこの上限に達する可能性を低くします。ロール作成上限はSalesforceサポートに依頼することで引き上げも可能です。

 

 

参照項目にレコード名を表示するための権限が必要

現在見ているレコードにはアクセス権があるが、そのレコードの参照項目レコードにはアクセス権がない場合の挙動を制御します。”アクセス権がない”状態は下記2つが考えれらます。

 1.対象オブジェクトの共有設定で参照権限がない(=非公開モデル)

 2.プロファイルで対象オブジェクトに参照権限がない

2の場合は参照項目自体がレコードに表示されないため、今回の検証では1にて確認していきます。

ちなみに2では下記のようにプロファイルで取引先に参照権の有無で項目自体の表示非表示が変わります。

【プロファイルで取引先の参照権限がある場合】

カスタムオブジェクトA:レコード2

【プロファイルで取引先の参照権限がない場合】

カスタムオブジェクトA:レコード2で取引先が非表示

 

 

それでは1.対象オブジェクトの共有設定で参照権限がない(=非公開モデル)のパターンで[参照項目にレコード名を表示するための権限が必要]が有効/無効の違いを見ていきます。

今回はカスタムオブジェクトAに参照編集権限を持ったExperienceCloudの外部ユーザが、取引先非公開モデル時の挙動で確認してみます。

 

 

【参照項目にレコード名を表示するための権限が必要 が無効状態】

取引先の共有設定で非公開モデルとします。

共有設定の取引先

プロファイルでは取引先に参照権限があります。

プロファイルの取引先

[参照項目にレコード名を表示するための権限が必要]を無効化します。

共有設定の参照項目にレコード名を表示するための権限

このパターンでは外部ユーザがカスタムオブジェクトAレコードを確認すると、下記のように参照権限がないはずの取引先名が見えてしまっています。

レコード2で取引先が表示

取引先自体に対して参照権限がありませんが、取引先名は表示されています。セキュリティ的に問題がありそうです。

 

 

↓ちなみに取引先の「取引先0518」をクリックすると白地に「Invalid Page」とだけ表示されるエラーページに遷移します。取引先オブジェクト自体に参照権限がないため取引先レコードには遷移できません。

invalidPageの表示

 

 

【参照項目にレコード名を表示するための権限が必要 が有効状態】

取引先の共有設定で変わらず非公開モデルとします。

共有設定の取引先が非公開

プロファイルでも変わらず取引先に参照権限があります。

プロファイルで取引先の権限あり

[参照項目にレコード名を表示するための権限が必要]を有効化します。

共有設定の参照項目にレコード名を表示するための権限が必要が有効

こちらのパターンでは参照項目自体に取引先名が表示されません。もちろん取引先へ遷移するために値クリックも出来ません。取引先自体に参照権限がないためこのパターンが自然と言えます。

レコード2で取引先の値が非表示

機能
Salesforceナレッジ

コメント

タイトルとURLをコピーしました