この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

SessionPermSetActivation

SessionPermSetActivation オブジェクトは、個々のユーザセッション中に有効化された権限セット割り当てを表します。SessionPermSetActivation オブジェクトが権限セットに挿入されると、有効化イベントが起動され、権限設定をユーザ固有のセッションに適用できるようになります。このオブジェクトは、API バージョン 37.0 以降で使用できます。

サポートされているコール

describeLayout()query()retrieve()

セッションベースの権限セットを権限セットグループに含めても、グループに割り当てられたユーザのセッションベースの有効化を行う必要はありません。

メモ

特別なアクセスルール

Summer '20 以降、このオブジェクトにアクセスできるのは、次のいずれかの権限を持つユーザのみとなります。
  • 「設定・定義の参照」
  • 「セッション権限セットの有効化の管理」

項目

項目名 詳細
AuthSessionId
reference
プロパティ
Filter、Group、Sort
説明
セッションの時間内にこの権限セットの割り当てに関連付けられたセッション ID。
これはリレーション項目です。
リレーション名
AuthSession
リレーション種別
参照関係
参照先
AuthSession
Description
string
プロパティ
Filter、Group、Nillable、Sort
説明
使用デバイスやブ���ウザなどのセッションの詳細。
PermissionSetId
reference
プロパティ
Filter、Group、Sort
説明
セッションの時間内にこの権限セットの割り当てとユーザに関連付けられた権限セット ID。
これはリレーション項目です。
リレーション名
PermissionSet
リレーション種別
参照関係
参照先
PermissionSet
UserId
reference
プロパティ
Filter、Group、Sort
説明
セッションの時間内にこの権限セットの割り当てが適用されるユーザのユーザ ID。
これはリレーション項目です。
リレーション名
ユーザ
リレーション種別
参照関係
参照先
ユーザ

使用方法

SessionPermSetActivation を使用して、指定されたセッションの時間内にのみ使用できる権限セットを作成します。たとえば、認証されたセッションの間のみ特定のアプリケーションにアクセスできる権限セットを作成します。

次の Apex の例では、ボタンを使用してセッション情報が送信された後に特定されたセッションが有効化されます。有効化に成功すると、ユーザに確認メッセージが表示されます。

1public class SessionPermSetActivationController {
2    // id of the session permission set to be activated
3    private final String sessionPermSetId = '0PSxx00000004rJ';
4    private final String sessionId; 
5    
6    public SessionPermSetActivationController() {
7        Map<String, String> sessionManagement = Auth.SessionManagement.getCurrentSession();
8        sessionId = sessionManagement.get('SessionId');
9    }
10    
11    public PageReference activate() {
12        // activate the permission set
13        SessionPermSetActivation activation = new SessionPermSetActivation();
14        activation.AuthSessionId = sessionId;
15        activation.PermissionSetId = sessionPermSetId;
16        activation.Description = 'created by SessionPermSetActivationController';
17    
18        insert activation;
19        return null;
20    }
21    
22    public boolean getActivated() {
23        Integer alreadyActivated =  [SELECT count()  
24                                            FROM SessionPermSetActivation  
25                                            WHERE AuthSessionId = :sessionId
26                                            And PermissionSetId = :sessionPermSetId  LIMIT 1];
27        return alreadyActivated > 0;
28    }
29}
30
31
32<apex:page controller="SessionPermSetActivationController">
33      <apex:outputPanel rendered="{!!Activated}">
34          <h3>Activate Session Permission Set</h3>
35          <br />
36          <apex:form >
37                <apex:commandButton action="{!activate}" value="Activate" id="activateButton"/>
38          </apex:form>
39      </apex:outputPanel>
40      <apex:outputPanel rendered="{!Activated}">
41          <h3>Session Permission Set is already active.</h3>
42      </apex:outputPanel>
43</apex:page>