SharePoint 外部リストから Salesforce データにアクセス



CData API Server を使用すると、ユーザーが SharePoint 上で Salesforce データにアクセスして更新できるようになります。この記事では、常に最新の状態に保たれる Salesforce データの外部リストを作成する方法を説明します。外部リストのテンプレートとして、外部コンテンツタイプを使用します。外部コンテンツタイプは Web サービス経由の接続を可能にし、API Server がこのプロトコルを使用してライブ Salesforce データへのアクセスを提供します。

Salesforce に接続する外部リストの作成は、以下の3つのステップで行います。

  1. 外部コンテンツタイプの作成
  2. 外部コンテンツタイプのインポート
  3. 外部リストの作成

この記事では、以下のタスクについても説明します。

外部コンテンツタイプの作成

外部コンテンツタイプは、SharePoint アプリから Salesforce データへのコア接続を提供するスキーマです。任意の OData クエリに対してスキーマを作成できます。$sharepoint クエリ文字列パラメータで必要なオプションを指定します。以下は .ect ファイルとしてスキーマを返すリクエストの例です。

https://my-server:8032/api.rsc/Account?$filter=Industry eq 'Floppy Disks'&$sharepoint=AuthMode:Passthrough&@authtoken=my-authtoken

外部コンテンツタイプのインポート

.ect ファイルを作成したら、以下の手順でオンプレミスの SharePoint または SharePoint Online にインポートします。

SharePoint 2013

SharePoint サーバーの全体管理ポータルに移動し、サービスアプリケーションの管理リンクをクリックします。表示されたページで、Business Data Connectivity Service をクリックします。次に、インポート -> ファイルの選択 をクリックしてダイアログで .ect ファイルを選択します。

SharePoint Online

SharePoint 管理センターで、クイック起動メニューから bcs をクリックし、BDC モデルと外部コンテンツタイプの管理をクリックします。表示されたページで、インポートをクリックします。

外部リストの作成

これで、Salesforce データにアクセスして変更できる SharePoint アプリを作成できます。

  1. SharePoint サイトに移動し、サイトコンテンツ -> アプリの追加 -> 外部リスト を選択します。
  2. 外部コンテンツタイプの選択アイコンをクリックし、前のセクションで作成した外部コンテンツタイプを選択します。
  3. 作成をクリックします。

結果の制限

SharePoint には、OData ソースの外部リストから取得できるデータ量に制限があります。外部リストはデフォルトで30件ずつのページでデータを表示します。ページサイズを変更するには、デフォルトビューの設定でアイテム数の上限プロパティを設定します。または、外部リストのデータを表示するカスタム Web パーツを作成することもできます。

SharePoint 2013 では、外部データソースへのリクエストは帯域幅スロットリング制御により制限されます。これは Set-SPBusinessDataCatalogThrottleConfig コマンドで変更できます。SharePoint Online では、外部データソースへのリクエストはサーバーリソースクォータと帯域幅スロットリング制御により制限されます。これを回避するには、データのリクエストにフィルターを適用します。

API Server では、返される行数のデフォルト上限が500件に設定されています。この制限を無効にするには、$sharepoint クエリ文字列パラメータに limit オプションを追加し、値を0に設定します。

パススルー認証の設定

外部コンテンツタイプへのアクセスにパススルー認証を使用するには、AuthMode オプションを pass-through に設定します。

Kerberos 認証を使用している場合は、これらのユーザーを API Server に追加する必要があります。Kerberos 認証を使用していない場合は、NTLM などの別の Windows 認証を使用している可能性があります。

ユーザーが NTLM 認証で認証し、SharePoint の Business Connectivity Service(BCS)でパススルー認証を使用している場合、SharePoint はデフォルトの IIS アカウントを使用して外部 Web サービスに接続します。このアカウントは通常、NT AUTHORITY\IUSR アカウントです。このユーザーに API Server へのアクセス権を付与してください。

API Server の Windows 認証を有効にする方法については、ヘルプドキュメントを参照してください。

資格情報認証の設定

以下のセクションでは、まず API Server に追加されたユーザーの資格情報を使用して SharePoint ユーザーを API Server に認証するセキュアストアターゲットアプリケーションを作成します。次に、外部コンテンツタイプを作成し、セキュアストアの資格情報で認証するように設定します。

SharePoint Online

  1. SharePoint Online 管理センターで、クイック起動バーから secure store をクリックし、新規をクリックします。
  2. ターゲットアプリケーションの設定セクションで、ターゲットアプリケーション ID、表示名、連絡先メールアドレスを入力します。
  3. 資格情報フィールドセクションで、API Server のユーザーの資格情報を追加します。
  4. ターゲットアプリケーション管理者セクションで、外部コンテンツタイプの接続設定にアクセスできる管理者を選択します。通常、SharePoint Online 管理者のアカウントをここで指定します。
  5. メンバーセクションで、Salesforce データへのアクセスを許可する SharePoint ユーザーを入力します。

ターゲットアプリケーションを作成したら、API Server ユーザーの資格情報をセキュアストアに保存します。

  1. クイック起動バーで secure store をクリックします。
  2. ターゲットアプリケーションのメニューで資格情報の設定をクリックします。
  3. API Server のユーザー名とパスワード(authtoken)を入力します。

次に、新しい接続設定オブジェクトを作成します。

  1. クイック起動バーから bcs をクリックし、オンラインサービスへの接続の管理オプションを選択します。
  2. 追加をクリックします。接続に名前を付け、OData エンドポイントの URL(https://my-server/api.rsc)を入力します。
  3. SharePoint に保存された資格情報を使用するオプションを選択します。作成したターゲットアプリケーションのアプリケーション ID を入力します。

最後に、外部コンテンツタイプを作成し、SharePoint Online にインポートして、外部リストを作成します。

  1. データをリクエストし、$sharepoint クエリ文字列パラメータで必要なオプションを指定して外部コンテンツタイプを生成します。AuthMode オプションを Credentials に設定します。ターゲットアプリケーション ID と接続設定オブジェクトの ID を指定します。例:
    https://my-server/api.rsc/Account?@authtoken=my-authtoken&$filter=Industry eq 'Floppy Disks'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionConnSettingsId:MyODataConnectionSettingsId
  2. .ect ファイルをインポートします。クイック起動バーから bcs を開き、BDC モデルと外部コンテンツタイプの管理リンクをクリックします。インポートをクリックします。
  3. これで外部リストを作成できます。

SharePoint 2013

  1. SharePoint サイトのサーバーの全体管理領域に移動し、サービスアプリケーションの管理リンクをクリックします。
  2. Secure Store Service をクリックし、新規をクリックします。
  3. アプリケーション ID、表示名、連絡先メールアドレスを入力して、新しいセキュアストアターゲットアプリケーションを設定します。ターゲットアプリケーションの種類をグループに設定します。
  4. 次のページで、ユーザーがユーザー名とパスワードを入力する際に表示するフィールド名とフィールドタイプを追加します。ユーザー名とパスワードのフィールドタイプを選択します。
  5. 次に、ターゲットアプリケーション管理者セクションで、外部コンテンツタイプの接続設定にアクセスする権限を持つ管理者を選択します。メンバーセクションで、API Server ユーザーの資格情報で接続する権限を持つ SharePoint ユーザーを入力します。

新しいセキュアストアターゲットアプリケーションを作成したら、以下の手順に従って、ターゲットアプリケーションが SharePoint ユーザーを API Server に認証する際に使用する資格情報を設定します。

  1. セキュアストアサービスアプリケーションページで、ターゲットアプリケーションへのリンクをクリックし、メニューから資格情報の設定をクリックします。
  2. 表示されるメニューで、API Server のユーザー名とパスワード(authtoken)を入力します。
  3. SharePoint 管理シェルのインスタンスを開き、新しい SharePoint 接続オブジェクトを初期化します。接続オブジェクトはサイト固有であることに注意してください。

    New-SPODataConnectionSetting -AuthenticationMode Credentials -ServiceAddressURL http://your-server/api.rsc -ServiceContext http://myspsite/ -Name MyODataConnectionId -SecureStoreTargetApplicationId your-target-application-Id

    以下の出力は、コマンドが正常に実行されたことを示しています。

資格情報認証を使用する最後のステップでは、SharePoint に公開するテーブルの外部コンテンツタイプを作成し、セキュアストアの資格情報で認証するように設定してから、SharePoint にインポートします。

  1. データをリクエストし、$sharepoint クエリ文字列パラメータで必要なオプションを指定して外部コンテンツタイプを生成します。 以下はリクエストの例です。

    http://my-server/api.rsc/Account?@authtoken=my-authtoken&$filter=Industry eq 'Floppy Disks'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionConnSettingsId:MyODataConnectionSettingsId
  2. 外部コンテンツタイプを SharePoint にインポートするには、ブラウザで SharePoint サーバーの全体管理ポータルを開き、サービスアプリケーションの管理リンクをクリックします。
  3. 表示されたページで Business Data Connectivity Service をクリックします。
  4. インポートをクリックし、ダイアログで .ect ファイルを選択します。
  5. これで外部リストを作成できます。SharePoint サイトのサイトコンテンツページで、アプリの追加ボタンをクリックし、外部コンテンツタイプを選択するアイコンをクリックします。