SessionManagement クラス
名前空間
SessionManagement メソッド
getCurrentSession()
署名
public static Map<String, String> getCurrentSession()
使用��法
対応付けには、親セッションが存在すれば (現在のセッションがキャンバスアプリケーション用の場合など)、その 18 文字の ID である ParentId 値が含まれます。現在のセッションに親がない場合、この値は null になります。対応付けには、現在のセッションに割り当てられた LogoutUrl も含まれます。
例
次の例は、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()
使用方法
QR コードは、返された秘密と現在のユーザのユーザ名を符号化します。キーは qrCodeUrl と secret です。このメソッドをコールしても、ユーザの状態は変化せず、ユーザから状態は読み込まれません。このメソッドは、コールされるたびにまったく新しい秘密を返します。また、その秘密をどこにも保存せず、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)
isIpAllowedForProfile(profileId, ipAddress)
署名
public static Boolean isIpAllowedForProfile(String profileId, String ipAddress)
戻り値
型: 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
使用方法
この設定は、Visualforce、Salesforce 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)
署名
public static Boolean validateTotpTokenForKey(String sharedKey, String totpCode)
パラメータ
戻り値
型: Boolean
使用方法
鍵が無効か存在しない場合、このメソッドではそれぞれ、無効なパラメータ値またはデータが見つからないという例外を発生させます。現在のユーザのトークン検証試行回数が制限の 10 回を超えた場合、このメソッドはセキュリティ例外を発生させます。