Newer Version Available
SessionManagement クラス
名前空間
SessionManagement のメソッド
finishLoginDiscovery(method, userId)
署名
public static System.PageReference finishLoginDiscovery(Auth.LoginDiscoveryMethod method, Id userId)
パラメータ
- method
- 型: Auth.LoginDiscoveryMethod LoginDiscoveryMethod Enum
- [私のドメイン] のログイン検出に使用する確認方法。
- userId
- 型: Id
- ユーザをログインするために使用する ID。ユーザは有効である必要があります。
戻り値
使用方法
このメソッドは、MyDomainLoginDiscoveryHandler インターフェースを実装し、ユーザを認証メカニズムに移動してログインさせる場合に含めます。ユーザがログインページにユーザ名を入力すると、認証用のパスワードページへ移動します。ユーザが Lightning Login に登録されている場合、ユーザは認証のために Salesforce Authenticator に転送されます。ユーザの SSO が有効になっている場合、ユーザは認証のために適切な ID プロバイダ (IdP) に転送されます。
コールするユーザには「ユーザの管理」権限が必要です。渡したユーザが凍結中または無効な場合、このメソッドで例外が発生します。
MyDomainLoginDiscoveryHandler インターフェースを実装した後、[私のドメイン] の [設定] ページからログイン検出ハンドラを登録します。[認証設定] で、Apex クラスのリストからこのハンドラを選択します。
finishLoginFlow()
署名
public static System.PageReference finishLoginFlow()
戻り値
使用方法
finishLoginFlow(startUrl)
署名
public static System.PageReference finishLoginFlow(String startUrl)
パラメータ
- startUrl
- 型: String
- Experience Cloud サイトへのアクセス時にユーザに表示するページへのパス。
戻り値
使用方法
generateVerificationUrl(policy, description, destinationUrl)
署名
public static String generateVerificationUrl(Auth.VerificationPolicy policy, String description, String destinationUrl)
パラメータ
- policy
- 型: Auth.VerificationPolicy
- ユーザのセッションの ID 検証を開始するのに必要なセッションセキュリティポリシー。たとえば、ポリシーに高保証レベルのセッションセキュリティが設定されていて、ユーザの現在のセッションは標準レベルのセッションセキュリティである場合、ユーザのセッションは ID 検証が正常に終了すると高保証に引き上げられます。[設定] ユーザインターフェースでは、この値は [ID 検証履歴] の [トリガ基準] 列に表示されます。
- description
- 型: String
- ID 検証を必要とするアクティビティを説明するカスタムの説明 (「購入を完了してチェックアウト」など)。このテキストは、Salesforce で、および Salesforce Authenticator バージョン 2 以降を使用している場合は Salesforce Authenticator モバイルアプリケーションで、ユーザが自分の ID を検証するときに表示されます。さらに、[設定] ユーザインターフェースでは、このテキストは [ID 検証履歴] の [アクティビティメッセージ] 列に表示されます。
- destinationUrl
- 型: String
- ID 検証後にユーザをリダイレクトする相対または絶対 Salesforce URL (/apex/mypage など)。ユーザは、ID 検証フローが完了すると、成功したかどうかに関係なく destinationUrl にリダイレクトされます。たとえば、ユーザが ID 確認に応答しないことを選択してキャンセルした場合でも、ユーザは destinationUrl にリダイレクトされます。ベストプラクティスとして、このページのコードによって、セキュリティポリシーに適合していること (さらにユーザがブラウザに手動で URL を入力したのではないこと) が手動でチェックされるようにします。たとえば、policy が高保証の場合、リダイレクト先ページでは、アクセスを許可する前にユーザのセッションが高保証であることを確認します。
使用方法
- ユーザがすでに時間ベースのワンタイムパスワード (TOTP) を使用して ID を確認するように登録されている場合、ユーザはワンタイムパスワード ID 検証フローにリダイレクトされて、コードを入力するように求められます。
- ユーザがどの検証方法 (ワンタイムパスワードや Salesforce Authenticator バージョン 2 以降など) にも登録されていない場合、ユーザは、Salesforce Authenticator をダウンロードして使用し、ID を検証するように要求されます。ユーザが異なる検証方法を選択することもできます。
getCurrentSession()
署名
public static Map<String, String> getCurrentSession()
使用方法
このメソッドを呼び出す Apex テストメソッドを作成すると、「Unexpected Exception: Current session unavailable (予期せぬ例外: 現在のセッションは利用できません)」などのエラーでテストが失敗します。テストが実行されているコンテキストにはセッションがないためエラーが発生します。
セッションを再び使用すると、Salesforce が LoginHistoryId を最新ログインの値で更新します。
例
次の例は、getCurrentSession() で返される対応付け内の名前-値ペアを示します。UsersId では、AuthSession オブジェクト内の対応する項目の名前と一致させるために、名前に「s」が含まれます。
1{
2SessionId=0Ak###############,
3UserType=Standard,
4ParentId=0Ak###############,
5NumSecondsValid=7200,
6LoginType=SAML Idp Initiated SSO,
7LoginDomain=null,
8LoginHistoryId=0Ya###############,
9Username=user@domain.com,
10CreatedDate=Wed Jul 30 19:09:29 GMT 2014,
11SessionType=Visualforce,
12LastModifiedDate=Wed Jul 30 19:09:16 GMT 2014,
13LogoutUrl=https://google.com,
14SessionSecurityLevel=STANDARD,
15UsersId=005###############,
16SourceIp=1.1.1.1
17}getLightningLoginEligibility(userId)
署名
public static Auth.LightningLoginEligibility getLightningLoginEligibility(Id userId)
パラメータ
- userId
- 型: Id
- ログインするユーザの ID。
例
1Auth.LightningLoginEligibility eligibility =
2 Auth.SessionManagement.getLightningLoginEligibility(id);
3if (eligibility == Auth.LightningLoginEligibility.ELIGIBLE) {
4 // success
5}getQrCode()
署名
public static Map<String, String> getQrCode()
使用方法
secret は、20 バイトの共有鍵の base32 符号化文字列です。
例
次に、QR コードを要求する方法の例を示します。
1public String getGetQRCode() {
2 return getQRCode();
3 }
4 public String getQRCode() {
5 Map<String, String> codeResult = Auth.SessionManagement.getQrCode();
6 String result = 'URL: '+codeResult.get('qrCodeUrl') + ' SECRET: ' + codeResult.get('secret');
7 return result;
8 }次に、返された対応付けの例を示します。
1{qrCodeUrl=https://www.salesforce.com/secur/qrCode?w=200&h=200&t=tf&u=user%0000000000.com&s=AAAAA7B5BBBB5AAAAAAA66BBBB,
2 secret=AAAAA7B5AAAAAA5BBBBBBBBB66AAA}getRequiredSessionLevelForProfile(profileId)
署名
public static Auth.SessionLevel getRequiredSessionLevelForProfile(String profileId)
パラメータ
- profileId
- 型: String
-
15 文字のプロファイル ID。
戻り値
ID profileId のプロファイルでログイン時に必要なセッションセキュリティレベル。各レベルの割り当ては [セッションの設定] でカスタマイズできます。たとえば、高保証レベルが多要素認証 (MFA) または特定の ID プロバイダで認証されるユーザにのみ適用されるように設定できます。
inOrgNetworkRange(ipAddress)
isIpAllowedForProfile(profileId, ipAddress)
署名
public static Boolean isIpAllowedForProfile(String profileId, String ipAddress)
戻り値
型: Boolean
使用方法
| 信頼済み IP 範囲が存在するか? | ユーザは信頼済み IP 範囲内か? | 戻り値 |
|---|---|---|
| はい | はい | true |
| はい | いいえ | false |
| いいえ | N/A | true |
setSessionLevel(level)
署名
public static Void setSessionLevel(Auth.SessionLevel level)
パラメータ
- level
- 型: Auth.SessionLevel
- ユーザに割り当てるセッションセキュリティレベル。各レベルの意味は、各組織の [セッションの設定] でカスタマイズできます。たとえば、多要素認証 (MFA) または特定の ID プロバイダで認証されたユーザにのみ [高保証] レベルを適用するように設定できます。
戻り値
型: Void
使用方法
このメソッドを呼び出す Apex テストメソッドを作成すると、「Unexpected Exception: Current session unavailable (予期せぬ例外: 現在のセッションは利用できません)」などのエラーでテストが失敗します。テストが実行されているコンテキストにはセッションがないためエラーが発生します。
例
次に、セッションレベルを設定するためのクラスの例を示します。
1public class RaiseSessionLevel{
2 public void setLevelHigh() {
3 Auth.SessionManagement.setSessionLevel(Auth.SessionLevel.HIGH_ASSURANCE);
4 }
5 public void setLevelStandard() {
6 Auth.SessionManagement.setSessionLevel(Auth.SessionLevel.STANDARD);
7 }
8}validateTotpTokenForKey(sharedKey, totpCode)
署名
public static Boolean validateTotpTokenForKey(String sharedKey, String totpCode)
パラメータ
戻り値
型: Boolean
使用方法
validateTotpTokenForKey(totpSharedKey, totpCode, description)
署名
public static Boolean validateTotpTokenForKey(String totpSharedKey, String totpCode, String description)
パラメータ
- totpSharedKey
- 型: String
- 共有 (秘密) 鍵。totpSharedKey は、20 バイトの共有鍵の base32 符号化文字列である必要があります。
- totpCode
- 型: String
- 検証する時間ベースのワンタイムパスワード (TOTP) コード。
- description
- 型: String
- ID 検証を必要とするアクティビティを説明するカスタムの説明 (「購入を完了してチェックアウト」など)。[設定] ユーザインターフェースでは、このテキストは [ID 検証履歴] の [アクティビティメッセージ] 列に表示されます。description は 128 文字以下にする必要があります。それより長い値を指定すると、128 文字に切り捨てられます。
戻り値
型: Boolean
使用方法
validateTotpTokenForUser(totpCode, description)
署名
public static Boolean validateTotpTokenForUser(String totpCode, String description)
パラメータ
- totpCode
- 型: String
- 検証する時間ベースのワンタイムパスワード (TOTP) コード。
- description
- 型: String
- ID 検証を必要とするアクティビティを説明するカスタムの説明 (「購入を完了してチェックアウト」など)。このテキストは、Salesforce で、および Salesforce Authenticator バージョン 2 以降を使用している場合は Salesforce Authenticator モバイルアプリケーションで、ユーザが自分の ID を検証するときに表示されます。さらに、[設定] ユーザインターフェースでは、このテキストは [ID 検証履歴] の [アクティビティメッセージ] 列に表示されます。description は 128 文字以下にする必要があります。それより長い値を指定すると、128 文字に切り捨てられます。
戻り値
型: Boolean
使用方法
verifyDeviceFlow(userCode, startUrl)
署名
public static System.PageReference verifyDeviceFlow(String userCode, String startUrl)