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

Newer Version Available

This content describes an older version of this product. View Latest

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