Salesforceクライアントの設定¶
項目
概要¶
Salesforce連携時の接続先情報を設定します。
モジュール Salesforce連携 フォーマットファイル(xsd) WEB-INF/schema/salesforce-client-config.xsd 設定場所 WEB-INF/conf/salesforce-client-config/{任意のファイル名}.xml <?xml version="1.0" encoding="UTF-8"?> <salesforce-client-config xmlns="http://www.intra-mart.jp/system/salesforce/client/config/salesforce-client-config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/system/salesforce/client/config/salesforce-client-config ../schema/salesforce-client-config.xsd"> <salesforce-clients> <salesforce-client id="sample_1" type="oauth-client"> <oauth-provider-id>[Please input OAuth provider ID in oauth-provider-config]</oauth-provider-id> </salesforce-client> <salesforce-client id="sample_2" type="fixed-user-password" tenant="default"> <token-end-point>https://login.salesforce.com/services/oauth2/token</token-end-point> <consumer-key>[Please input your Consumer Key]</consumer-key> <consumer-secret>[Please input your Consumer Secret]</consumer-secret> <user>[Please input your Salesforce user name]</user> <password cryption="sample-cryption-category">[Please input your Salesforce user password]</password> <extra-parameter name="timeout-minutes">[Please input your Salesforce session timeout value (Unit: minutes)]</extra-parameter> </salesforce-client> <salesforce-client id="sample_3" type="user-password" tenant="default secondary"> <token-end-point>https://login.salesforce.com/services/oauth2/token</token-end-point> <consumer-key>[Please input your Consumer Key]</consumer-key> <consumer-secret>[Please input your Consumer Secret]</consumer-secret> <user-password-resolver>[Please input fully qualified class name which class is implements UserPasswordResolver]</user-password-resolver> <extra-parameter name="timeout-minutes">[Please input your Salesforce session timeout value (Unit: minutes)]</extra-parameter> </salesforce-client> </salesforce-clients> </salesforce-client-config>
リファレンス¶
Salesforceクライアントの設定¶
タグ名 salesforce-clients Salesforce連携時の接続先情報を設定します。【設定項目】
<salesforce-client-config> <salesforce-clients> ... </salesforce-clients> </salesforce-client-config>
必須項目 × 複数設定 × 設定値・設定する内容
salesforce-client Salesforceクライアントの詳細設定 単位・型 なし 省略時のデフォルト値 なし 親タグ salesforce-client-config
Salesforceクライアントの詳細設定¶
タグ名 salesforce-client Salesforceクライアントの詳細を設定します。【設定項目】
<salesforce-clients> <salesforce-client id="sample_2" type="fixed-user-password" tenant="default secondary"> <token-end-point>https://login.salesforce.com/services/oauth2/token</token-end-point> <consumer-key>[Please input your Consumer Key]</consumer-key> <consumer-secret>[Please input your Consumer Secret]</consumer-secret> <user>foo@your_company.com</user> <password>foo's password</password> <oauth-provider-id>oauth_provider_for_salesforce_sample</oauth-provider-id> <user-password-resolver>sample.salesforce.SampleUserPasswordResolver</user-password-resolver> <extra-parameter name="timeout-minutes">60</extra-parameter> </salesforce-client> </salesforce-clients>
必須項目 × 複数設定 ○ 設定値・設定する内容
token-end-point トークンエンドポイント consumer-key コンシューマ鍵 consumer-secret コンシューマの秘密 user Salesforceユーザのユーザ名 password Salesforceユーザのパスワード oauth-provider-id OAuthプロバイダID user-password-resolver UserPasswordResolver の実装クラス extra-parameter 追加パラメータ 単位・型 なし 省略時のデフォルト値 なし 親タグ salesforce-clients 【属性】
属性名 説明 必須 デフォルト値 id Salesforceクライアントを識別する一意のIDを設定します。 ○ なし type アクセストークンを取得する際の認証タイプを設定します。認証タイプは以下のいずれかを設定してください。
oauth-client : 「OAuthプロバイダ設定」を利用してアクセストークンを取得します。 fixed-user-password : 指定されたSalesforceユーザのユーザ名とパスワードを利用してアクセストークンを取得します。 user-password : UserPasswordResolver が解決するユーザ名とパスワードを利用してアクセストークンを取得します。○ なし tenant 利用できる intra-mart Accel Platform の テナントID を設定します。複数の テナント を指定する場合、テナントID は半角スペースで区切って記載してください。テナントID の指定がない場合、全ての テナント で利用が可能です。× なし
コラム
アクセストークンを取得する際の認証タイプ毎に、Salesforceのアプリケーション認証方式が異なります。
Salesforceのアプリケーション認証に関する詳細は、以下を参照してください。
oauth-client の場合
OAuth 2.0 Web サーバ認証フロー (日本語) OAuth 2.0 Web Server Authentication Flow (English) fixed-user-password、および、user-password の場合
OAuth 2.0 ユーザ名パスワードフロー (日本語) OAuth 2.0 Username-Password Flow (English) OAuth 2.0 用户名密码流程 (中文)
OAuthプロバイダID¶
タグ名 oauth-provider-id 利用するOAuthプロバイダのIDを設定します。【設定項目】
<salesforce-client> <oauth-provider-id>oauth_provider_for_salesforce_sample</oauth-provider-id> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
oauth-client複数設定 × 設定値・設定する内容 「OAuthプロバイダ設定」に定義されているOAuthプロバイダのIDを設定します。単位・型 文字列 省略時のデフォルト値 なし 親タグ salesforce-client
トークンエンドポイント¶
タグ名 token-end-point アクセストークンを取得するためのトークンエンドポイントを設定します。【設定項目】
<salesforce-client> <token-end-point>https://login.salesforce.com/services/oauth2/token</token-end-point> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
fixed-user-password user-password複数設定 × 設定値・設定する内容 アクセストークンを取得するためのトークンエンドポイントのURIを設定します。 単位・型 文字列 省略時のデフォルト値 なし 親タグ salesforce-client
コンシューマ鍵¶
タグ名 consumer-key Salesforceへ接続する際に利用する「コンシューマ鍵」を設定します。【設定項目】
<salesforce-client> <consumer-key>Consumer Key</consumer-key> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
fixed-user-password user-password複数設定 × 設定値・設定する内容 Salesforceへ接続する際に利用する「コンシューマ鍵」を設定します。OAuth 2.0 では client_id と呼ばれます。単位・型 文字列 省略時のデフォルト値 なし 親タグ salesforce-client
コラム
Salesforceへ接続する際に利用する「コンシューマ鍵」の取得方法は、以下を参照してください。
- 接続アプリケーションの作成 (日本語)
- Creating a Connected App (English)
- 创建连接的应用程序 (中文)
コンシューマの秘密¶
タグ名 consumer-secret Salesforceへ接続する際に利用する「コンシューマの秘密」を設定します。cryption 属性が設定されている場合、指定の方式で暗号化された文字列を設定します。cryption 属性に設定するカテゴリは、「暗号化設定」を参照してください。【設定項目】
<salesforce-client> <consumer-secret cryption="category">Consumer Secret</consumer-secret> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
fixed-user-password user-password複数設定 × 設定値・設定する内容 Salesforceへ接続する際に利用する「コンシューマの秘密」を設定します。OAuth 2.0 では client_secret と呼ばれます。cryption 属性が設定されている場合、指定の方式で暗号化された文字列を設定します。cryption 属性が設定されていない場合、パスワードをそのまま設定します。単位・型 なし 省略時のデフォルト値 なし 親タグ salesforce-client
【属性】
属性名 説明 必須 デフォルト値 cryption 暗号化したパスワードを設定する場合に、暗号化方式のカテゴリを指定します。 × なし
注意
パスワード文字列を暗号化するためのツールは提供されません。
Java API CryptionUtil を利用して、指定したカテゴリで暗号化するプログラムを作成する必要があります。
Java API CryptionUtil の詳細は「CryptionUtil APIドキュメント」を参照してください。
コラム
Salesforceへ接続する際に利用する「コンシューマの秘密」の取得方法は、以下を参照してください。
- 接続アプリケーションの作成 (日本語)
- Creating a Connected App (English)
- 创建连接的应用程序 (中文)
Salesforceユーザのユーザ名¶
タグ名 user Salesforceユーザのユーザ名を設定します。【設定項目】
<salesforce-client> <user>foo@your_company.com</user> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
fixed-user-password複数設定 × 設定値・設定する内容 Salesforceユーザのユーザ名を設定します。「OAuth 2.0 ユーザ名パスワードフロー」の エンドユーザのユーザ名 に該当します。単位・型 文字列 省略時のデフォルト値 なし 親タグ salesforce-client
Salesforceユーザのパスワード¶
タグ名 password Salesforceユーザのパスワードを設定します。cryption 属性が設定されている場合、指定の方式で暗号化された文字列を設定します。cryption 属性に設定するカテゴリは、「暗号化設定」を参照してください。【設定項目】
<salesforce-client> <password cryption="category">salesforce password[&security token]</password> </salesforce-client>
必須項目 アクセストークンを取得する際の認証タイプが以下の場合、この設定は 必須 です。
fixed-user-password複数設定 × 設定値・設定する内容 Salesforceユーザのパスワードを設定します。「OAuth 2.0 ユーザ名パスワードフロー」 の エンドユーザのパスワード に該当します。cryption 属性が設定されている場合、指定の方式で暗号化された文字列を設定します。cryption 属性が設定されていない場合、パスワードをそのまま設定します。単位・型 文字列 省略時のデフォルト値 なし 親タグ salesforce-client
【属性】
属性名 説明 必須 デフォルト値 cryption 暗号化したパスワードを設定する場合に、暗号化方式のカテゴリを指定します。 × なし
注意
Salesforce の REST API を利用する際にセキュリティトークンが必要な環境では、ユーザのセキュリティトークンをユーザのパスワードに付加する必要があります。
セキュリティトークンは Salesforceで自動生成されたキーです。
例えば、ユーザのパスワードが mypassword で、セキュリティトークンが XXXXXXXXXX の場合は、値 mypasswordXXXXXXXXXX を指定する必要があります。
セキュリティトークンを取得するには、Salesforce ユーザインタフェースを通じてパスワードを変更するか、セキュリティトークンをリセットします。
ユーザがパスワードを変更するか、セキュリティトークンをリセットすると、Salesforce がユーザの Salesforce レコードのメールアドレス宛に新しいセキュリティトークンを送信します。
セキュリティトークンは、ユーザがセキュリティトークンをリセットするか、パスワードを変更するか、または、パスワードがリセットされるまで有効です。
セキュリティトークンの詳細は、以下の Salesforce オンラインヘルプを参照してください。
セキュリティトークンのリセット (日本語) Reset Your Security Token (English) 重置您的安全标记 (中文)
セキュリティトークンを使用せずに Salesforce の REST API を利用するには、接続元の IP アドレスを許可する必要があります。
詳細は、以下の Salesforce オンラインヘルプを参照してください。
ユーザが Salesforce にログインできる範囲と時間帯の制限 - 組織の信頼済み IP 範囲の設定 (日本語) Restrict Where and When Users Can Log In to Salesforce - Org-wide Trusted IP Ranges (English) 限制用户可以 Salesforce 的时间与地点 - 组织范围内受信任的 IP 范围 (中文)
注意
パスワード文字列を暗号化するためのツールは提供されません。
Java API CryptionUtil を利用して、指定したカテゴリで暗号化するプログラムを作成する必要があります。
Java API CryptionUtil の詳細は「CryptionUtil APIドキュメント」を参照してください。
UserPasswordResolver の 実装クラス¶
タグ名 user-password-resolver UserPasswordResolver の 実装クラスを設定します。【設定項目】
<salesforce-client> <user-password-resolver>sample.salesforce.SampleUserPasswordResolver</user-password-resolver> </salesforce-client>
必須項目 × 複数設定 × 設定値・設定する内容 jp.co.intra_mart.foundation.salesforce.client.UserPasswordResolver を実装したクラス名を設定します。 単位・型 UserPasswordResolver を実装したクラスの完全修飾クラス名 省略時のデフォルト値 jp.co.intra_mart.system.salesforce.client.impl.UserPasswordResolverImplForPasswordCredentialsGrantUserPasswordResolverImplForPasswordCredentialsGrant は、intra-mart Accel Platform の ログインユーザのユーザコードとパスワードを返却するように実装されています。親タグ salesforce-client
注意
intra-mart Accel Platform のパスワード保存方式に「ハッシュ化」を利用している場合、省略時のデフォルト値「UserPasswordResolverImplForPasswordCredentialsGrant」は利用できません。
(理由:平文パスワードを取得することができないため)
以下の代替案を検討してください。
認証タイプ oauth-client、または、fixed-user-password を利用する。
注意
以下の全ての条件に該当する場合、省略時のデフォルト値「UserPasswordResolverImplForPasswordCredentialsGrant」は利用できません。
(理由:UserPasswordResolverImplForPasswordCredentialsGrant は、Salesforceのセキュリティトークンを付与したパスワードを返却しないため)
Salesforce の REST API を利用する際にセキュリティトークンが必要な環境である。 アクセストークンを取得する際の認証タイプが user-password である。
以下の代替案を検討してください。
認証タイプ oauth-client、または、fixed-user-password を利用する。 パスワードの末尾に Salesforceのセキュリティトークン付与する UserPasswordResolver を独自実装する。 セキュリティトークンを使用せずに Salesforce の REST API を利用できるように設定する。詳細は、以下の Salesforce オンラインヘルプを参照してください。
ユーザが Salesforce にログインできる範囲と時間帯の制限 - 組織の信頼済み IP 範囲の設定 (日本語) Restrict Where and When Users Can Log In to Salesforce - Org-wide Trusted IP Ranges (English) 限制用户可以 Salesforce 的时间与地点 - 组织范围内受信任的 IP 范围 (中文)
追加パラメータ¶
タグ名 extra-parameter 追加情報のパラメータを設定します。【設定項目】
<salesforce-client> <extra-parameter name="timeout-minutes">60</extra-parameter> </salesforce-client>
必須項目 × 複数設定 ○ 設定値・設定する内容 追加情報のパラメータを設定します。 単位・型 なし 省略時のデフォルト値 なし 親タグ salesforce-client 【属性】
属性名 説明 必須 デフォルト値 name パラメータ名を設定します。 ○ なし
注意
アクセストークンの有効期間を設定するために、タイムアウト値の設定が必要です。(単位:分)
認証タイプが fixed-user-password、および、user-password の場合
「Salesforceクライアントの設定」の 「追加パラメータ」<salesforce-client> <extra-parameter name="timeout-minutes">60</extra-parameter> </salesforce-client> 認証タイプが oauth-client の場合
「OAuthプロバイダ設定」の 「追加設定」<extra-config> <parameter name="timeout-minutes">60</parameter> </extra-config>
アクセストークンは、Salesforce のセッションタイムアウトで指定された有効期間に制限されています。
有効期限の切れたアクセストークンを使用すると、「Session expired or invalid」エラーが返されます。
Salesforce のセッションタイムアウト値は、以下の順番で解決されます。
接続アプリケーションのセッションポリシーのタイムアウト値 ユーザプロファイル内のタイムアウト値 組織の [セッションの設定] のタイムアウト値
タイムアウト値の設定方法は、以下の Salesforce オンラインヘルプを参照してください。
接続アプリケーションの編集
接続アプリケーションの編集 (日本語) Edit a Connected App (English) 编辑连接的应用程序 (中文) セッションタイムアウト設定
查看和编辑简档中的会话超时设置 (中文)