Technology

Salesforce データセキュリティ プロファイル 共有設定 ロール

投稿日:2019年11月7日 更新日:

こんにちは、管理人の@Salesforce.Zです。Salesforceのセキュリティ体制がきちんと整えている、セキュリティも、大手企業はSalesforce製品を導入する理由の一つです。ここに来た方が開発者か、案件のリーダーかと考えられます。セキュリティの面で、要件定義フェーズで、困ったではないかと思います。今一度、基礎を確認していきましょう。きっと良い整理になります。

データセキュリティ

大まか、4つレベルで、セキュリティを管理できます。

組織、組織内のすべてのオブジェクト、オブジェクトの特定の項目、オブジェクトのレコードでは、各々の制御ができます。

組織レベル

これが、 組織レベルで、承認されたユーザのリストを維持し、パスワードポリシーを設定し、特定の時間と場所にログインを制限できます。プロファイルのところで、設定できます。

オブジェクトレベル

これもプロファイルのところで、特定のオブジェクトに対して、下記の操作権限の制御ができる

  • 参照
  • 作成
  • 編集
  • 削除
  • すべて表示(自分が所有者ではないレコードでも見れること)
  • すべて編集( 自分が所有者ではないレコードでも変更できること)
制御画面イメージ

項目レベル

一つのオブジェクトに複数の項目って構成するので、普段はId、Name項目が標準で付いてきますが、カスタマイズで、作成するXXX項目には組織にあらゆるプロファイルに対して、権限(参照可能と参照のみ)を付与できます。

項目レベルセキュリティー設定イメージ

レコードレベル

あるXXユーザにオブジェクトの参照を許可しながら、参照できる個々のオブジェクトレコードを制限できます 。 レコードレベルのアクセス権は、次の 4 つの方法で管理できます。

  • 組織の共有設定
  • ロール階層
  • 共有ルール
  • 共有の直接設定

組織の共有設定

開発現場では、よく言うデータモデルのことです。取引先は非公開になっているような設定の話です。取引先が非公開にすると、複数ユーザがあるとすると、それぞれのユーザが自分の所有する取引先レコードしかアクセスできないです。

組織の共有設定では、オブジェクトへの権限を下記のように制御できます。

  • 非公開(所有者ではないと、そのレコードへのアクセスできない)
  • 公開/参照のみ (所有者ではないが、見ることができる、編集できない)
  • 公開/参照・更新可能 (所有者ではないが、見ることができる、編集できる)
  • 親レコードに連動 ( レコードに対して参照、編集、削除 は親へのアクセスに属する)

※ここのアクセスは レコードに対して参照、編集、削除 という操作権限です。

ロール階層

組織図みたいなロールの設定階層によって、同じ階層のお互いにデータが見れるとか、あるいは、マネージャーはロール階層では、自分より下のロールのデータが全部見れる、こういった設定が、ロール階層で、制御する

共有ルール

上記の例で、取引先を非公開したところから続きに例をします。自分が所有者となるデータだけアクセスできる、部下や同僚のデータも見る必要になると、ロール階層や共有ルールで、対応できます。 共有ルールはオブジェクトごとに制御できる。

※共有ルールは、ロール階層と同様に、レコードへのアクセス権を追加のユーザに付与する目的でのみ使用します。これを組織の共有設定より厳しくすることはできません。

取引先の共有ルール設定イメージ

共有の直接設定

組織の共有設定、ロール階層、または共有ルールのように自動化 されていますが、直接共有とは、本当に特定のレコードの詳細ページで、ボタンで相手に共有する手動作業です。一時的に付与時に使うと思ってもいいかもしれません。

レコードレベルのアクセス整理

レコードへのアクセス制御

Organization-Wide Defaults:組織の共有設定

Role Hierarchy:ロール階層

Sharing Rules:共有設定

Manual Sharing:手動共有

このように、どんどん、権限を拡張していく考え、拡張するうちに、いろいろな手段があり、ケースバイケースで、使ってくださいとのこと

終わりに

大手の起業が業務システムを導入する時に、使用する部門も多く、部門別の権限が違う、例えば、経理のため、Apexを書いたが、Apexがあるオブジェクトに対して、作成や編集、削除を行っているのに、プロファイルにその権限がない、あるいは共有設定で、親レコードに連動する設定になっている、テスト不十分で、きっと漏れることがあるでしょう。権限問題はすごい大事、今一度、整理したら、どうでしょう

-Technology
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Saleforce 実行権限 トリガ クラス

こんにちは、管理人の@Salesforce.Zです。普段、 Apex はシステムコンテキストで実行されます。つまり、コード実行時に、現在のユーザの権限、項目レベルセキュリティ、および共有ルールは考慮さ …

Salesforce カスタム設定 カスタムメタデータ 比較 使うべきなのは?

カスタム設定/カスタムメタデータの使用について、どっちを使うべきかをここではっきりできる

Salesforce 主従関係 所有者について以外に知らない子が多い

こんにちは、管理人の@Salesforce.Zです。 主従関係ってもう十分、 ほとんどのcoder の頭に定着したと思います。しかし、これが知っていますか。所有者の話。子sObjectに所有者項目がな …

Salesforce2Slack Integration with Web API

前回、Webhook URLでSalesforceから、Slackのチャンネルに投稿する記事を公開した。非常にシンプルでした。今回、やや複雑なSlack Web APIを使って、投稿することをチャレン …

Apex 一括処理 バッチの使用およびテストクラス

こんにちは、管理人の@Salesforce.Zです。 一括処理をバッチにすると、ガバナ制限を回避できるし、大量処理も可能。うまく設計できたら、いいですね。 Contents1 Apex Batchの構 …