【第6回】セールスフォースの基礎講義Ⅰ
前回の記事では、Salesforceのライセンス体系の考え方と権限設定(プロファイル)に関して説明しました。
今回は、Salesforceのセキュリティとデータアクセスの基本的な考え方について説明していきたいとおもいます。
1.セキュリティとデータアクセスの基本
まず、以下の4つについては、Salesforceのセキュリティとデータアクセスに関する基本概念となるため、必ず覚えておきましょう。
ポイント
組織レベルのセキュリティ
Salesforce組織(サービス基盤)へのアクセスを制限
- ユーザに設定するプロファイル単位で、以下のようなパスワードポリシーを設定することができます。
- プロファイル単位で、時間帯や場所(IPアドレス)を制限することができます。
オブジェクトレベルのセキュリティ
Salesforceのオブジェクト(テーブル)に対するアクセス権限を制御することが可能
- オブジェクトレベルでデータアクセスを制御します。ユーザ毎に(プロファイル/権限セット単位)で特定のオブジェクトに対して、レコード作成、参照、編集、削除の権限を指定することができます。
項目レベルのセキュリティ
Salesforceのオブジェクト(テーブル)の項目(フィールド)ごとのアクセス権限を制御する方法
- ユーザがオブジェクトへのアクセス権を持っている場合でも、オブジェクト内の特定の項目へのアクセスを制限することが可能。たとえば、売上オブジェクトへの参照が可能であっても、売上原価の項目については営業担当者には表示せず、購買担当者のみ表示するような制御が可能。
レコードのセキュリティ
ユーザにオブジェクトの参照権限を付与する場合に、すべてのレコードを参照させるのではなく、ある特定のレコードだけを参照・編集できるように制御
たとえば、基本的には営業は自分が担当する取引先(顧客)のデータしか参照・編集できないような制御がされている場合に、特定の取引先レコードを他のユーザへ共有(参照・編集許可)するような制御が可能(1レコード単位での制御で手動共有)
上記についての詳細な内容はこれから説明していきます。
組織レベルのセキュリティ(ログイン制限)
①ログイン時間とIPアドレスの制限
ユーザに付与するプロファイルでログイン時間を制限することができます。また、IPアドレスの範囲(ホワイトリスト)を設定することで、アクセス元のIPアドレスを制限することができます。
([設定]->[管理]->[ユーザ]->[プロファイル]->[ログイン時間帯の制御]の順に実行)
※図はクリックすると拡大表示されます。
IPアドレス制限は、組織レベルでも設定可能ですが、誤った設定をしてしまうと誰もログインできなくなってしまうため注意してください。
([設定]->[管理]->[ユーザ]->[プロファイル]->[ログインIPアドレスの制限]の順に実行)
上記内容でログイン時間帯とIPアドレス制限を設定した場合、以下のような制御が行われます。
センターAのオペレータAからはSalesforce組織にアクセスが可能ですが、センターBからはIPアドレス制限がされているためアクセスすることができなくなります。
ログインの制限については、以下のようなフローとなります。
注意ポイント
Salesforceでは、セキュリティ強化対策の一環として、2022 年 2 月 1 日よりMFA(多要素認証)が必須となります。詳細は公式サイトのHELP「多要素認証 (MFA) への対応のお願い」を参照ください。
これまでは、ユーザアカウント(ID)とログインパスワードだけでSalesforceにアクセスできていましたが、これからは、多要素認証が必要となります。
提供される多要素認証は複数ありますが、Salesforceのモバイルアプリの認証を使う方式がおすすめです。
モバイルアプリを使った認証方法については、動画で詳しく紹介されているので、以下の公式サイトのURLを参照してください。
ログインアクセスポリシーの設定(代理ログイン)
ログインアクセスポリシーの機能を利用することで、システム管理者は任意のユーザとして代理ログインすることができるようになります。
【設定方法】
設定->セキュリティ->ログインアクセスポリシーの順に実行します。
以下、ログインアクセスポリシーの画面にて、管理者は任意のユーザでログインできますを有効化して保存します。
上記設定を行うことで、ユーザ一覧の画面から、ユーザ名の隣にログインのリンクが表示されるようになります。
例えば、ユーザ名(ゲスト)のユーザとしてログインすると、ゲストのユーザ権限でログインされるため、利用できるアプリケーションや機能、またデータに対するアクセス権限などもユーザ(ゲスト)と同じ権限となります。
ユーザの設定や権限による不具合などを再現、調査する際に非常に便利な機能となりますので、是非覚えておきましょう。
2.セキュリティとデータアクセス概念
Salesforceのデータアクセスの基本概念は大きく以下の2つとなります。また、制御方法の組み合わせにより、複雑な要件にも柔軟に対応できるセキュリティ設定が可能です。
No. | 機能/データアクセス制御の観点 | 制御方式 | 制御可能な内容 |
1 | ユーザにどこまで機能を開放するか | プロファイル・権限セット | 利用アプリケーションの制御、タブ設定(表示/非表示)、レポート・ダッシュボードの作成、オブジェクトアクセス制御、ページレイアウトによる制御 |
2 | ユーザにどのレベルのデータアクセスを許可するか | プロファイル・権限セット | オブジェクトに対するアクセス制御、項目レベルアクセス制御 |
組織の共有設定 | オブジェクトの共有設定【公開(参照/更新)、公開(参照のみ)、非公開、・親レコードに連動】 | ||
ロール | ロール(ユーザ階層による制御) | ||
共有ルール(または個別共有) | 公開グループによる共有設定 |
データアクセス制御の設定ステップ
Salesforceのデータアクセス制御の設定では、大きく以下の2種類の仕組み使って制御します。
①プロファイルによる、オブジェクトや項目へのアクセス制御を設定(下図のSTEP1,2)
・プロファイル毎に、オブジェクトや項目単位のデータアクセス権限を制御する方法
例:以下の例では、営業プロファイルのユーザは、商談オブジェクトのレコードを参照・作成・編集・削除すべて行えますが、経理部のプロファイルのユーザは、商談オブジェクトのレコードに対してはなにも実行することはできません。
・営業プロファイルを作成して、商談オブジェクトに対して(参照、作成、編集、削除をすべて許可する)のように設定
・経理部プロファイルを作成して、商談オブジェクトに対して(参照、作成、編集、削除をすべて許可しない)のように設定
②組織レベルのデータアクセス権限を制御する仕組み(共有設定、ロール、共有ルール)を使ったデータアクセス制御(下図のSTEP3から5)
・組織全体でレコード単位でデータのアクセス制御を設定する方法
例えば、商談オブジェクトに対して、組織の共有設定で非公開とします。すると営業プロファイルのユーザは、商談オブジェクトに対して、データの参照が可能なため、自分が所有者に設定されているレコードは参照・編集などができますが、ほかの営業担当者が作成した商談データは参照することはできません。
この制御は、システム全体の制御となるため、画面上だけではなく、レポートやデータのエクスポートでも同様の制御となります。自分が所有するデータしかレポートで表示されず、エクスポートもユーザ自身が所有するデータのみが対象となります。
STEP3以降については、レコード単位でのデータアクセスを制御する方法となります。それぞれについて詳しく解説していきます。
①組織の共有設定
オブジェクトに公開/非公開の設定を行い、ユーザがお互いの所有するレコードに対するデフォルトアクセスレベルを指定します。
・公開設定の場合には、ユーザ自身が所有するレコードは全ユーザへ公開(参照もしくは編集)されます。
・非公開設定の場合には、ユーザ自身が所有するレコードは他のユーザは参照できません。
上記の例では、組織設定で、取引先オブジェクトを公開とした場合、営業担当者は、すべての取引先のデータにアクセスすることができます。
逆に、非公開とした場合には、各営業担当者は、担当者自身が所有する取引先の情報のみアクセスすることができます。
組織の共有設定を非公開にして、データを最も制限の厳しいレベルにロックダウンした場合、以下の方法により、レコード単位で他のユーザにアクセス権限を付与することが可能です。
- ロール階層を利用した権限拡張
- 階層の上位のユーザに、自分より下位のユーザが所有するすべてのレコードへのアクセスを付与できます。ロール階層は、企業・団体の組織図に一致している必要はありません。階層の各ロールはユーザまたはユーザグループが必要とするデータアクセスを意識した階層構造にする必要があります。
- 共有ルールを利用した権限拡張
- 共有ルールを使用することで、特定のユーザグループに対して組織の共有設定の例外が設定され、そのユーザグループが所有していないレコードや通常は参照できないレコードにアクセスできるようになります。
- 共有の直接設定を利用した権限拡張
- 特定のレコードの所有者は他のユーザとそのレコードを共有できるようになります。共有の直接設定は組織の共有設定、ロール階層、または共有ルールのように自動化されていません。一時的に所有権を別のユーザに割り当てる必要がある場合などに利用されます。
②ロール階層による制御
ロール階層を設定すると、階層が上位のユーザは、自分より下位ロールのユーザが所有するすべてのレコードへのアクセスを付与できます。
ロール階層は、企業・団体の組織図に一致している必要はありません。階層の各ロールはユーザまたはユーザグループが必要とするデータアクセスを意識した階層構造にする必要があります。
③共有ルールによるアクセス制御(レコードアクセス例外の処理)
レコードアクセス例外の処理
組織の共有設定が非公開の場合でも、以下の方法でレコードのアクセス権を拡張する(他ユーザ・他グループのデータにアクセスする)ことができます。
- 共有ルールを使用
- 共有ルールを使用することで、特定のユーザグループに対して組織の共有設定の例外が設定され、そのユーザグループが所有していないレコードや通常は参照できないレコードにアクセスできるようになります。
上記の例では、東京営業所(ロール)のデータを埼玉営業所(ロール)に公開(参照・編集)の共有ルールを設定、また、埼玉営業所(ロール)のデータを東京営業所(ロール)に公開(参照・編集)の共有ルールを設定しています。
共有ルールを設定した場合には、営業担当者AとBは、それぞれが所有する取引先のデータを参照・編集することができるようになります。
共有の直接設定
共有ルールを使用するかわりに、ユーザが所有している特定のレコードを他ユーザ/グループへ共有する方法があります。
非公開設定されているオブジェクトのレコードを作成後に、参照画面で、共有ボタンが表示されます。
※以下の例では、取引先(非公開)のレコードを作成した後の画面です。共有ボタンが表示されているのでクリックします。
すると取引先の共有画面へ遷移します。この画面で追加ボタンをクリックします。
以下の画面で、ユーザ・ロール・公開グループなどから共有対象を選択し、追加します。共有については、(参照のみ)もしくは(参照・編集)を選択することができます。
設定後、保存すると以下のように追加したユーザやグループに対して付与した権限が確認できます。
【注意】
レコードを直接共有する設定に関しては、Salesforce Classicのみ利用可能で、Lightningでは利用できないので注意してください。
演習
今回ご説明してきたデータアクセスの権限制御はSalesforceを利用する上で非常に重要な概念となりますので、必ずマスターしておきましょう。
権限関連については、すぐに理解するのが難しいと思いますので、実際に設定してどのように制御されるのか確認してみることをお勧めします。
また、Trailhead(トレイルヘッド)でこの単元のモジュールが用意されているのでぜひトライしてください。
データセキュリティ
プロファイルによるオブジェクトに対するアクセス制御の仕組みを理解できましたか。うまくいかなかった方は、トレイルヘッドの説明をよく読んで成功するまでチャレンジしてください。
まとめ
本記事では、Salesforceのライセンス体系に関する説明と権限コントロールのプロファイルについて説明してきました。
次回は、ロールの説明とユーザ管理について説明していきたいと思います。