移行検証は終わりましたが、機能比較についてはもう少しお伝えしようと思います。
今回は覚えていないとなかなか難しいセキュリティ要件です。
セキュリティ設定は設定軸が異なる
SalesforceとDynamicsではセキュリティの設定軸が若干異なるため、移行の際は注意する必要があります。
Salesforceではプロファイル、Dynamicsではセキュリティロールがメイン設定となりますが、ところどころでプロファイルにしかない設定とセキュリティロールにしかない設定が混じっています。
設定量の多さや実現可否などから、設定内容を完璧に移行するということはとても難しいので、移行設計の際には、一部設定を譲歩することも念頭に入れておいてください。
オブジェクト・エンティティのアクセス権
Salesforce
Salesforceのオブジェクトそのもののアクセス権はプロファイルから設定します。
プロファイル設定でオブジェクトごとに参照のチェックボックスがあるため、チェックがあればオブジェクトに対するアクセス権があります。
Dynamics
一方のDynamicsのエンティティへの参照権限は、セキュリティロールから設定します。
エンティティごとに読み込みの設定が可能なので、選択なし以外のものについてはエンティティへの参照が可能です。
レコードのアクセス権
Salesforce
組織全体で公開しているかどうか
共有設定で対象のオプジェクトが組織に対して公開か否かを設定します。
公開であれば全ユーザに。
非公開であれば自分が所有者になっているユーザのみが参照可能です。
プロファイルがすべて表示になっている
自身のプロファイルが対象オブジェクトに対し、すべて表示になっていれば参照可能です。
共有ルール
組織に対して非公開の場合、共有ルールによって参照権限を広げていきます。
所有者に基づくものと、レコード条件に基づくものがあります。
レコード所有者に基づく
レコードの所有者によって、ロールまたはグループの公開範囲を決定します。
プロファイルではロール(Dynamicsでいう部署)による権限設定ができないため、後述する部署or部署配下の設定が必要な場合はこちらから設定します。
条件に基づく
レコードの条件によって、参照権限を変更することができます。
これは、Dynamicsにはない仕組みで、業務フロー内で役割分担する時などに便利です。
共有
上記以外のアクセス権のないユーザに対してレコードを参照させたいときは、共有によりレコードが参照可能になります。
また、共有とは異なりますが、似たものとして取引先や商談はチーム機能による共有も可能です。
Dynamics
こちらも、セキュリティロールから選択します。
読み込みで選択なし以外のもの選択した場合は、以下のルールにしたがって参照が可能になります。
ユーザー | 自分(または自分の属するチーム)が所有者のレコードのみ参照可能 |
---|---|
部署 | 自分が所属する部署と同じメンバーまたはチームが所有者のレコードが閲覧可能 |
部署配下 | 部署の範囲に加えて、自分より下の階層の部署のメンバーまたはチームが所有者のレコードが閲覧可能 |
組織全体 | 所有者に関わらず参照可能 |
また、Dynamicsにも共有設定があり、Salesforceと同じような仕組みです。
項目のアクセス権
Salesforce
プロファイル内で項目別の参照設定が可能です。
プロファイルに色々な権限を詰め込むことになるので、メタデータの量がハンパないです。
Dynamics
こちらはセキュリティロールではなくフィールドセキュリティでの設定になります。
フィールドセキュリティはメンテナンスが大変なので、あまり使われるケースはないみたいです。
まとめ
SalesforceとDynamicsについて、図示するとこうなります。
(細かいところを突っ込むとキリがないのですが、ざっくりしたイメージです)
その他、上記以外で触れていない点で以降の際に影響しそうなものを列挙します。
- プロファイルは1ユーザ1つのみしか付けられないのに対し、セキュリティロールは1ユーザ複数付与することが可能。
プロファイルに対し、プラスアルファの権限を付与する場合は権限セットを定義して付与する。 - Salesforceのレコード条件に基づく共有設定はDynamicsでは実現できない。
もし再現する場合は、プラグインなどで自動的に共有を付与するなどの開発が必要になる。 - Salesforce、Dynamicsともにセキュリティはないものから足し算していく。逆に権限があるものから一部権限を剥奪するような考え方はない。
- 所有者として設定可能なものは、Salesforceではユーザとキュー、Dynamicsではユーザとチームとなる。同等の設定をするためには、定義したキューをチームとして作成する必要がある。
コメント