コミュニティにおけるレコードの共有に関して、どのように設定しているか。
お客様にご安心いただくためにも、今いちど確認することは大変いいことだと思います。
今回は Salesforce社さまのナレッジ「
ゲストユーザセキュリティポリシーのベストプラクティス」を基に、どの部分を中心に見ていけばいいのか、まとめてみました。
なお、こちらはSalesforceの1ユーザとしての見解ですので、公式以上の正確性は担保できません。ご容赦ください。
コミュニティのゲストユーザにも権限が必要
コミュニティを作成すると、ゲストユーザ(ライセンスを持たない)が使用できるプロファイル、共有メカニズムが作成されます。
弊社のブログでも「
魅力的なお問い合わせサイトを作ってみたい!」でゲストユーザコミュニティのことが紹介されていますが、実はいろいろ裏でプロファイルやAPIの許可を行っています。
例えば……
ケース作成フォーム=グローバルアクションを利用→ 「サポート API へのゲストアクセス」でアクションをゲストユーザに許可。
ゲストユーザがアクションを利用してケースレコードを作成する→ ゲストユーザに対してケースの作成権限(+参照権限)を付与。
と、権限を付与する必要があります。
ゲストユーザにができることには制限をかける
現在、Salesforceでは次の機能が有効化される等、セキュリティ設定は徐々に厳しいものに変更されています。
ゲストユーザによるレコードへのアクセスの保護 ゲストユーザの共有設定をすべてのオブジェクトで「非公開」にする。
・ゲストユーザのレコードアクセス権を条件ベースの共有ルールで「参照」アクセス権のみ付与する。
・ゲストユーザにオブジェクトに対する「更新」または「削除」権を付与することはできない。
・ゲストユーザに「すべてのデータの参照」または「すべてのデータの編集」オブジェクトアクセス権を付与することはできない。
ゲストユーザによって作成された新規レコードの組織内のデフォルト所有者への割り当て ゲストユーザにレコードの所有権を付与することができない。
◇SALESFORCE ヘルプ >ドキュメント >SALESFORCE コミュニティの設定および管理
ゲストユーザのセキュリティポリシーとタイムライン 部分をデフォルトのまま、自分で何かを設定しない限りは、ゲストユーザはSalesforce内のレコードにアクセスする、ということはできない設定になっています。
ですが、よりセキュリティを安全・強固なものにするという点でセキュリティはベストプラクティスに沿って設定したほうがいいと考えています。
主な組織の設定
リストビューの設定リストビューの共有設定が「すべてのユーザがこのリストビューを表示できる」に設定されていないか確認します。この設定を行っていると、実はコミュニティユーザやゲストユーザにもそのリストビューが共有されますので、注意が必要です。
レコードアクセス権はセキュリティ(共有設定)やプロファイルで制御されますが、コミュニティを有効化した場合はこの設定がされているリストビューの共有設定を「リストビューをユーザグループと共有:すべての内部ユーザ公開グループ」に変更しておくと安心です。
共有設定すべてのオブジェクトの内部・外部のデフォルトの組織の共有設定を「非公開」に設定し、レコードの共有は「共有ルール」で設定するようにします。
内部の変更は必要に応じて…と思いますが、外部の共有設定を「非公開」に変更します。共有設定の設定ページで「デフォルトの外部アクセス権」を変更することが可能です。
上述した通り、ゲストユーザに対してはすでに非公開となっているのですが、ライセンスを持つコミュニティユーザに対してもアクセスする必要のない情報は厳しく設定する必要があります。
その後、必要に応じて共有ルールでコミュニティユーザやゲストユーザにアクセス権(ゲストユーザは参照権限のみ)を与えます。
「ユーザプロファイルに基づくゲストユーザとポータルユーザの @AuraEnabled Apex メソッドへのアクセスの制限 (重要な更新)」を適用するこちらについては、Winter'21の更新で自動適用されていると思います。念のためリリース更新から確認してください。
プロファイルの設定項目レベルセキュリティやオブジェクトアクセス権が最低限必要なものだけが付与されているかどうかを確認します。また、システム管理者権限の「APIの有効化」にチェックが入っている場合は、外してください。
ゲストユーザプロファイルには次のパスでアクセスできます。
パス:歯車 >設定>機能設定>コミュニティ>すべてのコミュニティ>コミュニティ名左横[ワークスペース]>管理>ページ>[Force.com に移動]>【公開アクセス設定】
※Lightningテンプレートでは、エクスペリエンスビルダーの【歯車アイコン】>[コミュニティ名+プロファイル]からもアクセス可能です。
デフォルトのレコードの所有者コミュニティのワークスペース「管理」の「詳細」ページで、コミュニティで作成したレコードのデフォルトの所有者を「内部ユーザ」に設定しておきます。
ゲストユーザに権限セットが割り当てられていないかどうかを確認権限セットでもゲストユーザに権限を付与できるので、念のため確認します。権限セットが割り当てられていた場合は、権限セット内を見て内容を確認し、不要な場合は権限をはく奪してください。
(普通は特殊な事情がなければ付与されていないとは思います…)
確認ページへのパス:ゲストユーザプロファイルページ>【このプロファイルに属するユーザの参照】>[ユーザ氏名]>ユーザページの権限セットセクションの確認
ベストプラクティスにおける追加の作業以下は標準でできる範囲を超えているので割愛します。
以上、皆さまの参考になれば幸いです。