SalesforceにTableauのダッシュボードを表示するときにハマったこと


SalesforceにTableauのダッシュボードを表示したいという要望がありいくつかハマったのでそのメモ。

環境

・Salesforce → Classic
・Tableau → Windowsサーバー(オンプレ)
・Sparkler → EC2(Amazon Linux)

前提

・あくまでもハマりポイントを書くので、細かい手順はこちらでダウンロードすると、英語のDocumentがありますので、そちらを参照ください
・Salesforceのデータを連携するということではなく、Tableauのダッシュボードをそのまま表示するという要件です。
・Salesforce Canvasを使用します。

システム構成

はまりポイント1:Javaのバージョン

EC2でJavaがデフォルトで入っていたので、何も考えずに進んでいたらSSL認証のところでつまりました。ちゃんとバージョンは確認しましょう(←当たり前)

ec2
[ec2-user ~]$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (amzn-2.6.7.2.68.amzn1-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

##1.8をインストール
[ec2-user ~]$ sudo yum install java-1.8.0-openjdk.x86_64

#もう一度バージョンを確認
[ec2-user ~]$ java -version
java version "1.7.0_111"
OpenJDK Runtime Environment (amzn-2.6.7.2.68.amzn1-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

#1.8を採用
[ec2-user ~]$ sudo alternatives --config java

はまりポイント2:キーストアの名前(CN)

「Task 3: Enable HTTPS for Tomcat」でCNの名前をSparklerとするように書いているが、「Task 5: Configure Sparkler to Use a Tableau Server Self-Signed SSL Certificate (If Required)」で自己証明の場合は、Tableauサーバーのホスト名にするようにと記載があった。

ec2
[root tomcat7]$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat7/.keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: {Tableauのホスト名}
What is the name of your organizational unit?
[Unknown]: {Your Organization}
What is the name of your organization?
[Unknown]: {Your Company}
What is the name of your City or Locality?
[Unknown]: {Your City}
What is the name of your State or Province?
[Unknown]: {Your State}
What is the two-letter country code for this unit?
[Unknown]: {Your Country Code}
Is CN={Tableauのホスト名}, OU={Your Organization}, O={Your Company},
L={Your City}, ST={Your State}, C={Your Country Code} correct?
[no]: y
Enter key password for <tomcat>
(RETURN if same as keystore password):

ハマりポイント3:自己証明の場合の手順

今回Tableau、SparklerいずれもSSL認証の必要がありますが、検証環境でわざわざ認証局に申請をするとお金がかかるので、自己証明(おれおれ証明)をしています。
Tableauの自己証明の手順とかいろいろと省略されていたので、「Task 5: Configure Sparkler to Use a Tableau Server Self-Signed SSL Certificate (If Required)」でかなりハマりました。

まずTableauの自己認証の方法はクラメソさんが詳しく書いていますので、こちらを参照ください。
Tableau Serverに対するSSL設定を行う

次に自己証明の場合、SparklerとTableauの証明書が同一である必要があります。
手順書では証明書をPEMフォーマットからDERフォーマットに変換する必要があるので、上の手順で作成した証明書「tableauserverssl.crt」をSparklerサーバーで変換する必要があります。

ec2
openssl x509 -in tableauserverssl.crt -inform PEM -out tableau.der -outform DER

あとがき

もう少しありましたが、時間もないので後ほど追記します。