5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

項目作成時の権限セットの項目レベルセキュリティ付与を試してみる

Last updated at Posted at 2022-11-30

これはなに?

  • Learn MOAR Winter '23 for AdminsのTrailmixで気になった機能である。項目作成時の項目レベルセキュリティ付与を権限セットでやる方法を試してみます。

Winter '23でベータリリースされたものです。
正式リリース版になった場合に記事の内容と異なっている可能性があります。

どんな機能なの?

権限セットパターン(新) プロファイルパターン旧
取引先 _ Salesforce.png 取引先 _ Salesforce (1).png

項目を作成時に項目レベルセキュリティを設定する際に
プロファイルではなく権限セットを利用できるようになります。

何が便利なの?

  • 権限をプロファイルではなく、権限セット + 権限セットグループをメインにして管理している場合に
    • 項目作成時に権限セットに項目レベルセキュリティ付与できる
      • 作成した後に別途権限セットを編集する手間が省ける
      • プロファイルに間違って無駄な権限を付与してしまうミスがなくなる

そもそも権限セットをメインで利用するメリットとは?

よくあるのがプロファイルAでもBでも共通の業務をする
この際に権限セットで最小限に権限を作成し、機能や業務単位で権限セットグループで管理すると
権限を付与しやすい+後から編集しやすいのでプロファイルよりも管理しやすくなります。

権限セットと権限セットグループでの活用に関してはこちらの記事がとてもわかりやすいです。

もちろん管理者目線でも管理しやすいですが、開発者目線でも管理しやすいです。

たとえば、プロファイルに項目レベルセキュリティを付与しSalesforceDXでプロファイルを取得しようと思うと

以下のようなパッケージファイルを書く必要があります。

※CustomFieldを一緒に定義しないと、CustomFieldに関する権限がない状態のプロファイルのxmlが取得される

package.xml
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Account.Demo__c</members>
        <name>CustomField</name>
    </types>
    <types>
        <members>Admin</members>
        <name>Profile</name>
    </types>
    <version>55.0</version>
</Package>

毎回定義してプロファイルを落として...とやっていたらコンフリクトも起きますしめんどうですよね

そこで権限セットで取得してみます。

package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>Obj_Account_View</members>
        <name>PermissionSet</name>
    </types>
    <version>55.0</version>
</Package>

取得した権限セットのxmlがこちらです。

Obj_Account_VIew.permissionset-meta.xml
<?xml version="1.0" encoding="UTF-8"?>
<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <fieldPermissions>
        <editable>false</editable>
        <field>Account.Demo__c</field>
        <readable>true</readable>
    </fieldPermissions>
    <hasActivationRequired>false</hasActivationRequired>
    <label>Obj_取引先_閲覧</label>
</PermissionSet>

単純にPermissionSetを指定するだけで、欲しい権限が全て取得できるのでpackageの記述が簡潔になります。
SalesforceDXを活用している方は、profileをメインにするより
権限セットと権限セットグループの運用に変更すると開発体験あがるかもしれません。

やってみる

機能の有効化

Trailhead のハンズオン環境を使用します。

設定>ユーザ>ユーザ管理設定にある 項目作成時の権限セットの項目レベルセキュリティ (ベータ) を有効化します。

ユーザ管理設定 _ Salesforce.png

権限セットの作成

設定>権限セットにアクセスし新規作成します。

  • 表示ラベル

    • Obj_取引先_閲覧
  • API参照名

    • Obj_Account_VIew

今回は取引先閲覧専用の権限セットを作成しました。

スクリーンショット 2022-11-27 3.01.51.png

項目の新規作成

設定>オブジェクトマネージャー>取引先

  • ラベル
    • デモ
  • データ型
    • テキスト
  • 文字数
    • 255
  • 項目名
    • Demo

スクリーンショット 2022-11-27 3.08.52.png

項目レベルセキュリティの設定

項目作成時の権限セットの項目レベルセキュリティ (ベータ) を有効化したことにより
プロファイルではなく、権限セットに項目レベルセキュリティを付与できるようになっています。

今回はObj_取引先_閲覧 という閲覧専用の権限セットを作成したので参照にチェックをいれて保存します。

取引先 _ Salesforce.png

権限セットパターン(新) プロファイルパターン旧
取引先 _ Salesforce.png 取引先 _ Salesforce (1).png

項目レベルセキュリティの確認

作成したデモ という項目のページを開きます。

取引先 _ Salesforce (2).png

項目レベルセキュリティの設定を確認してみます。

取引先 _ Salesforce (3).png

項目作成時に参照権限を付与した権限セットが確認できます!

スクリーンショット 2022-11-27 3.29.20.png

権限セットパターン(新) プロファイルパターン旧
スクリーンショット 2022-11-27 3.29.20.png スクリーンショット 2022-11-27 3.32.37.png

項目アクセス許可の参照

権限セットは確認できましたが、機能有効化前のプロファイル単位の項目レベルセキュリティはどこで確認するのでしょうか?
それは、項目アクセス許可の参照で確認できます。

取引先 _ Salesforce (4).png

確認したい項目を選択します。今回作成したデモを選択しました。

ここは基本見ている項目の内容が確認したいはずなので、選択肢のデフォルトを設定してもらえると確認が楽ですね...(アップデートに期待)

スクリーンショット 2022-11-27 3.36.09.png

確認いたいプロファイルの非表示というリンクをクリックします。

取引先 _ Salesforce (5).png

確認までのステップ数は多いですが、無事確認できました!

スクリーンショット 2022-11-27 3.42.00.png

権限セットパターン(新) プロファイルパターン旧
スクリーンショット 2022-11-27 3.42.00.png スクリーンショット 2022-11-27 3.32.37.png

最後に

今回は、Winter '23で公開されたベータ機能を試してみました。
実際に自分が実務で活用している権限の管理方法が 権限セット + 権限セットグループをメインだったので待ってました!という機能でした。

Salesforceが実際にアップデートをしてきたという点も含め、
権限管理を権限セット + 権限セットグループを中心にしていくと 管理者的にも開発者的にも今後も管理しやすくなっていくと思います。
とはいえ、Salesforceのユーザが少ない場合はプロファイルだけで十分な場合もあると思いますので
権限セット・プロファイルどちらも今後も使いやすい画面になってくれることを期待ですね。

参考にさせていただいた記事

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?