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

SessionManagement クラス

現在のセッションのセキュリティレベル、2 要素認証、および信頼済み IP 範囲をカスタマイズするためのメソッドが含まれます。

名前空間

Auth

SessionManagement メソッド

SessionManagement のメソッドは次のとおりです。すべてのメソッドが静的です。これらのメソッドを使用して、2 要素認証実装をカスタマイズし、Salesforce 組織での時間ベースのワンタイムパスワード (TOTP) アプリケーション (Google Authenticator など) の使用を管理します。または、これらのメソッドを使用して、ユーザの受信 IP アドレスを、組織またはプロファイルの信頼済み IP 範囲設定に対して検証します。

getCurrentSession()

現在のセッションの属性の対応付けを返します。

署名

public static Map<String, String> getCurrentSession()

戻り値

型: Map<String, String>

使用��法

対応付けには、親セッションが存在すれば (現在のセッションがキャンバスアプリケーション用の場合など)、その 18 文字の ID である ParentId 値が含まれます。現在のセッションに親がない場合、この値は null になります。対応付けには、現在のセッションに割り当てられた LogoutUrl も含まれます。

セッションを再び使用すると、SalesforceLoginHistoryId を最新ログインの値で更新します。

メモ

次の例は、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}

getQrCode()

2 要素認証アプリケーションまたはデバイスを設定するための、QR (Quick Response) コードと時間ベースのワンタイムパスワード (TOTP) の共有秘密への URL が含まれる対応付けを返します。

署名

public static Map<String, String> getQrCode()

戻り値

型: Map<String, String>

使用方法

QR コードは、返された秘密と現在のユーザのユーザ名を符号化します。キーは qrCodeUrlsecret です。このメソッドをコールしても、ユーザの状態は変化せず、ユーザから状態は読み込まれません。このメソッドは、コールされるたびにまったく新しい秘密を返します。また、その秘密をどこにも保存せず、TOTP トークンを検証しません。システム管理者は、TOTP トークンを秘密で検証した後、ユーザの値を明示的に保存する必要があります。

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}

inOrgNetworkRange(ipAddress)

特定の IP アドレスが、組織の [ネットワークアクセス] 設定に基づいた組織の信頼済み IP 範囲内がどうかを示します。

署名

public static Boolean inOrgNetworkRange(String ipAddress)

パラメータ

ipAddress
型: String
検証する IP アドレス。

戻り値

型: Boolean

使用方法

信頼済み IP 範囲が定義されていない場合は false を返し、IP アドレスが無効な場合は例外を発生させます。
信頼済み IP 範囲が存在するか? ユーザは信頼済み IP 範囲内か? 戻り値
はい はい true
はい いいえ false
いいえ N/A false

isIpAllowedForProfile(profileId, ipAddress)

特定の IP アドレスが、特定のプロファイルの信頼済み IP 範囲内かどうかを示します。

署名

public static Boolean isIpAllowedForProfile(String profileId, String ipAddress)

パラメータ

profileId
型: String
現在のユーザのプロファイル ID である 15 文字の英数字文字列。
ipAddress
型: String
検証する IP アドレス。

戻り値

型: Boolean

使用方法

信頼済み IP 範囲が定義されていない場合は true を返し、IP アドレスまたはプロファイル ID が無効な場合は例外を発生させます。
信頼済み IP 範囲が存在するか? ユーザは信頼済み IP 範囲内か? 戻り値
はい はい true
はい いいえ false
いいえ N/A true

setSessionLevel(level)

ユーザの現在のセッションのセキュリティレベルを設定します。

署名

public static Void setSessionLevel(Auth.SessionLevel level)

パラメータ

level
型: Auth.SessionLevel
ユーザに割り当てるセッションセキュリティレベル。各レベルの意味は、各組織の [セッションの設定] でカスタマイズできます。たとえば、2 要素認証または特定の ID プロバイダで認証されたユーザにのみ [高保証] レベルを適用するように設定できます。

戻り値

型: Void

使用方法

この設定は、VisualforceSalesforce Files Sync、UI アクセスなど、現在のセッションに関連付けられたすべてのセッションのセッションレベルに影響を与えます。

次に、セッションレベルを設定するためのクラスの例を示します。

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)

特定の時間ベースのワンタイムパスワード (TOTP) コード (トークン) が特定の共有鍵に対して有効かどうかを示します。

署名

public static Boolean validateTotpTokenForKey(String sharedKey, String totpCode)

パラメータ

sharedKey
型: String
共有 (秘密) 鍵。sharedKey は、20 バイトの共有鍵の base32 符号化文字列である必要があります。
totpCode
型: String
検証する時間ベースのワンタイムパスワード (TOTP) コード。

戻り値

型: Boolean

使用方法

鍵が無効か存在しない場合、このメソッドではそれぞれ、無効なパラメータ値またはデータが見つからないという例外を発生させます。現在のユーザのトークン検証試行回数が制限の 10 回を超えた場合、このメソッドはセキュリティ例外を発生させます。

validateTotpTokenForUser(totpCode)

特定の時間ベースのワンタイムパスワード (TOTP) コード (トークン) が現在のユーザに対して有効かどうかを示します。

署名

public static Boolean validateTotpTokenForUser(String totpCode)

パラメータ

totpCode
型: String
検証する時間ベースのワンタイムパスワード (TOTP) コード。

戻り値

型: Boolean

使用方法

現在のユーザに TOTP コードがない場合、このメソッドは例外を発生させます。現在のユーザの検証試行回数が制限を超えた場合、このメソッドは例外を発生させます。