製品をチェック

製品の情報と30日間無償トライアル

HCL Domino 連携ソリューション 相談したい

SharePoint External Lists でHCL Domino データにアクセス

外部リストとして、HCL Domino をSharePoint ユーザーに提供します。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-07-03
domino ロゴ

CData

apiserver ロゴ画像
SharePoint ロゴ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

本記事で紹介している手法は、2023年現在ご利用いただけなくなっております。SharePoint リストへの外部データの連携については、以下の記事の方法をご確認ください。

CData Arc を使ってSQL Server のデータをSharePoint Online のリストにノーコードで連携

CData API Server およびADO.NET Provider for Domino (または他の250+ ADO.NET Providers) を組み合わせて利用することで、SharePoint でHCL Domino にアクセスすることができます。 この記事では、常に最新状態のHCL Domino を外部リクエストとして作成する方法を説明します。外部コンテンツタイプをテンプレートとして使用し、外部リストを作成します。外部コンテンツタイプは、モバイルおよびその他のオンラインアプリケーション用のリアルタイムデータストリーミングプロトコルであるOData を介した接続を可能にします。API Server は、HCL Domino フィードのOData プロデューサーです。

API Server を設定した後、HCL Domino に接続できる外部リストの作成方法は、以下の基本的な3つのステップによって構成されます。

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

この記事は、以下のタスクを実行する方法についても説明します。

API Server をセットアップ

以下のステップに従って、安全なHCL Domino OData サービスの作成を開始します。

デプロイ

API Server は独自のサーバーで実行されます。Windows では、スタンドアロンサーバーまたはIIS を使用して展開できます。Java サーブレットコンテナで、API Server WAR ファイルをドロップします。詳細とハウツーについては、ヘルプドキュメントを参照してください。

API Server は、Microsoft AzureAmazon EC2Heroku にも簡単にデプロイできます。

HCL Domino に接続

API Server とADO.NET Provider for Domino を展開した後、[Settings]->[Connections]をクリックし、API Server 管理コンソールで新しい接続を追加してHCL Domino に接続するために必要な認証値とその他の接続プロパティを指定します。

Domino 接続プロパティの取得・設定方法

接続の前に

CData 製品を経由してDomino に接続するには、「Proton コンポーネント」のインストールが必要です。通常、 Proton はAppDev パックの一部として配布されています。Proton またはAppDev パックの入手およびインストール方法については、HCL のドキュメントを参照してください。

CData 製品は匿名アクセス、またはクライアント証明書の提供によりProton を認証できます。 これらのオプションは両方ともDomino で特定の設定が必要です。

次の2セクションでは、接続に必要な事前設定について説明します。使用したい認証方法に対応するセクションを参照してください。

クライアント証明書による認証の設定

クライアント証明書による認証では、CData 製品は専用のユーザーアカウントとして接続します。このユーザーには、接続するすべてのデータベースに対するdesigner またはそれ以上のアクセス権が付与する必要があります。

また、CData 製品を使用するためにはユーザーがインターネット証明書を取得する必要があります。サーバーコンソールで以下のコマンドを実行することで、Proton にこの証明書を作成させることができます。 APPUSER はCData 製品でアクセス設定するユーザーアカウント名、ADMINISTRATOR は証明書を受け取るユーザー名です。

load proton --setupclient "APPUSER" --sendto "ADMINISTRATOR"

新しい証明書は、Notes のADMINISTRATOR メールボックスから利用できます。証明書は、クライアント証明書(clientcert)およびキー(clientkey)の2ファイルに分けて送信される場合があります。 キーファイルのテキストを証明書ファイルの末尾にコピーアンドペーストして、2つのファイルを結合する必要があります。

匿名認証の設定

匿名アクセスでは、CData 製品はAnonymous という一般的なユーザーアカウントで接続します。 接続するすべてのデータベースには、次の2つの権限が設定される必要があります。

  • Anonymous ユーザーには、designer またはそれ以上のデータベースへのアクセス権が付与される必要があります。
  • データベースは、Maximum Internet name and password オプションがdesigner またはそれ以上のアクセスに設定される必要があります。 この設定は、データベースのAccess Control List オプションのAdvanced タブにあります。

Domino への接続

接続するには以下を設定します。

  • Server:Proton サービスを使ってDomino を実行中のサーバーのIP アドレス。
  • Port:Proton サービスがリッスンしているポート番号。
  • Database:.nsf 拡張子を含むデータベースファイル名。
  • SSLServerCert:サーバーが受け入れ可能なTLS/SSL 証明書に設定。コンピュータによって信頼されていない他の証明書はすべて拒否されます。または、"*" を設定するとすべての証明書を受け入れます。

Domino への認証

CData 製品は、クライアント証明書を使用してProton に認証することも、匿名アクセスで認証することも可能です。

クライアント証明書による認証

クライアント証明書で認証するには以下を設定します。

  • AuthSchemeSSLCertificate に設定。
  • SSLClientCertType:これは、証明書ファイルの形式と一致する必要があります。 通常、.pem 証明書の場合はPEMKEY_FILE、.pfx 証明書の場合はPFXFILE のいずれかになります。
  • SSLClientCert:証明書ファイルへのパス。

匿名認証

匿名認証を使用するには、AuthSchemeAnonymous に設定します。

SharePoint はOData 3.0 データソースを消費します。[Settings]->[Server]をクリックし、[Default OData Version]メニューで[OData 3.0]を選択すると、SharePoint との互換性を得るためにAPI Server を構成できます。

次に、[Settings]->[Resources]をクリックしてAPI Server にアクセスを許可するHCL Domino エンティティを選択できます。

API Server ユーザーを承認

作成するOData サービスを決定したら、[Settings]->[Users]をクリックしてユーザーを承認します。API Server は、認証トークンベースの認証を使用して主要な認証スキームをサポートします。IP アドレスに基づいてアクセスを制限することもできます。デフォルトでは、ローカルマシンへの接続のみが制限されています。SSL を使用して、接続を認証及び暗号化することができます。

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

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

https://my-server:8032/api.rsc/ByName?$sharepoint=AuthMode:Passthrough&@authtoken=my-authtoken

簡単にするために、authtoken はクエリ文字列で渡され、.ect のリクエストを認証することに注意してください。これはデフォルトでは有効になっていないため、この方法を使用してAPI Server への認証を行う場合は、settings.cfg ファイルに次のようなエントリを追加する必要があります。

[Application] AllowAuthtokenInUrl = true

settings.cfg ファイルはデータディレクトリにあります。.NET エディションでは、データディレクトリはアプリケーションルートのapp_data サブフォルダにあります。Java エディションでは、データディレクトリの場所はオペレーティングシステムによって異なります。

  • Windows:C:\ProgramData\CData
  • Unix or Mac OS X: ~/cdata

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

.ect を作成したら、以下のステップに従って、SharePoint Online またはオンプレミスのSharePoint インストールにインポートできます。

SharePoint 2013

SharePoint サーバーの全体管理ポータルに移動し、リンクをクリックしてサービスアプリケーションを管理します。 表示されるページで[Business Data Connectivity Service]をクリックします。メニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックし、ダイアログで.ect ファイルを選択します。

SharePoint Online

SharePoint 管理センターで、クイック起動メニューから[BCS]をクリックし、[Manage BDC Models and External Content Types]をクリックします。表示されるページのメニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックます。

外部リストを作成

HCL Domino へのアクセスと変更が可能なSharePoint アプリを作成できます。

  1. SharePoint サイトに移動し、[Site Contents]->[Add an App]->[External List]と進みます。
  2. [Select External Content]をクリックします。 アイコンを入力し、前のセクションで作成した外部コンテンツタイプを選択します。
  3. [Create]をクリックします。
The external list.(Salesforce with SharePoint 2013 is shown.)

結果をリミット

SharePoint には、OData ソースの外部リストから取得できるデータの量にリミットがあります。外部リストは、デフォルトで30 項目のページに結果を表示します。ページングサイズを変更するには、デフォルトビューの設定で[Item Limit]プロパティを設定できます。もしくはカスタムWeb パーツを作成し、外部リストのデータを表示することもできます。

SharePoint 2013 では、外部データソースへの要求は、バンドのスロットルコントロールによって制限されます。これは、Set-SPBusinessDataCatalogThrottleConfig コマンドを実行します。SharePoint Online では、外部データソースへの要求がServer Resource Quota とスロットルコントロールによって制限されます。これを回避するためにデータのリクエストにフィルタを適用できます。

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

パススルー認証を構成

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

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

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

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

資格情報認証の構成

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

SharePoint Online

  1. SharePoint Online 管理センターで、クイック起動バーから[secure store]をクリックし、[New]をクリックします。
  2. [Target Application Settings]セクションで、ターゲットアプリケーションId、表示名、連絡先の電子メールを入力します。
  3. [Credential Fields]セクションで、API Server の資格情報を追加します。
  4. [Target Application Administrators]セクションで、外部コンテンツタイプの接続設定にアクセスできる管理者を選択します。[SharePoint Online]の管理者アカウントは、通常ここで指定されます。 administrator is usually specified here.
  5. [Members]セクションでHCL Domino へのアクセスを許可されているSharePoint のユーザーを入力します。 The configuration page for the new target application in SharePoint Online.(Salesforce is shown.)

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

  1. クイック起動バーで[secure store]をクリックします。
  2. ターゲットアプリケーションのメニューで[Set Credentials]をクリックします。
  3. API Server にユーザーのユーザー名とパスワードを入力します。

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

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

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

  1. データを要求し、$sharepoint クエリ文字列パラメータで必要なオプションを指定して外部コンテンツタイプを生成します。AuthMode オプションをCredentials に設定します。ターゲットアプリケーションId と接続設定オブジェクトのId を指定します。例:

    https://my-server/api.rsc/ByName?$filter=City eq 'Miami'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionSettingsId:my-odata-connection-settings-Id
  2. 結果の.ect ファイルをインポートします。クイック起動バーからBCS を開き、リンクをクリックしてBDC モデルと外部コンテンツタイプを管理します。[Import]をクリックします。
  3. 外部リストを作成できます。

SharePoint 2013

  1. SharePoint サイトの中央管理領域を参照し、リンクをクリックしてサービスアプリケーションを管理します。
  2. [Secure Store Service]をクリックし、[New]をクリックします。
  3. アプリケーションId、表示名、連絡先の電子メールを入力し、新しいセキュアストアターゲットアプリケーションを構成します。ターゲットアプリケーションタイプをGroup に設定します。 Creating a new target application in SharePoint 2013.(Salesforce is shown.)
  4. 次のページで、ユーザーがユーザー名とパスワードを入力したときに表示するフィールド名とフィールドタイプを追加します。ユーザー名とパスワードのフィールドタイプを選択します。 The type of authentication used for the API Server.
  5. 次に、[Target Application Administrators]セクションで、外部コンテンツタイプの接続設定へのアクセスを許可されている管理者を選択します。 [Members]セクションでAPI Server ユーザーの資格情報との接続を許可されているSharePoint のユーザーを入力します。 Administrators of the external content type and SharePoint users who are authorized to use the API Server.

新しいセキュアストアターゲットアプリケーションを作成したら、以下のステップに従ってSharePoint のユーザーがAPI Server にアクセスするときに提供する資格情報を設定します。

  1. ターゲットアプリケーションのメニューで[Set Credentials]をクリックします。 The first step to save credentials to the API Server in the secure store.(Salesforce is shown.)
  2. 表示されるメニューでAPI Server ユーザーのユーザー名とパスワード(authtoken) を入力します。 The credentials of a user in the API Server.(Salesforce is shown.)
  3. SharePoint 管理シェルのインスタンスを開き、新しいSharePoint 接続オブジェクトを初期化します。接続オブジェクトはサイト固有のものであることに注意してください。

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

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

    The initialized connection object.

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

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

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

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。