Salesforce Files ConnectでOne Driveとファイル共有してみた。(修正版)

はじめに

以前の私のブログで「Salesforce Files ConnectでOne Driveとファイル共有してみた。」と題して、SalesforceのFiles Connect機能により、MicrosoftのOneDriveに接続してファイルを共有できるように設定して触ってみる記事を書きました。
その後しばらく時間が経ってから、社内外の方から「書いてある通りに設定しようとしたけどうまく行かない」との指摘を頂くようになり、私の方でも確認してみましたが確かにうまく設定できませんでした。
当時は確かに設定がうまく出来たのですが、どうやらその後に設定方法や内容が少し変わってしまったようです。
そこで今回は記事の修正版ということで、現時点で設定できる内容を書きました。
※このブログに記した内容は2017年5月時点で設定した内容であり、また、正確でない可能性がありますのでご承知ください。

必要なライセンス

・Salesforce
ヘルプを見ると、Salesforce Classic および Lightning Experience の両方で、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Editionとなっています。
今回の評価にはDeveloper Editionを利用しました。また設定ではClassic画面で記載しています。

また、以前は社内のオンプレミス環境で構築された外部データソース向けにFiles Connect を使用可能にする有料ライセンスがありましたが、2016年12月末に販売停止になりました。
しかし、クラウドサービス向け(OneDriveやGoogleドライブ、Boxなど)のFiles Connect は無料で引き続き利用頂けるようです。

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

設定

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

1.Files Connect の有効化と設定

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

Files Connect の有効化と設定

2.OneDriveへのユーザ及びシステム管理のアクセス許可設定

有効化が済んだら、次はSalesforceユーザとシステム管理者へのOneDriveへのアクセス権限を許可します。
権限の設定はプロファイルと権限セットで設定できます。権限セットで設定することで複数ユーザへの権限付与が容易になります。
今回は権限セットを作成して設定しました。
[設定] | [ユーザの管理] | [権限セット] とたどり、[新規] ボタンから作成します。
[表示ラベル]、[API参照名]を設定し[保存]します。その後[システム権限]リンクをクリックし、「Files Connect(クラウド)」にチェックします。
権限セットの作成後は、「割当の管理」ボタンから作成した権限セットを自分や他ユーザに付与します。

2.OneDriveへのユーザ及びシステム管理のアクセス許可設定-1.png

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

認証プロバイダの作成では大きく以下の3つの手順があります。
・認証プロバイダの作成
・OneDriveへの登録
・認証プロバイダの編集

3-1.プレースホルダを使用したOneDriveの認証プロバイダを作成します。

[設定][セキュリティのコントロール][認証プロバイダ]とたどり、[新規]ボタンでプロバイダを作成します。
プロバイダタイプは「Microsoftアクセスコントロールサービス」を選びます。
次の設定画面で「名前」と「URL接頭辞項目」は決定する必要がありますが、以下4つの項目にプレースホルダ値(仮の値)を設定し保存します。
・コンシューマ鍵
・コンシューマの秘密
・承認エンドポイント(httpsで始まるURLでプレースホルダ値)
・トークンエンドポイント(httpsで始まるURLでプレースホルダ値)
保存したら、詳細画面に遷移しますので、画面下部の「コールバック URL」をメモ等にコピーします。次の手順3-2.でこの値を利用します。
3-1.プレースホルダを使用したOneDriveの認証プロバイダを作成します。1.png

3-2.OneDriveへの登録(その1)

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

・「クライアント ID」、「クライアントの秘密」は項目は「生成」ボタン押下して値を生成します。
生成された「クライアント ID」、「クライアントの秘密」の値はメモ等にコピーします。後ほどの手順3-4.で利用します。
・「タイトル」は任意の値を設定します。
・「アプリケーションドメイン」項目へは対象のSalesforceの組織のインスタンスURLを入力します。(ap5.salesforce.comなどです)
・「リダイレクト」項目へは3-1.でコピーしておいたコールバックURL値を入力します。各項目入力後は作成ボタンを押下します。
3-2.OneDriveへの登録(その1).png

3-3.OneDriveへの登録(その2)

・次に以下URLへ接続します。([your company name]はOneDriveの設定により適宜変更してください。)
  https://[your company name]-my.sharepoint.com/_layouts/15/appinv.aspx
・「アプリID」項目に3-2.でコピーしておいた「クライアント ID」値を入力し、[参照]をクリックします。

画面が更新されたら、「権限の要求 XML」に以下の値を入力し[作成]をクリックします。

<AppPermissionRequests>
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="Write"/>
<AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read"/>
</AppPermissionRequests>

・確認メッセージの画面が表示されたら、[信頼する]をクリックします。
3-3.OneDriveへの登録(その2).png

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

3-1.でプレースホルダにて作成した認証プロバイダを編集します。
・「コンシューマ鍵」には3-2でコピーしておいた「クライアントID」値を設定します。
・「コンシューマの秘密」には3-2でコピーしておいた「クライアントの秘密」値を設定します。
・「承認エンドポイント URL」は以下を設定([your company name]はOneDriveの設定により適宜変更してください。)
  https://[your company name]-my.sharepoint.com/_layouts/15/OauthAuthorize.aspx
・「トークンエンドポイント URL」は指定の値をOneDriveの設定値より修正し設定します。([your company name]はOneDriveの設定により適宜変更してください。)
  https://accounts.accesscontrol.windows.net/[your company name].onmicrosoft.com/tokens/OAuth/2?resource=00000003-0000-0ff1-ce00-000000000000/[your company name]-my.sharepoint.com@[your company name].onmicrosoft.com
値を設定したら「保存」し「OneDriveの認証プロバイダを作成」は完了です。
3-4.認証プロバイダの編集.png

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

[設定][開発][外部データソース]とたどり設定画面を表示します。
・「外部データソース」「名前」項目には適当な値を入力します。
・「種別」は"Files Connect: Microsoft OneDrive for Business"を選択します。
・「サイトの URL」にはOneDriveのURLを指定します。([your company name]はOneDriveの設定により適宜変更してください。)
  https://[your company name]-my.sharepoint.com
・「認証プロバイダ」には、3-1.で作成したプロバイダを選択します。
・「保存時に認証フローを開始」はチェックします。
「保存」ボタンで保存します。
確認メッセージの画面が表示されたら、[信頼する]をクリックします。
4-1.外部データソースの作成.png

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

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

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

[Files Connect 設定]で、「外部オブジェクト検索レイアウトを使用」をチェックします。
5-1.グローバル検索結果のレイアウトの選択.png

5-2.外部データソースからの外部オブジェクトの作成

・4-1で作成した、データソース名をクリックして詳細ページ表示後、「検証して同期」ボタンを押下します。
5-2.外部データソースからの外部オブジェクトの作成1.png


・表示されたテーブル名の[選択]をチェックし、「同期」ボタン を押下してソース全体に対応付ける外部オブジェクトを作成します。
5-2.外部データソースからの外部オブジェクトの作成2.png

5-2.外部データソースからの外部オブジェクトの作成3.png

5-3.作成されたオブジェクトをリリース。

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


5-4.外部オブジェクトと各項目へのアクセス権の設定

[権限セット]から、2.で作成した権限セットを選び、作成されたオブジェクトを選択し、オブジェクトと項目の権限を設定します。
5-4.外部オブジェクトと各項目へのアクセス権の設定.png


5-5.有効な外部データソースアクセスの設定

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


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

共有の確認

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

・Chatterでの共有

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


またChatterのフィードに、OneDriveにあるファイルを添付することが出来ます。
99.Chatterのフィードに添付.png


・カスタムタブでの共有

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


・グローバル検索からの検索

グローバル検索でもちゃんと検索されました。
99.グローバル検索からの検索.png

最後に

企業でのファイル管理も、最近ではオンプレのサーバシステムからクラウドサービスへの切り替えが多くなって来ていると感じます。
クラウドサービスであれば、Salesforceとの親和性も良く、プログラミングすること無く設定を行うだけで、しかも、無料で連携共有することが可能となっています。
ぜひ、有効活用して頂きたいと思います。それにこの記事がお手伝いできれば幸いです。