Salesforce
Adobe Experience Platform を使用すると、外部ソースからデータを取り込みながら、Platform サービスを使用して受信データの構造化、ラベル付けおよび拡張を行うことができます。アドビのアプリケーション、クラウドベースのストレージ、データベースなど、様々なソースからデータを取り込むことができます。
Experience Platform は、サードパーティの CRM システムからのデータ取り込みをサポートしています。CRM プロバイダーのサポートは Salesforce を含みます。
Azure にExperience Platformするための Salesforce ソースの設定 azure
Azure にExperience Platformするための Salesforce アカウントを設定する方法については、次の手順に従います。
IP アドレス許可リスト
ソースコネクタを操作する前に、IP アドレスのリストを許可リストに追加する必要があります。 地域固有の IP アドレスを許可リストに追加しないと、ソースを使用する際にエラーが発生したり、パフォーマンスが低下する場合があります。 詳しくは、IP アドレスの許可リストページを参照してください。
Salesforce から XDM へのフィールドマッピング
Salesforce と Platform の間にソース接続を確立するには、Salesforce のソースデータフィールドを、Platform に取り込む前に、適切なターゲット XDM フィールドにマッピングする必要があります。
Salesforce データセットと Platform 間のフィールドマッピングルールについて詳しくは、次を参照してください。
Salesforce 名前空間とスキーマ自動生成ユーティリティの設定
Salesforce ソースを B2B-CDP の一部として使用するには、まず Postman ユーティリティを設定して、Salesforce 名前空間とスキーマを自動生成する必要があります。 次のドキュメントでは、Postman ユーティリティの設定に関する追加情報を示します。
- この GitHub リポジトリから、名前空間およびスキーマ自動生成ユーティリティのコレクションと環境をダウンロードできます。
- 必要なヘッダーの値を収集する方法やサンプル API 呼び出しを読み取る方法など、Platform API の使用について詳しくは、Platform API の概要を参照してください。
- Platform API の資格情報の生成方法について詳しくは、Experience PlatformAPI の認証とアクセスに関するチュートリアルを参照してください。
- Platform API の Postman の設定方法について詳しくは、 開発者コンソールとの設定 Postman のチュートリアルを参照してください。
Platform 開発者コンソールをセットアップす Postman と、適切な環境値の Postman 環境への適用を開始できます。
次の表に、値の例と、Postman 環境へのデータ入力に関する追加情報を示します。
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 9-row-3 10-row-3 11-row-3 12-row-3 13-row-3 14-row-3 15-row-3 16-row-3 17-row-3 layout-auto | ||
---|---|---|
変数 | 説明 | 例 |
CLIENT_SECRET |
{ACCESS_TOKEN} ータの生成に使用される一意の ID。 サー {CLIENT_SECRET} スの取得方法について詳しくは、Experience Platform API の認証とアクセスに関するチュートリアルを参照してください。 |
{CLIENT_SECRET} |
JWT_TOKEN |
JSON web トークン(JWT)は、{ACCESS_TOKEN} ータの生成に使用される認証資格情報です。 サー {JWT_TOKEN} スの生成方法について詳しくは、Experience PlatformAPI の認証とアクセスに関するチュートリアルを参照してください。 |
{JWT_TOKEN} |
API_KEY |
Experience PlatformAPI への呼び出しの認証に使用される一意の ID。 サー {API_KEY} スの取得方法について詳しくは、Experience Platform API の認証とアクセスに関するチュートリアルを参照してください。 |
c8d9a2f5c1e03789bd22e8efdd1bdc1b |
ACCESS_TOKEN |
Experience PlatformAPI を呼び出すために必要な認証トークン。 サー {ACCESS_TOKEN} スの取得方法について詳しくは、Experience Platform API の認証とアクセスに関するチュートリアルを参照してください。 |
Bearer {ACCESS_TOKEN} |
META_SCOPE |
Marketo に関しては、この値は固定で、常に ent_dataservices_sdk に設定されます。 |
ent_dataservices_sdk |
CONTAINER_ID |
global コンテナには、標準AdobeおよびExperience Platformパートナー提供のすべてのクラス、スキーマフィールドグループ、データタイプおよびスキーマが格納されます。 Marketo に関しては、この値は固定で、常に global に設定されます。 |
global |
PRIVATE_KEY |
API に対する Postman インスタンスのExperience Platformに使用される資格情報。 コンテン {PRIVATE_KEY} の取得方法については、開発者コンソールの設定および 開発者コンソールの設定および Postman に関するチュートリアルを参照してください。 | {PRIVATE_KEY} |
TECHNICAL_ACCOUNT_ID |
Adobe I/Oへの統合に使用する資格情報。 | D42AEVJZTTJC6LZADUBVPA15@techacct.adobe.com |
IMS |
Identity Management System (IMS)は、Adobe サービスに対して認証を行うためのフレームワークを提供します。 Marketo に関しては、この値は固定で、常に ims-na1.adobelogin.com に設定されます。 |
ims-na1.adobelogin.com |
IMS_ORG |
製品およびサービスを所有またはライセンスし、そのメンバーへのアクセスを許可できる法人組織。 {ORG_ID} ーザー情報の取得方法については、Developer Console の設定および Postman に関するチュートリアルを参照してください。 |
ABCEH0D9KX6A7WA7ATQE0TE@adobeOrg |
SANDBOX_NAME |
使用している仮想サンドボックスパーティションの名前。 | prod |
TENANT_ID |
作成するリソースの名前空間が適切に設定され、組織内に含まれていることを確認するために使用される ID。 | b2bcdpproductiontest |
PLATFORM_URL |
API 呼び出しを行う URL エンドポイント。 この値は固定で、常に http://platform.adobe.io/ に設定されます。 |
http://platform.adobe.io/ |
munchkinId |
Marketo アカウントの一意の ID。 インスタンスの取得方法について詳しくは、 インスタンスの認証に関するチュー munchkinId リアルを参照してください Marketo |
123-ABC-456 |
sfdc_org_id |
Salesforce アカウントの組織 ID。 Salesforce 組織 ID の取得について詳しくは、次の Salesforce ガイドを参照してください。 | 00D4W000000FgYJUA0 |
has_abm |
Marketo Account-Based Marketing を購読しているかどうかを示すブール値。 | false |
has_msi |
Marketo Sales Insight を購読しているかどうかを示すブール値。 | false |
スクリプトの実行
Postman コレクションと環境を設定すると、Postman インターフェイスを使用してスクリプトを実行できます。
Postman インターフェイスで、自動生成ユーティリティのルートフォルダーを選択し、上部のヘッダーから「Run」を選択します。
Runner インターフェイスが表示されます。 ここから、すべてのチェックボックスが選択されていることを確認してから選択し Run Namespaces and Schemas Autogeneration Utility す。
リクエストが成功すると、ベータ版の仕様に従って B2B 名前空間とスキーマが作成されます。
Amazon Web Services上でのExperience Platform用の Salesforce ソースの設定 aws
Amazon Web Services(AWS)でExperience Platform用に Salesforce アカウントを設定する方法については、次の手順に従います。
前提条件
Salesforce アカウントをAWS リージョンのExperience Platformに接続するには、次が必要です。
- API アクセス権を持つ Salesforce アカウント。
- その後、JWT_BEARER OAuth フローを有効にするために使用できる Salesforce Connected App。
- データにアクセスするた Salesforce に必要な権限。
また、Salesforce アカウントをAmazon Web Services(AWS)のExperience Platformに接続するには、次の IP アドレスを許可リストに追加する必要があります。
34.193.63.59
44.217.93.240
44.194.79.229
Salesforce Connected App の作成
まず、以下を使用して PEM ファイルの証明書とキーペアを作成します。
openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
- Salesforce ダッシュボードで、「設定」(
- App Manager に移動し、「New Connection App」を選択します。
- アプリの名前を指定し、残りのフィールドに自動入力できるようにします。
- Enable OAuth Settings のボックスを有効にします。
- コールバック URL を設定します。 これは JWT では使用されないので、
https://localhost
を使用できます。 - Use Digital Signatures のボックスを有効にします。
- 前に作成した cert.pem ファイルをアップロードします。
必要な権限を追加
次の権限を追加します。
- API を使用したユーザーデータの管理(api)
- カスタム権限へのアクセス (custom_permissions)
- ID URL サービスへのアクセス(ID、プロファイル、メール、アドレス、電話)
- 一意の ID (openid)へのアクセス
- いつでもリクエストを実行(refresh_token、offline_access)
権限が追加されたら、必ずこのチェックボックスを有効に Issue JSON Web Token (JWT)-based access tokens for named user ます。
次に、「Save」、「Continue」の順に選択し、「Manage Customer Details」を選択します。 消費者の詳細パネルを使用して、以下を取得します。
- コンシューマーキー:後でExperience Platformに対して Salesforce アカウントを認証する際に、このコンシューマーキーをクライアント ID として使用します。
- コンシューマーシークレット:後でExperience Platformに対して Salesforce アカウントを認証する際に、このコンシューマーシークレットをクライアント ID として使用します。
接続されたアプリへの Salesforce ユーザーの認証
接続されたアプリを使用するための認証を取得するには、次の手順に従います。
- Manage Connected Apps に移動します。
- Edit を選択します。
- Permitted Users を Admin approved users are pre-authorized として設定し、「Save」を選択します。
- Settings/Manage Users/Profiles に移動します。
- ユーザーに関連付けられたプロファイルを編集します。
- Connected App Access に移動し、前の手順で作成したアプリを選択します。
JWT ベアラートークンの生成
JWT ベアラートークンを生成するには、次の手順に従います。
キーペアを pkcs12 に変換する
JWT ベアラートークンを生成するには、まず次のコマンドを使用して、証明書とキーのペアを pkcs12 形式に変換する必要があります。 この手順では、プロンプトが表示されたら 書き出しパスワードを設定 する必要もあります。
openssl pkcs12 -export -in cert.pem -inkey key.pem -name jwtcert >jwtcert.p12
pkcs12 に基づく java キーストアの作成
次に、次のコマンドを使用して、生成したばかりの pkcs12 に基づいて java キーストアを作成します。 この手順では、プロンプトが表示されたら 宛先キーストアパスワードを設定 も入力する必要があります。 さらに、ソースキーストアのパスワードとして、以前の書き出しパスワードを指定する必要があります。
keytool -importkeystore -srckeystore jwtcert.p12 -destkeystore keystore.jks -srcstoretype pkcs12 -alias jwtcert
keystroke.jks に jwtcert エイリアスが含まれていることを確認します
次に、次のコマンドを使用して、keystroke.jks
に jwtcert
エイリアスが含まれていることを確認します。 この手順では、前の手順で生成した宛先キーストアのパスワードを指定するように求められます。
keytool -keystore keystore.jks -list
署名済みトークンの生成
最後に、以下の Java クラス JWTExample を使用して、署名済みトークンを生成します。
package org.example;
import org.apache.commons.codec.binary.Base64;
import java.io.*;
import java.security.*;
import java.text.MessageFormat;
public class Main {
public static void main(String[] args) {
String header = "{\"alg\":\"RS256\"}";
String claimTemplate = "'{'\"iss\": \"{0}\", \"sub\": \"{1}\", \"aud\": \"{2}\", \"exp\": \"{3}\"'}'";
try {
StringBuffer token = new StringBuffer();
//Encode the JWT Header and add it to our string to sign
token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
//Separate with a period
token.append(".");
//Create the JWT Claims Object
String[] claimArray = new String[5];
claimArray[0] = "{CLIENT_ID}";
claimArray[1] = "{AUTHORIZED_SALESFORCE_USERNAME}";
claimArray[2] = "{SALESFORCE_LOGIN_URL}";
claimArray[3] = Long.toString((System.currentTimeMillis() / 1000) + 2629746*4);
MessageFormat claims;
claims = new MessageFormat(claimTemplate);
String payload = claims.format(claimArray);
//Add the encoded claims object
token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("path/to/keystore"), "keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("jwtcert", "privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
//Separate with a period
token.append(".");
//Add the encoded signature
token.append(signedPayload);
System.out.println(token.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
claimArray[0]
claimArray[0]
を更新します。claimArray[1]
claimArray[1]
を、アプリに対して許可されている Salesforce のユーザー名に更新します。claimArray[2]
claimArray[2]
を更新します。claimArray[3]
claimArray[3]
を、エポック時間からミリ秒単位で書式設定された有効期限で更新します。 例えば、3660624000000
は 12-31-2085 です。/path/to/keystore
/path/to/keystore
を keystore.jks の正しいパスに置き換えますkeystorepassword
keystorepassword
を宛先キーストアのパスワードに置き換えます。privatekeypassword
privatekeypassword
をソースキーストアのパスワードに置き換えます。次の手順
Salesforce アカウントの前提条件の設定が完了したら、Salesforce アカウントをExperience Platformに接続して CRM データを取り込む手順に進むことができます。 詳しくは、以下のドキュメントを参照してください。
API を使用して Salesforce と Platform を接続する
以下のドキュメントでは、API やユーザーインターフェイスを使用して Salesforce と Platform を接続する方法について説明します。