Mutual authentication(two-way authentication) Callin

Callout 時の Mutual authentication については、サーバ編クライアント編 を参照。

Callin(外部から Salesforce への API 接続)時には、Salesforce のサーバ認証とは別に、クライアント認証も行えるようになっている(Salesforce.com Winter ’14 リリースノート/相互認証)。注意点としては、Callout 時のサーバ認証時と同様に Salesforce で信頼される認証局での署名である必要がある。対応している証明書は Outbound Messaging SSL CA Certificates にリストされている。

クライアント証明書のアップロードと、接続ユーザの SSL/TLS 相互認証を適用 が有効になれば設定は完了となる。テストとしては、cURL で以下の通り実行し疎通できれば良い。

$ curl -k https://ap.salesforce.com:8443/services/Soap/u/33.0 -H "Content-Type: text/xml; charset=UTF-8" -H "SOAPAction: login" -d @login.xml --cert mycrient.crt --key mycrient.key
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:login xmlns:n1="urn:partner.soap.sforce.com">
      <n1:username>my username</n1:username>
      <n1:password>my password</n1:password>
    </n1:login>
  </env:Body>
</env:Envelope>