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

はじめに
私の前回のブログで「Dropbox for Salesforceを設定して触ってみた。」と題して、「Dropbox for Salesforce」というAppExcehangeのパッケージをインストールして設定してみました。
今回のブログでは、SalesforceがFiles Connectという機能により、MicrosoftのSharePointやOneDriveに接続してファイルを共有できるようになっていましたので、OneDriveで接続できるように設定して触ってみました。
※このブログに記した内容は私の分かる範囲で触ってみた内容であり、正確でない可能性がありますので、ご承知ください。

必要なライセンス
Salesforce
ヘルプを見ると、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Editionとなっています。
今回の評価にはEnterpriseEditionを利用しました。

OneDrive
「OneDrive for Bissiness」というアカウントが必要なようです。個人用のアカウントで接続できるかどうか分かりません。
今回は「OneDrive for Bissiness」の評価版ライセンスを取得して設定してみました。評価版の有効期間は1ヶ月となっています。

設定
ここでは、SalesforceとOneDrive for Bissinessのアカウントは取得済みと想定して進めます。

1.Files Connect の設定
メニューの[設定]-[アプリケーションの設定]-[カスタマイズ]-[Salesforce Files]-[設定]-[Files Connect 設定]で、設定画面を表示します。
「編集」ボタンをクリックして、[Files Connect の有効化] をチェックして有効化すると、[ファイル共有] 、[外部オブジェクト検索レイアウトを使用]が設定できるようになります。
[ファイル共有]については、「コピー」と「参照」があり、OneDriveに権限が無いユーザにもファイルを共有した場合に「コピー」を選ぶと、Salesforceにファイルがコピーされて共有されます。
「参照」はOneDriveに権限が無いと共有されません。

2.OneDriveへのユーザ及びシステム管理のアクセス許可設定
有効化が済んだら、次はSalesforceユーザとシステム管理者へのOneDriveへのアクセス権限を許可します。
権限の設定はプロファイルと権限セットで設定できます。権限セットで設定することで複数ユーザへの権限付与が容易になります。
今回は権限セットを作成して設定してみました。「Files Connect(クラウド)」にチェックします。

権限セットの作成後は、「割当の管理」ボタンから作成した権限セットをユーザに付与します。

権限セット  OneDrive接続2

3.OneDriveの認証プロバイダを作成します。
認証プロバイダの作成では大きく3つの手順があります。

3-1.プレースホルダを使用したOneDriveの認証プロバイダを作成します。
次の手順の外部データソースを定義に必要な為、OneDriveの認証プロバイダを作成します。
「設定」「管理者設定」「セキュリティのコントロール」「認証プロバイダ」とたどり、設定画面を表示します。
ここでの設定画面では一旦作成する必要が有る為、以下4つの項目にプレースホルダ値を設定し保存します。
・コンシューマ鍵
・コンシューマの秘密
・承認エンドポイント(httpsで始まるURLでプレースホルダ値)
・トークンエンドポイント(httpsで始まるURLでプレースホルダ値)
保存したら、詳細画面に遷移しますので、画面下部の「コールバック URL」をメモ等にコピーします。

認証プロバイダ1

3-2.OneDriveへの登録(その1)
・以下のURLへ接続します。([your company name]はOneDriveの設定により適宜変更してください。)
https://[your company name]-my.sharepoint.com/_layouts/15/appregnew.aspx


・「クライアント ID」、「クライアントの秘密」は項目は「生成」ボタン押下して値を生成します。
生成された値はメモ等にコピーします。後ほどの手順で利用します。
「タイトル」、「アプリケーションドメイン」項目へ入力し、「リダイレクト」項目へは3-1.でコピーして置いた値を入力します。
各項目入力後は作成ボタンを押下します。

アプリの登録

3-3.OneDriveへの登録(その2)
・次に以下URLへ接続します。([your company name]はOneDriveの設定により適宜変更してください。)
https://[your company name]-my.sharepoint.com/_layouts/15/appinv.aspx


・「アプリケーション」項目に3-2.でコピーした、クライアント ID値を入力し、「参照」をクリックします。
画面が更新されたら、「権限要求 XML」に必要な値を入力します。(必要な値についてはSalesforceのヘルプを参照ください。)

アプリへの権限の付与

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

3-1.でプレースホルダにて作成した認証プロバイダを編集します。
「コンシューマ鍵」「コンシューマの秘密」には3-2でコピーしておいた値を設定します。
「承認エンドポイント URL」「トークンエンドポイント URL」は指定の値をOneDriveの設定値より修正し設定します。
(詳し設定内容はSalesforceのヘルプを参照ください。)
値を設定したら「保存」し、「OneDriveの認証プロバイダを作成」は完了です。

認証プロバイダの設定

4.組織の外部データソースを定義します。


4-1.外部データソースの作成
Salesforceの「設定」「アプリケーションの設定」「開発」「外部データソース」とたどり、設定画面を表示します。
「表示ラベル」「名前」には適当は値を入力します。
「種別」は"Files Connect: Microsoft OneDrive for Business"を選択し、「サイトの URL」にはOneDriveのURLを指定します。
「保存」ボタンで定義完了です。

外部データソースの編集

5.外部データをグローバル検索に含める。
ブローバル検索で外部データも検索できるように設定します。

5-1.グローバル検索結果のレイアウトの選択

[Files Connect 設定]で、「外部オブジェクト検索レイアウトを使用」をチェックします。

Files Connect 設定


5-2.外部データソースからの外部オブジェクトの作成
・[外部データソース] から、データソース名をクリックして詳細ページ表示後、「検証して同期」ボタンを押下します。
・表示されたテーブル名を選択し、「同期」 を押下してソース全体に対応付ける外部オブジェクトを作成します。画面が正しく表示されたら、「同期」ボタンで定義を同期します。

外部データソースの編集

外部データソースを検証

5-3.作成されたオブジェクトをリリース。
[外部オブジェクト]から、外部オブジェクトの「編集」を押下から「リリース済み」をクリックし「保存」 します。

外部オブジェクトを編集(リリース)


5-4.外部オブジェクト項目へのアクセス権のユーザへの付与
[権限セット]から、2.で作成した権限セットを選び、「オブジェクト設定」を行います。

権限セット  OneDrive接続(オブジェクト設定)


5-5.有効な外部データソースアクセスの設定
プロファイルの「有効な外部データソースアクセス」で、該当の外部データソースを指定して保存します。

有効な外部データソースアクセス


6.外部システムの認証設定
Salesforceの「設定」「個人設定」「私の接続済みデータ」「外部システムの認証設定」とたどり、設定画面を表示します。
「新規」ボタンから新しい認証設定を作成します。
「外部データソース」には4.で設定した値を選択します。
「認証プロバイダ」には、3-4.で設定した値を選択します。
「保存時に認証フローを開始」にチェックし、保存することで、ログインに成功するとOAuthトークンが与えられます。

外部システムの認証設定

7.上記までの設定を行ってたら、すべて完了です。

■共有の確認
設定がすべて終わりましたので、Salesforce画面上にOneDrive上のファイルが共有されるか確認してみます。

・Chatterでの共有
Chatterの画面を開くとFileのリンクの下にOneDriveのリンクが出来ており、クリックでOneDriveに作成されたファイルが表示されました。

Chatter


・カスタムタブでの共有
カスタムタブを作成し、表示してみました。ちゃんとOneDrive上のファイルが表示されています。

カスタムタブ


・グローバル検索からの検索
グローバル検索からは「すべての検索」ボタンの押下で検索できました。

グローバル検索

■最後に
ファイルが表示されるまでには設定項目が沢山あり、途中エラーでなかなか設定が進まず結構大変でした。
しかし、一度設定してしまえば、クラウド上の外部のデータソースにSalesforceから容易にアクセスできることは利用価値が大きそうです。
OneDrive For Bisinessの利用には別途費用が必要になってしまいますが、すでに利用されている会社様などでは、Salesforceでのファイルの保存容量を気にせず共有できる点は大きいのではないでしょうか。