Salesforce Files ConnectでBoxとファイル共有してみた。

はじめに

私の過去2回のブログで「Salesforce Files ConnectでOne Driveとファイル共有してみた」 「Salesforce Files ConnectでGoogle Driveとファイル共有してみた」 と題して、Files Connectで外部サービスと連携したファイル共有について設定してみました。
今回のブログでは、テラスカイが提供するクラウド型データ連携サービス「SkyOnDemand」がBoxに対応し、Boxのエコソリューションパートナーになったこともありますので、3つ目の外部サービスとして、そのBoxに接続してファイルを共有できるようにしてみたいと思います。
※このブログに記した内容は私の分かる範囲で触ってみた内容であり、正確でない可能性がありますので、ご承知ください。

必要なライセンス

・Salesforce
ヘルプを見ると、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Editionとなっています。
今回の評価にはDeveloper Editionを利用しました。
・Box
今回は企業利用が基本となることも考え「Box Business」の試用環境を利用しました。

設定

ここでは、SalesforceとBoxサービスのアカウントは取得済みと想定して進めます。

1.Files Connect の設定

1-1. Files Connect の有効化
メニューの[設定]-[アプリケーションの設定]-[カスタマイズ]-[Salesforce Files]-[設定]-[Files Connect 設定]で、設定画面を表示します。
「編集」ボタンをクリックして、[Files Connect の有効化] をチェックして有効化すると、[ファイル共有] 、[外部オブジェクト検索レイアウトを使用]が設定できるようになります。
[ファイル共有]については、「コピー」と「参照」があり、Boxに権限が無いユーザにもファイルを共有した場合に「コピー」を選ぶと、Salesforceにファイルがコピーされて共有されます。 「参照」はBox権限が無いと共有されません。
0. Files Connect 設定.png
1-2. ユーザ及びシステム管理へのアクセス許可設定
Salesforceユーザとシステム管理者への外部コンテンツへのアクセス権限を許可します。
権限の設定はプロファイルと権限セットで設定できます。権限セットで設定することで複数ユーザへの権限付与が容易になります。
今回は権限セットを作成して設定してみました。「Files Connect(クラウド)」にチェックします。
1-2権限セット.png

2.Boxの認証プロバイダを作成します。

2-1. Salesforceで認証プロバイダのを作成
Boxの認証プロバイダを作成します。一旦プレースホルダ(仮の値)を使用してBoxの認証プロバイダを作成した後に正しい値に変更します。
[設定]-[管理]-[セキュリティのコントロール]-[認証プロバイダ]とたどり、設定画面を表示します。
以下2つの項目にプレースホルダ値を設定して保存します。
・コンシューマ鍵
・コンシューマの秘密
以下の2項目は以下のURLを指定します。
承認エンドポイント:「 https://app.box.com/api/oauth2/authorize」
・トークンエンドポイント:「https://app.box.com/api/oauth2/token」
保存したら、詳細画面に遷移しますので、画面下部の「コールバック URL」をメモ等にコピーします。 この後の手順で利用します。

2-1.認証プロバイダ(プレースホルダ).png

2-2. Box アプリケーションの作成
Box側へログインしアプリケーションを作成します。
・以下のURLでBOXのマイアプリケーション画面にアクセスします。
・「Boxアプリケーションの作成」リンクからアプリケーションの作成を行います。
・アプリケーション名を指定し、「アプリケーションの作成」ボタン押下で編集画面に遷移します。
この時アプリケーション名がすでに利用されているとエラーとなりますので、ユニークなアプリケーション名を指定してください。
2-2Boxアプリケーション作成1.png
・編集画面の「OAuth2パラメータ」セクションの [redirect_uri] 項目に2ー1で保存した「コールバック URL」を貼り付けます。
・[client_id] 項目と [client_secret]項目 の値をメモ等にコピーし保存します。この値は 「3.認証プロバイダの編集」で利用します。
2-3Boxアプリケーション作成.png
・「アプリケーションの保存」ボタンで保存します。

3 .認証プロバイダのの編集

2-1で作成した認証プロバイダを開き、2-2.で取得した [client_id] 項目と [client_secret]項目 の値を設定します。
・コンシューマ鍵: [client_id]項目の値
・コンシューマの秘密: [client_secret]項目の値
3.認証プロバイダ編集.png

4.Boxの外部データソースの定義

4-1. 外部データソースの作成
Salesforceの「設定」の「外部データソース」から新規外部データソースを作成します。
「外部データソース」「名前」には適当な値を入力します。
「種別」は"Files Connect: Box"を選択します。※「1-2. ユーザ及びシステム管理へのアクセス許可設定」で、正しくプロファイル及び権限セットで行われていないと選択リストに表示されません。
「認証プロバイダ」には2-1で作成した認証プロバイダを選択し、「保存」ボタンで保存します。
4-1外部データソース.png
4-2. BOXへのアクセス許可
BOX側へ認証チェックのアスセスがあります。
以下のような画面が表示されますので、「Boxへのアクセスを許可」ボタンを押下し許可します。
この認証が通れば外部データソースが保存されます。
4-2外部データソース.png

5. BOX(外部データ)をグローバル検索に含める。

5-1. 外部データソースからの外部オブジェクトの作成
・[外部データソース] から、データソース名をクリックして詳細ページ表示後、「検証して同期」ボタンを押下します。
・表示されたテーブル名を選択し、「同期」 を押下してソース全体に対応付ける外部オブジェクトを作成します。
5-2 外部データソースを同期.png
5-2. 作成されたオブジェクトをリリース
[外部オブジェクト]から、外部オブジェクトの「編集」を押下し「リリース済み」をクリックして「保存」 します。
5-2 外部オブジェクトをリリース.png
5-3. 外部オブジェクト項目へのアクセス権のユーザへの付与
[権限セット]から、1-2.で作成した権限セットを選び、「オブジェクト設定」を行います。
5-3 外部オブジェクト権限.png
5-4.有効な外部データソースアクセスの設定
権限セットで「部データソースアクセス」で、該当の外部データソースを選択し「有効なデータソースアクセス」へ追加します。
5-4 権限セットの設定.png

6.上記までの設定を行ったら、設定は完了です。

7. 共有の確認

設定がすべて終わりましたので、Salesforce画面上にBOX上のファイルが共有されるか確認してみます。
7-1. Chatterでの共有
Chatterの画面を開くと「ファイル」の下にBOXへののリンクが出来ております。
リンククリックでBOXに作成されたファイルが一覧表示されました。
7-1 権限.png
7-2. グローバル検索からの検索
グローバル検索からは「すべて検索」ボタンの押下で検索できました。
7-2検索結果.png

■最後に

OneDrive、GoogleDrive、今回のBOXと3種類のサービスをFileConnectで共有して見ましたが、基本的にSFDCに対しては同じような設定を行えば簡単に共有できました。
個別のサービスごとの設定には面倒な部分もありますが、何度も行う設定ではありませんので、利用へのハードルは低いと感じます。
Boxを含め、外部のストレージサービスを利用されている会社もどんどん増えていると思いますので、ぜひ利用を検討してみては如何でしょうか?