カスタムヘッダーでの指定ログイン情報数式関数の使用
数式関数は、指定ログイン情報または外部ログイン情報のカスタムヘッダーの値項目で使用できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (一部の組織で使用可能) および Lightning Experience の両方 |
| 使用可能なエディション: すべてのエディション |
バイナリラージオブジェクト (BLOB) は、単一のエンティティとして保存されるバイナリデータのコレクションです。指定ログイン情報の場合、BLOB にはカスタムヘッダーの数式で使用するバイナリ実行可能コードを保存できます。「カスタムヘッダーの作成および編集」を参照してください。
数式項目には、スペース、改行文字、コメントを含む最大 3,900 文字を含めることができます。数式にこれを上回る数の文字が必要な場合は、個別に数式項目を作成し、他の数式項目でそれらの項目を参照してください。数式の評価後に表示される最大文字数は 1,300 文字で、カスタムヘッダーのアクセストークンが切り捨てられる可能性があります。
| 関数 | 説明 |
|---|---|
| BASE64DECODE(expr) |
|
| BASE64ENCODE(expr) |
|
| BLOB(expr) |
|
| HASH(algorithm, expr) |
|
| HEX(expr) |
|
| HMAC(algorithm、valueToSign、secretSigningKey) |
|
| SIGN(algorithmName, input, privateKey) |
|
| SIGN_WITH_CERTIFICATE(algorithmName, input, certDevName) |
|
例
-
この例は、外部ログイン情報に保存されるユーザー名とパスワードのエンコードを示しています。
BLOB関数は、最初に username:password 形式の文字列をバイナリに変換します。次に、BASE64ENCODEはバイナリをエンコードされた文字列に変換します。myExternalCredentialは外部ログイン情報の名前です。BASE64ENCODE(BLOB($Credential.myExternalCredential.Username & ':' & $Credential.myExternalCredential.Password)) -
次の例では、base-16、SHA-256 でハッシュされたユーザ名を値として
X-Usernameという名前のヘッダーを設定します。reqはHTTPRequestです。Usernameは、プリンシパルに関連付けられた認証パラメーターです。req.setHeader('X-Username', '{!HEX(HASH(\'SHA-256\', BLOB($Credential.myExternalCredential.Username)))}'); -
この例では、
X-Bodyヘッダーを base-16 のハッシュされた評価済みボディとして設定します。つまり、要求ボディ内のすべての数式が評価されます。$Credential.myExternalCredential.Bodyは文字列ではなく BLOB 型として返されるため、ここではBLOBは必要ありません。req.setHeader('X-Body', '{!HEX(HASH(\'SHA-256\', $Credential.myExternalCredential.Body))}');
