SharePoint Server で Business Connectivity Services ソリューションを計画する
適用対象:2016 2019 Subscription Edition SharePoint in Microsoft 365
Microsoft Business Connectivity Services ソリューションは外部データを SharePoint Server と Office に完全に統合します。 各 Business Connectivity Services ソリューションは、Visual Studio を使用したカスタムの組み込みソリューションです。 すぐに使用できる Business Connectivity Services の構成またはテンプレートはありません。
この記事では、Business Connectivity Services ソリューションを設計する前に回答する必要がある 5 つの質問について説明します。 この情報をすべて収集し、すべての主要な利害関係者に伝えてレビューと承認を行ってください。 これを行うと、関係者全員がプロジェクトのニーズとソリューションのしくみについて同じ理解を持つようになります。
データはどこにありますか?
Business Connectivity Services ソリューションの計画の第一歩は、必要な外部データの場所を把握することです。 データの場所は、次の 3 つの観点から把握する必要があります。
外部データ ソースに対して管理責任を持つユーザーを把握する必要があります。 これは、外部データへの接続を設定するために使用する必要があるグループです。 データを外部で使用できるようにする方法、セキュリティで保護されている方法などを伝えることができます。 管理責任者に、外部システムで使用する資格情報の作成を依頼する必要がある可能性があります。 Business Connectivity Services ソリューションが管理責任者のデータおよび外部システムに与える影響についての質問に答える準備をしておきます。
ネットワークに関する考慮事項
Business Connectivity Services とユーザーが接続するネットワークに関して、外部データ ソースの場所を検討する必要もあります。 外部データ ソースの場所をわかりやすくするために、ネットワーク上の 3 つのコンポーネントの図を描き、コンポーネントの位置を理解します。 たとえば、それらがすべて内部ネットワーク上にあるか、ファイアウォール内にあるかを確認できます。 あるいは、Business Connectivity Services インフラストラクチャと外部データ ソースがファイアウォールまたは境界ネットワークで分離されていることや、コンポーネントが完全に分離されたネットワーク上に存在していることを確認できます。 設計の手引きとして使用できる、いくつかの基本的なルールがあります。
外部データ ソースがインターネット上など、ネットワーク外にある場合は、Business Connectivity Services は企業ファイアウォールを介して外部データ ソースと通信する必要があり、ユーザーはそのトラフィックを計画する必要があります。
ユーザーがどこから Business Connectivity Services ソリューションにアクセスするかを調べます。 クライアントと Business Connectivity Services ソリューション間のデータ通信を暗号化する必要があるかどうか、また基本となるネットワーク インフラストラクチャが追加負荷をサポートできるかどうかを検討する必要があります。 またブラウザーと Office クライアントが、ソリューションが提供する機能をサポートすることを確認します。
データの公開方法
Business Connectivity Services ソリューションは、OData、SQL Server、Windows Communication Foundation (WCF) サービス、および .NET アセンブリを介して外部データ ソースに接続できます。 外部で利用するためのデータの公開方法を知る必要があります (外部システム管理者に尋ねることもできます)。 外部データの表示方法によって、外部コンテンツ タイプの作成に使用する開発ツールが決まります。 以下の表は、外部データ ソースに基づいて使用するツールを示しています。
データのセキュリティを確保する方法
Business Connectivity Services は、自身と外部システム間の通信の認証をすべて処理します。 基本的に、Business Connectivity Services は外部システムに対して、要求を認証し (自分が誰であるかを判断して)、外部システム内のデータへのアクセスを承認できるようにする情報を提供します。 Business Connectivity Services では、多くの種類の認証をサポートします。
Business Connectivity Services ソリューションの設計では、外部システムが要求する認証メカニズムを知る必要があります。 これにより、Business Connectivity Services を構成して、外部システムで必要な方法で認証情報が表示されるようにする方法について説明します。 Business Connectivity Services では、3 つの認証モデルをサポートしています。
資格情報ベースの認証 資格情報ベースの認証モデルでは、資格情報は Business Connectivity Services から外部システムに渡されます。 資格情報は、ユーザー名と何らかの形式のパスワードの組み合わせです。 Business Connectivity Services には、ログオンしているユーザーの資格情報の渡し、要求を行っているサービスの資格情報の渡し、ログオンしているユーザーの資格情報を外部システムが認識する別の資格情報セットへのマッピングなど、さまざまな方法があります。
要求ベースの認証 一部の認証シナリオでは、外部システムは Business Connectivity Services から直接資格情報を受け入れません。 ただし、外部システムは、信頼するサード パーティの認証サービスから受け入れます。 サード パーティ認証サービス (セキュリティ トークン プロバイダー) は、要求者に関する情報 (アサーションと呼ばれます) のグループ化を受け入れます。 グループ化全体は要求と呼ばれ、要求にはユーザー名とパスワードだけでなく、要求者に関する詳細情報を含めることができます。 たとえば、要求元の電子メール アドレスや、要求元が属するセキュリティ グループなど、要求元に関するメタデータを要求者に含めることができます。 サード パーティの認証サービスは、要求のアサーションに基づいて要求元の認証を実行し、要求元が使用するセキュリティ トークンを作成します。 その後、リクエスタ (Business Connectivity Services) は外部システムにセキュリティ トークンを提示し、外部システムは、要求者がアクセスを承認されたデータを確認します。
カスタム認証 使用している外部システムが資格情報ベースまたは要求ベースの認証をサポートしていない場合は、Business Connectivity Services が生成できる資格情報を受け取り、外部システムが受け入れる形式に変換するカスタム ソリューションを開発、テスト、実装する必要があります。 OAuth またはカスタム ASP.NET HTTP モジュールのどちらかでセキュリティが確保されている社内の OData データ ソースに対して、カスタム認証ソリューションを実装できます。
データの利用方法
要件の収集の一環として、ソリューションで実現することやユーザーとソリューションがやり取りする方法を関係者から聞き出す必要があります。 ユーザーが外部リスト、外部 Web パーツ、Office アプリを介して SharePoint Server のデータを操作する必要がある場合があります。 または、Office アプリと SharePoint アプリケーションを介してデータを表示するためのソリューションが必要になる場合があります。 Office および SharePoint 用アプリの詳細については、「 (OLD) SharePoint 2016 用アプリの概要」を参照してください。 またソリューションでは、外部データに対するブラウザー アクセス、クライアント アクセス、およびアプリケーション アクセスの別の組み合わせが必要になる場合があります。
ユーザーがデータにアクセスする方法は、Business Connectivity Services が外部データへのアクセスに使用する外部コンテンツ タイプのスコープを設定する方法に影響します。 Business Connectivity Services ソリューションで Office および SharePoint 用アプリ アプリケーションが必要な場合、外部コンテンツ タイプはそのアプリケーションを対象範囲とする必要があります。 Business Connectivity Services ソリューションが Office および SharePoint 用アプリを使用して外部データにアクセスしない場合は、外部コンテンツ タイプのスコープを Business Data Connectivity サービス アプリケーションに設定する必要があります。
Business Connectivity Services を対象範囲とする外部コンテンツ タイプは、BDC Metadata Store に一元的に格納され、ファーム管理者がそのセキュリティを管理します。 これらの外部コンテンツ タイプは複数の Business Connectivity Services Web アプリケーションと共有できます。
Office および SharePoint 用アプリを対象範囲とする外部コンテンツ タイプは、Office および SharePoint 用アプリ自体に XML ファイルとして格納されます。 この外部コンテンツ タイプは、他の Office および SharePoint 用アプリが使用することはできません。
接続設定オブジェクトは OData データ ソースでのみ使用できます。 このオブジェクトには、外部データを公開するサービスのサービス アドレス、使用する認証タイプ、インターネット URL、必要な資格情報の名前などの接続情報が含まれます。 接続設定情報オブジェクトは、外部コンテンツ タイプとは別のオブジェクトです。 Business Connectivity Services ソリューションが外部システムに接続する必要がある場合に、接続設定オブジェクト内の情報を使用します。 外部コンテンツ タイプの開発者が、外部コンテンツ タイプの作成時に必要な接続情報を知らなかったり、必要な接続情報にアクセスできなかったりする場合は、通常、外部コンテンツ タイプとは別に接続情報を定義します。 アプリケーションを対象範囲とする外部コンテンツ タイプとサービスを対象範囲とする外部コンテンツ タイプのどちらも、接続設定オブジェクトを使用できます。 接続設定オブジェクトは複数の Business Connectivity Services ソリューションで使用できます。 各ソリューションに、接続設定オブジェクトを使用するアクセス許可が付与されている必要があります。
アクセス許可をソリューションに割り当てる方法
すべての Business Connectivity Services ソリューションで、誰がどのオブジェクトにどのようなアクセス許可を持つかを計画する必要があります。 つまり適切な方法で、該当するユーザーに対して、ソリューションへのアクセスを制限および許可する方法を計画します。 アクセス許可を構成するには、外部システム管理者と SharePoint Server ファーム管理者、サイト コレクション管理者、およびサイト管理者と連携する必要があります。 ここでは、計画時に考慮すべきことを最も基本的なレベルで説明します。
すべての Business Connectivity Services ソリューションに関連する 3 つの基本的な役割があります。
管理者の役割 この役割が担うのは、外部システムにおけるアクセス許可の管理、Business Data Connectivity Service アプリケーションの作成と管理、Business Data Connectivity (BDC) モデルの BDC Metadata Store へのインポート、BDC Metadata Store とその中の全オブジェクトに対するアクセス許可の管理です。 SharePoint 用アプリケーションが Business Connectivity Services を使用している場合は、SharePoint Server ファーム管理者は、アプリケーションの公開と、接続オブジェクトの作成および管理も行います。 一般的に、このようなタスクは、SharePoint Server ファーム管理者であるユーザー、外部システムの管理者であるユーザー、管理権限を委任されたユーザーが実行します。
開発者または設計者の役割 これらの役割が担うのは、Business Connectivity Services を使用する外部コンテンツ タイプ、BDC モデル、および SharePoint 用アプリケーションの作成です。 この役割では、主に、ソリューションに対するビジネスニーズをすべて理解する必要があります。
ユーザーの役割 これらの役割のユーザーは、Business Connectivity Services ソリューションの外部データを使用して操作します。 ソリューションには複数のユーザーの役割が存在する場合があり、それぞれ異なるレベルのアクセス許可を持っています。 たとえば、外部情報をソリューションに統合するために Business Connectivity Services を使用するサポートチケット システム シナリオの場合、第 1 層 のヘルプ デスク技術者はチケットを読み取り、チケットのワークフローを開始できるだけですが、第 2 層 と第 3 層の技術者はチケットを更新することができます。
また、アクセス許可を管理するすべての Business Connectivity Services ソリューションには、次の 4 つの主要な側面があります。
外部システム すべての外部システムには、認証と承認を実行するための方法があります。 外部システムの管理者と連携して、最小限の特権を与えるという原則に従って、ソリューション ユーザーにアクセス許可を付与する方法を特定する必要があります。 一般に、Business Connectivity Services 側のユーザーのグループを外部システム側の 1 つのアカウントにマップし、単一の外部システム アカウントを使用してアクセスを制限します。 別の方法では、各システムの個々のアカウント間で 1 対 1 のマッピングを実行します。 どちらの場合も、外部システムがユーザーが SharePoint Server に対して認証する資格情報を直接受け入れることができる場合を除き、 Secure Store Service を使用する必要があります。 Business Connectivity Services がサポートする認証モデルの詳細情報については、「 Business Connectivity Services のセキュリティの概要 (SharePoint Server 2010)」をご覧ください。
Business Connectivity Services の主要インフラストラクチャ サーバーの全体管理 では、BDC Metadata Store に対するアクセス許可の割り当てを管理します。 BDC Metadata Store では、BDC モデル、外部システム、および外部コンテンツ タイプを管理します。 外部コンテンツ タイプに対する実行のアクセス許可を Business Connectivity Services ソリューションを使用するすべてのユーザーに割り当てる必要があります。 以下の表で、可能な操作、アクセス許可、および対象の詳細なマッピングを示します。
BDC Metadata Store モデルの定義、外部コンテンツ タイプ、外部システム定義を格納する SQL Server データベース。
表: BDC Metadata Store に対するアクセス許可のマッピング
ユーザーまたはグループを許可するには... | 次のアクセス許可を付与します。.. | オン。。。 |
---|---|---|
伝達により、BDC Metadata Store に格納されているオブジェクトにアクセス許可を設定する | SetPermissions | BDC Metadata Store |
モデル モデルは、1 つ以上の外部コンテンツ タイプ、関連する外部システム、および環境に固有の情報 (認証プロパティなど) の説明のセットを含む XML ファイルです。
表: モデルに対するアクセス許可のマッピング
ユーザーまたはグループを許可するには... | 次のアクセス許可を付与します。.. | オン。。。 |
---|---|---|
新しいモデルを作成する | 編集 | BDC Metadata Store |
モデルを編集する | 編集 | モデル |
モデルにアクセス許可を設定する | SetPermissions | モデル |
モデルをインポートする | 編集 | BDC Metadata Store |
モデルをエクスポートする | 編集 | モデルとモデル内のすべての外部システム |
BDC メタデータ ストアの外部システム 外部システムは、データベース、Web サービス、.NET 接続アセンブリなど、モデル化できるサポートされているデータ ソースのメタデータ定義です。
表: BDC Metadata Store 内の外部システムに対するアクセス許可のマッピング
ユーザーまたはグループを許可するには... | 次のアクセス許可を付与します。.. | オン。。。 |
---|---|---|
新しい外部システムを作成する | 編集 | BDC Metadata Store |
外部システムを編集する | 編集 | 外部システム オブジェクト |
外部システムに対するアクセス許可を設定する | SetPermissions | 外部システム オブジェクト |
外部コンテンツ タイプ 外部コンテンツ タイプは、1 つ以上の外部システムからのデータセット、そのデータで使用できる操作、そのデータに関連する接続情報を定義するメタデータの再利用可能なコレクションです。
表: 外部コンテンツ タイプに対するアクセス許可のマッピング
ユーザーまたはグループを ... に許可するには | 次のアクセス許可 ... を付与します。 | オン。。。 |
---|---|---|
新しい外部コンテンツ タイプを作成する | 編集 | 外部システム |
外部コンテンツ タイプに対して操作を実行する | 実行 | 外部コンテンツ タイプ (操作のメソッド インスタンス) |
外部コンテンツ タイプのリストを作成する | クライアントで選択可能 | 外部コンテンツ タイプ |
外部コンテンツ タイプに対するアクセス許可を設定する | SetPermissions | 外部コンテンツ タイプ |
メソッド Business Data Connectivity メソッドは、Business Connectivity Services が外部データ ソースと対話する方法の XML 定義です。
表: メソッドに対するアクセス許可のマッピング
ユーザーまたはグループを ... に許可するには | 次のアクセス許可 ... を付与します。 | オン。。。 |
---|---|---|
メソッドを編集する | 編集 | メソッド |
メソッドにアクセス許可を設定する | SetPermissions | メソッド |
メソッド インスタンス メソッド インスタンスは、特定のメソッドについて、特定の既定値のセットを使用してメソッドを使用する方法を示します。
表: メソッド インスタンスに対するアクセス許可のマッピング
ユーザーまたはグループを許可するには... | 次のアクセス許可を付与します。.. | オン。。。 |
---|---|---|
メソッド インスタンスを編集する | 編集 | メソッド インスタンス |
メソッド インスタンスを実行する | 実行 | メソッド インスタンス |
メソッド インスタンスにアクセス許可を設定する | SetPermissions | メソッド インスタンス |
開発環境 外部コンテンツ タイプや SharePoint および接続設定オブジェクト用のアプリなど、Business Connectivity Services ソリューションを開発する場合は、運用環境とは別の開発環境を使用することをお勧めします。 開発環境では、運用環境で通常使用するよりも高いレベルのアクセス許可を開発者に付与することができます。
ユーザー環境 すべての外部データには、外部リスト、外部データ列、ビジネス データ Web パーツ、SharePoint 用アプリケーション、または Office を介してアクセスできます。 SharePoint 用アプリケーションでは、Office および SharePoint 用アプリに強制的にアクセス許可を設定することができます。 この場合、Office および SharePoint 用アプリにアクセスできるユーザーは、Office および SharePoint 用アプリで公開されているすべての外部データにもアクセスできます。 サイトとサイト コレクションの管理者と連携して、ソリューション内の外部データに対するアクセス許可を計画して実装する必要があります。