PR

【Salesforce】 プロファイル と 権限セット の適切な考え方

salesforce-permission Salesforce
この記事は約8分で読めます。
記事内に広告が含まれています。

この記事では、 Salesforce の プロファイル と 権限セット の適切な定義方針について紹介します。

一般的に、 Salesforce を導入する際には複数のプロファイルを定義しがちですが、それによって後々のメンテナンス性を損ねてしまう恐れがあるので、本記事が参考になれば幸いです。

Salesforce の プロファイル とは

ユーザに対して必ず設定しなければならない権限です。

Help And Training Community

幅広い用途があるので、詳細は公式サイトをご確認ください。

本ページに辿り着いている人は特徴は知っている前提で進めます。

ご容赦ください。

Salesforceプロファイルの特徴 アクセス権限の管理 ・オブジェクトレベル ・項目レベル ・レコードタイプ ユーザーインターフェース ・ページレイアウト ・アプリケーション ・タブの表示設定 ログイン設定 ・IPアドレス制限 ・ログイン時間帯 ・2要素認証 システム権限 ・APIアクセス ・アプリケーション開発 ・データエクスポート カスタマイズ ・カスタム項目 ・カスタムオブジェクト ・Apexコード実行 セキュリティ ・パスワードポリシー ・セッションセキュリティ ・監査ログ

簡単に図にまとめました。

プロファイルでは、そのユーザがどのオブジェクトや項目にアクセスできるかを中心とし、様々な権限が管理できます。

スポンサーリンク

Salesforce の 権限セット とは

権限セットは、さまざまなツールと機能へのアクセス権をユーザーに付与する設定と権限のコレクションです。権限セットは、ユーザーのプロファイルを変更することなくユーザーの機能アクセス権を拡張するもので、ユーザーの権限を管理するために推奨される方法です。

と、公式サイトで記載されています。

Help And Training Community
Salesforce権限セットの特徴 柔軟な権限付与 ・個別ユーザーに付与可能 ・複数の権限セット組合せ ・一時的な権限付与 アクセス権限の拡張 ・オブジェクトレベル権限 ・項目レベル権限 ・Apexクラスアクセス システム権限の追加 ・APIアクセス ・アプリケーション管理 ・データエクスポート ユーザーライセンス非依存 ・異なるライセンス間で共有 ・ライセンス制限の緩和 ・柔軟な権限管理 権限の管理と監査 ・権限セットの複製 ・権限の一括更新 ・権限付与履歴の追跡 アプリケーション開発サポート ・カスタムアプリケーション ・Visualforceページアクセス ・Lightning Webコンポーネント

特徴をまとめると、プロファイルの権限に加え、様々な権限を柔軟に拡張できる点が大きな違いといえます。

設定画面では、同じような設定を行う UI となっているので、使い分けに悩む方もいるかもしれません。

Salesforce の権限の考え方

Salesforce では、原則として 「小さく権限を与え」「拡張する」 が一般的な考え方です。

なぜなら、 Salesforce では権限を付与することはできても、権限を剥奪することは想定していないからです。

※ミュート権限など、特殊な設定はありますが、原則の考え方からは外れます。

そのため、 プロファイル で過剰な権限を設定してしまうと、後から権限が大きすぎて苦労する場面が出てきてしまうかもしれません。

Salesforceの権限の考え方 小さく権限を与え、拡張する プロファイル(最小限の権限) 権限セット 2 権限セット 1 1. プロファイルで最小限の権限を設定 2. 権限セットで必要に応じて権限を拡張 3. 段階的に権限を追加し、過剰な権限付与を防ぐ ※権限の剥奪は原則として想定されていません

プロファイル は最小限の権限設定にし、 権限セット で追加の権限を与える方法が普通(ベストプラクティス?)だと思います。

スポンサーリンク

具体的な プロファイル や 権限セット の定義の仕方

ここまで述べたように、本来はプロファイルは最小限の権限設定にする必要がありますよね。

以下は私の見解ですが、IP制限や特殊なポリシーの制約、営業時間など、プロファイル単位で資源すべき特殊な要件がない限りは、 「標準ユーザ」 とか 「一般ユーザ」 と言った汎用的なプロファイルを定義し、基本的にはそのプロファイルを定義するようにすべきだと思っています。

運用面でも複雑さがかなりなくなる上に、メンテナンス対象のメタデータも最小限で済むからです。

そして、営業担当なら 「営業ユーザ」、上司なら 「上司ユーザ」 のような、追加の権限セットを定義しておけば、つけ外しだけで済むのです。

これがプロファイルレベルで管理されていたら、リリース作業のたびに絶望することになりますよ。

※この絶望的なプロファイルのメタデータ管理のお話はいずれ・・・。

じゃあレイアウト分けはどうするのさ

プロファイルレベルで管理する必要がある機能の代表格が、 Lightning レコードページだと思います。

正直、よっぽどの要件がない限りはアプリケーションで統一した方がいいと思うのですが、稀に、細かく分けないといけない面倒な場合があります。

そういう場合でもいくつか回避方法があります。

動的フォームの使用

最近リリースされた機能ですね。 Lightning レコードページで動的フォームを活用し、ユーザーの役割や権限に基づいて表示するフィールドを動的に制御できます。

これで、レイアウトを条件によって出し分けるためにプロファイルを分けなくて済みます。

条件付きコンポーネントの利用

Lightning レコードページ上で、コンポーネントの表示条件を設定できます。

レコードの項目値だったり、ユーザの情報であったり。

特定の条件(ユーザーの役割や権限など)に基づいて表示・非表示を制御できるなら、カスタム権限を定義して、その権限セットの有無で管理すればいいだけです。

わざわざプロファイルを分ける必要もありませんよね。

スポンサーリンク

おわりに

このように、工夫次第でなんとでもなるのです。

適当にプロファイルを分ける提案をしてしまうのは簡単ですが、メンテナンス性も考慮して、それが本当に最適の提案になっているかは確認してほしいものです。

こういうところが腕の見せ所です。

私は少なくとも最善を尽くす提案をするよう心がけています。

カスタマーサクセスが結局自分のためになるので。

コメント

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