intra-mart Accel Platform 設定ファイルリファレンス 第25版 2020-04-01

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プロバイダ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へ接続する際に利用する「コンシューマ鍵」の取得方法は、以下を参照してください。

コンシューマの秘密

タグ名 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へ接続する際に利用する「コンシューマの秘密」の取得方法は、以下を参照してください。

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 オンラインヘルプを参照してください。
セキュリティトークンを使用せずに Salesforce の REST API を利用するには、接続元の IP アドレスを許可する必要があります。 詳細は、以下の Salesforce オンラインヘルプを参照してください。

注意

パスワード文字列を暗号化するためのツールは提供されません。
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.UserPasswordResolverImplForPasswordCredentialsGrant
UserPasswordResolverImplForPasswordCredentialsGrant は、intra-mart Accel Platform の ログインユーザのユーザコードとパスワードを返却するように実装されています。
親タグ salesforce-client

注意

intra-mart Accel Platform のパスワード保存方式に「ハッシュ化」を利用している場合、省略時のデフォルト値「UserPasswordResolverImplForPasswordCredentialsGrant」は利用できません。 (理由:平文パスワードを取得することができないため)
以下の代替案を検討してください。
  • 認証タイプ oauth-client、または、fixed-user-password を利用する。

注意

以下の全ての条件に該当する場合、省略時のデフォルト値「UserPasswordResolverImplForPasswordCredentialsGrant」は利用できません。 (理由:UserPasswordResolverImplForPasswordCredentialsGrant は、Salesforceのセキュリティトークンを付与したパスワードを返却しないため)
  • Salesforce の REST API を利用する際にセキュリティトークンが必要な環境である。
  • アクセストークンを取得する際の認証タイプが user-password である。
以下の代替案を検討してください。

追加パラメータ

タグ名 extra-parameter
追加情報のパラメータを設定します。

【設定項目】

<salesforce-client>
  <extra-parameter name="timeout-minutes">60</extra-parameter>
</salesforce-client>

必須項目 ×
複数設定
設定値・設定する内容 追加情報のパラメータを設定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ salesforce-client

【属性】

属性名 説明 必須 デフォルト値
name パラメータ名を設定します。 なし

注意

アクセストークンの有効期間を設定するために、タイムアウト値の設定が必要です。(単位:分)
  • 認証タイプが fixed-user-password、および、user-password の場合
  • 認証タイプが oauth-client の場合
    • OAuthプロバイダ設定」の 「追加設定」
      <extra-config>
        <parameter name="timeout-minutes">60</parameter>
      </extra-config>
      
アクセストークンは、Salesforce のセッションタイムアウトで指定された有効期間に制限されています。
有効期限の切れたアクセストークンを使用すると、「Session expired or invalid」エラーが返されます。
Salesforce のセッションタイムアウト値は、以下の順番で解決されます。
  1. 接続アプリケーションのセッションポリシーのタイムアウト値
  2. ユーザプロファイル内のタイムアウト値
  3. 組織の [セッションの設定] のタイムアウト値
タイムアウト値の設定方法は、以下の Salesforce オンラインヘルプを参照してください。