Business Connectivity Services のセキュリティの概要 (SharePoint Foundation 2010)

 

適用先: SharePoint Foundation 2010

ここでは、Microsoft Business Connectivity Servicesのサーバーとクライアントのセキュリティ アーキテクチャ、サポートされるセキュリティ環境、外部コンテンツ タイプを外部システムに接続するために利用可能な認証モード、格納されているオブジェクトで利用可能な認証オプション、および Microsoft Business Connectivity Servicesのセキュリティを構成するための一般的な手法について説明します。

この記事の内容

  • この記事について

  • Business Connectivity Services のセキュリティ アーキテクチャ

  • Business Connectivity Services の認証の概要

  • Business Connectivity Service のアクセス許可の概要

  • Business Connectivity Services のセキュリティ保護

この記事について

Microsoft Business Connectivity Servicesには、外部システムにアクセスするユーザーを認証する機能と、外部システムからのデータに対するアクセス許可を設定する機能が搭載されています。Microsoft Business Connectivity Servicesは柔軟性が高く、サポートされる Microsoft Office 2010 アプリケーション内および Web ブラウザーからのさまざまなセキュリティ方式に適応できます。

Business Connectivity Services のセキュリティ アーキテクチャ

ここでは、Microsoft Business Connectivity Servicesのセキュリティ アーキテクチャについて説明します。

セキュリティ メモSecurity Note
クライアント コンピューターとフロントエンド サーバー間のすべてのチャネルでは Secure Sockets Layer (SSL) を使用することをお勧めします。また、Microsoft SharePoint Foundation 2010 を実行するサーバーと外部システムとの間では SSL または Internet Protocol Security (IPSec) を使用することもお勧めします。例外として、SOAP 1.1 プロトコルを使用してメッセージを外部システムに転送するときや、SQL Server データベースに接続するときは、SSL を使用できません。ただしこのような場合は、IPSec を使用してデータ交換を保護できます。

外部データにアクセスする

ユーザーが Web ブラウザーから外部データにアクセスするときには、ログオンしたユーザーのクライアント コンピューター、Web サーバー ファーム、および外部システムの 3 つのシステムが関係します。

BCS のセキュリティ アーキテクチャ (Web ブラウザーから)

  1. 通常、ユーザーが Web ブラウザーから外部データにアクセスする場合は、外部リスト内で操作するか Web パーツを使用します。

  2. フロントエンド サーバー上の BDC Server Runtime は、Business Data Connectivity Serviceからのデータを使用して、外部システムに接続し、外部システム上で処理を実行します。

  3. Secure Store Service が、外部システムの資格情報セットを安全に保管し、資格情報セットを個人の ID またはグループ ID に関連付けます。

    重要

    Secure Store Service は SharePoint Foundation 2010 には組み込まれていません。SharePoint Foundation 2010 に Secure Store が必要な場合は、カスタムの Secure Store プロバイダーを提供する必要があります。

  4. Security Token Service は、認証要求に応答し、ユーザー アカウント情報に基づく ID 要求で構成されたセキュリティ トークンを発行する Web サービスです。

  5. Microsoft Business Connectivity Services は、要求ベースの認証を使用するように構成されているデータベースと Web サービスに資格情報を渡すことができます。要求ベースの認証の概要については、「認証方法を計画する (SharePoint Foundation 2010)」を参照してください。

Business Connectivity Services の認証の概要

Microsoft Business Connectivity Servicesは、次のような方法を使用して外部システムに認証要求を渡すように構成できます。

  • 資格情報 これらは一般に、名前/パスワードの形式です。一部の外部システムでは、暗証番号 (PIN) の値など、追加の資格情報が要求される場合もあります。

  • 要求 Security Assertion Markup Language (SAML) チケットを、外部データを供給する、要求に対応するサービスに渡すことができます。

Business Connectivity Services の認証資格情報を設定する

Microsoft Business Connectivity Servicesは、ユーザーが外部データの認証要求で指定する資格情報を使用できます。ユーザーが外部データにアクセスするために資格情報を指定する方法としては、次のものがサポートされています。

  • Windows 認証:

    • Windows チャレンジ/レスポンス (NTLM)

    • Microsoft ネゴシエート

  • Windows 以外の認証

    • フォーム ベース

    • ダイジェスト

    • 基本

資格情報を渡すように Microsoft Business Connectivity Services を構成するとき、ソリューションの設計者は、認証モード情報を外部コンテンツ タイプに追加します。認証モードは、ユーザーから受信した認証要求を処理し、外部コンテンツ システムに渡すことができる資格情報セットにその要求をマッピングする方法についての情報を Microsoft Business Connectivity Services に与えます。たとえば、ユーザーの資格情報を外部データ システムに直接、そのまま渡すことを認証モードで指定できます。または、Secure Store Service に格納されたアカウントにユーザーの資格情報をマッピングしてから、外部システムに渡すことを指定できます。

次の方法で、認証モードを外部コンテンツ タイプに関連付けます。

  • Microsoft SharePoint Designer で外部コンテンツ タイプを作成する場合。

  • 外部システムが Web サービスの場合は、Microsoft Business Connectivity Servicesの管理ページを使用して、認証モードを指定できます。

  • 外部コンテンツ タイプを定義する .XML ファイルを直接編集することで、認証モードを指定できます。

次の表で、Microsoft Business Connectivity Servicesの認証モードを説明します。

認証モード 説明

PassThrough

ログオンしたユーザーの資格情報を外部システムに渡します。外部システムがユーザーの資格情報を認識している必要があります。

注意

Web アプリケーションが Windows 資格情報を使用して認証するように構成されていない場合は、ユーザーの資格情報ではなく、NT 権限/匿名ログオン アカウントが外部システムに渡されます。

Microsoft Business Connectivity Services の管理ページと SharePoint Designer 2010 では、このモードはユーザーの ID と呼ばれます。

RevertToSelf

ユーザーが Web ブラウザーで外部データにアクセスするときには、このモードはユーザーの資格情報を無視し、Web サーバー上で BCS ランタイムを実行しているアプリケーション プール ID アカウントが外部システムに送信されます。Office クライアント アプリケーション上で実行されている Microsoft Business Connectivity Services は、ユーザーの資格情報に基づいて実行されているので、ユーザーがクライアントから外部データにアクセスするときには、このモードは PassThrough モードと同等です。

Microsoft Business Connectivity Services の管理ページと SharePoint Designer 2010 では、このモードは BDC ID と呼ばれます。

注意

既定では、RevertToSelf モードは有効になっていません。RevertToSelf を使用するモデルの作成やインポートを行う場合は、Windows PowerShell を使用して RevertToSelf モードを有効にする必要があります。詳細については、「RevertToSelf 認証モード」を参照してください。RevertToSelf モードは、ホストされた環境ではサポートされません。

WindowsCredentials

外部 Web サービスまたは外部データベースに対して、Secure Store Service を使用して、外部システム上の Windows 資格情報セットにユーザーの資格情報を割り当てます。

Microsoft Business Connectivity Services の管理ページと SharePoint Designer 2010 では、このモードは偽装した Windows ID と呼ばれます。

Credentials

外部 Web サービスに対して、Secure Store Service を使用して、Windows 以外のソースから供給されて外部データへのアクセスに使用される資格情報セットに、ユーザーの資格情報を割り当てます。このモードを使用する場合、Web サービスは基本認証またはダイジェスト認証を使用する必要があります。

重要

このモードでセキュリティを保持するためには、Microsoft Business Connectivity Servicesと外部システムとの接続を、SSL (Secure Sockets Layer) またはインターネット プロトコル セキュリティ (IPSec) を使用してセキュリティ保護することをお勧めします。

Microsoft Business Connectivity Services の管理ページと Office SharePoint Designer では、このモードは偽装した カスタム ID と呼ばれます。

RDBCredentials

外部データベースを対象とするこのモードでは、Secure Store Service を使用して、Windows 以外のソースによって提供される資格情報のセットにユーザーの資格情報をマッピングします。このモードでセキュリティを確保するためには、SSL (Secure Sockets Layer) または IPSec を使用して、Microsoft Business Connectivity Services と外部システムの間の接続をセキュリティで保護することをお勧めします。

Microsoft Business Connectivity Services の管理ページと Office SharePoint Designer では、このモードは偽装したカスタム ID と呼ばれます。

DigestCredentials

WCF Web サービスを対象とするこのモードでは、Secure Store Service を使用して、ダイジェスト認証を使用する資格情報のセットにユーザーの資格情報をマッピングします。

Microsoft Business Connectivity Services の管理ページと SharePoint Designer 2010 では、このモードはカスタム ID を利用 - ダイジェストと呼ばれます。

次の図に、資格情報を使用したときの Microsoft Business Connectivity Servicesの認証モードを示します。

Business Connectivity Services の認証

  • PassThrough (ユーザー ID) モード (A) では、ログオンしたユーザーの資格情報が外部システムに直接渡されます。

  • RevertToSelf (BDC ID) モード (B) では、ユーザーのログオン資格情報が Microsoft Business Connectivity Services を実行している処理アカウントの資格情報で置き換えられて、外部システムに渡されます。

  • WindowsCredentials (偽装した Windows ID)、RdbCredentials (偽装したカスタム ID)、および Credentials の 3 つのモードでは、Secure Store Service を使用します。これらのモードでは、ユーザーの資格情報は外部システムに対する資格情報のセットにマッピングされ、Microsoft Business Connectivity Services はマッピングされた資格情報を外部システムに渡します。ソリューションの管理者は、各ユーザーの資格情報を外部システム上の一意のアカウントにマッピングできます。または、認証されたユーザーの集合を単一のグループ アカウントにマッピングできます。

Business Connectivity Services の要求ベース認証を設定する

Microsoft Business Connectivity Services では、受信したセキュリティ トークンに基づいて外部データへのアクセスを提供できます。また、セキュリティ トークンを外部システムに渡すことができます。セキュリティ トークンはユーザーについての ID 要求のセットで構成され、セキュリティ トークンを使用した認証のことを "要求ベースの認証" と呼びます。SharePoint Foundation には、セキュリティ トークンを発行する Security Token Service が含まれています。

要求ベースの認証で、Security Token Service と Secure Store Service が連携するしくみを次の図に示します。

BCS での要求の認証

  1. ユーザーは、要求の認証用に構成された外部リストでの操作を試みます。

  2. クライアント アプリケーションは、Security Token Service からのセキュリティ トークンを要求します。

  3. ユーザーの ID の要求に基づいて、Security Token Service は要求のセットとターゲット アプリケーション ID が含まれるセキュリティ トークンを発行します。Security Token Service は、クライアント アプリケーションにセキュリティ トークンを返します。

  4. クライアントは、セキュリティ保護されたストア サービスにセキュリティ トークンを渡します。

  5. Security Token Service は、セキュリティ トークンを評価し、ターゲット アプリケーション ID を使用して、外部システムに適用される資格情報セットを返します。

  6. クライアントは、外部データの取得、更新などの処理を実行できるようにするために、この資格情報を受信し、外部システムへ渡します。

Business Connectivity Services のアクセス許可の概要

Microsoft Business Connectivity Services のアクセス許可により、個々のアカウント、グループ アカウント、または要求には、メタデータ ストア内のオブジェクトに対する 1 つ以上アクセス許可レベルが関連付けられます。Microsoft Business Connectivity Services でオブジェクトに対するアクセス許可を正しく設定することで、ソリューションに外部データを安全に統合できます。アクセス許可の戦略を計画するときには、必須タスクの実行に必要となる最小限の権限が資格情報によって与えられるように、ユーザーまたはグループごとに必要となる特定のアクセス許可を与えることをお勧めします。

警告

Microsoft Business Connectivity Servicesでアクセス許可を正しく設定することは、全体的なセキュリティ戦略における 1 つの要素です。同様に、外部システムのデータをセキュリティ保護することも重要です。その方法は、セキュリティ モデルと外部システムの機能によって異なりますが、ここでは説明しません。

注意

Business Connectivity Services では、メタデータ オブジェクトに対するアクセス許可と外部システムに対するアクセス許可を使用して、承認規則を決定します。たとえば、セキュリティ トリマーでは、外部データがユーザーの検索結果に表示されないようにすることができます。ただし、ユーザーがトリミングされた外部データへの URL を何らかの形で検出する場合は、メタデータ オブジェクトと外部システムに対する必要なアクセス許可があれば、外部データにアクセスできます。ユーザーによる外部データへのアクセスを回避するための正しい方法は、Business Connectivity Services と外部システムの両方で適切なアクセス許可を設定することです。

アクセス許可として設定できるもの

Business Data Connectivity Serviceの各インスタンス (ホスティングの場合は各パーティション) には、保管のために定義されたすべてのモデル、外部システム、外部コンテンツ タイプ、メソッド、およびメソッド インスタンスを格納するメタデータ ストアが含まれます。これらのオブジェクトは、次の図で示されるように階層化されています。

メタデータ ストアの階層

注意

この階層図で、かっこで囲まれたラベルは、Microsoft Business Connectivity Services のメタデータ スキーマで定義されたオブジェクトの名前です。かっこで囲まれていないラベルは、Business Data Connectivity Service のユーザー インターフェイスに表示される各オブジェクトの名前です。Microsoft Business Connectivity Services のメタデータ スキーマの詳細および多数の開発タスクの概要については、Microsoft SharePoint 2010 ソフトウェア開発キットに関する情報 (https://go.microsoft.com/fwlink/?linkid=166117&clcid=0x411) を参照してください。

メタデータ ストアのオブジェクト階層によって、他のオブジェクトに伝達できるアクセス許可が決まります。図では、アクセス許可が設定可能で、必要に応じて伝達できるオブジェクトは実線で示され、親オブジェクトからアクセス許可を継承しているオブジェクトは破線で示されています。たとえば、External System (LobSystem) にはアクセス許可を割り当てることでセキュリティ保護できますが、Action にはアクセス許可を直接割り当てることができません。アクセス許可を割り当てることができないオブジェクトは、親オブジェクトのアクセス許可を継承します。たとえば、Action は親の External Content Type (Entity) のアクセス許可を継承します。

セキュリティ メモSecurity Note
メタデータ ストア内のオブジェクトに対するアクセス許可が伝達されるときには、そのアイテムのすべての子のアクセス許可設定が伝達オブジェクトのアクセス許可で置き換えられます。たとえば、アクセス許可が External Content Type から伝達されている場合、その External Content Type のすべての Method および Method Instance は新しいアクセス許可を受け取ります。

メタデータ ストアおよびそれに含まれるオブジェクトには、次の 4 つのアクセス許可レベルを設定できます。

  • Edit

    セキュリティ メモSecurity Note
    編集アクセス許可は高い特権であることを考慮するようにしてください。編集アクセス許可が付与された悪意のあるユーザーは資格情報を盗んだりサーバー ファームを破壊したりすることがあります。運用システムでは、管理者レベルのアクセス許可を持つことができると信じられるユーザーのみに編集アクセス許可を付与することをお勧めします。
  • Execute

  • Selectable in clients

  • Set permissions

次の表に、これらのアクセス許可について、設定可能なさまざまなオブジェクトにおける意味を示します。

オブジェクト 定義 Edit アクセス許可 Execute アクセス許可 Selectable in clients アクセス許可 Set permissions アクセス許可

メタデータ ストア

Business Data Connectivity Serviceに格納されている XML ファイルのコレクション。それぞれに、モデル、外部コンテンツ タイプ、および外部システムの定義が含まれます。

ユーザーは、新しい外部システムを作成できます。

メタデータ ストアそのものに対する "実行" アクセス許可はありませんが、この設定を使用して、実行アクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

メタデータ ストアそのものに対する "クライアントで選択可能" アクセス許可はありませんが、この設定を使用して、このアクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

ユーザーは、メタデータ ストア内のどのオブジェクトに対するアクセス許可でも、それらをメタデータから伝達することで設定できます。

モデル

1 つ以上の外部コンテンツ タイプ、それらに関連する外部システム、環境に固有の情報 (認証プロパティなど) をまとめて記述した XML ファイル。

ユーザーは、モデル ファイルを編集できます。

"実行" アクセス許可はモデルに適用できません。

"クライアントで選択可能" アクセス許可はモデルに適用できません。

ユーザーは、モデルに対するアクセス許可を設定できます。

外部システム

データベース、Web サービス, .NET Connectivity Assembly など、モデル化可能なサポートされるデータ ソースのメタデータ定義。

ユーザーは、外部システムを編集できます。また、このアクセス許可を設定することで、外部システムとそれに含まれる外部システム インスタンスが SharePoint Designer で表示されるようになります。

外部システムそのものに対する "実行" アクセス許可はありませんが、この設定を使用して、"実行" アクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

外部システムそのものに対する "クライアントで選択可能" アクセス許可はありませんが、この設定を使用して、これらのアクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

ユーザーは、外部システムに対するアクセス許可を設定できます。

外部コンテンツ タイプ

1 つ以上の外部システムからのデータ セット、それらのデータに対して有効な処理、およびそれらのデータに関係する接続情報を定義するメタデータの再利用可能なコレクション。

外部コンテンツ タイプそのものに対する "編集" アクセス許可はありませんが、この設定を使用して、これらのアクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

ユーザーは、外部コンテンツ タイプに対する処理を実行できます。

ユーザーは、外部コンテンツ タイプの外部リストを作成できます。

ユーザーは、外部コンテンツ タイプに対するアクセス許可を設定できます。

メソッド

外部コンテンツ タイプに関係する処理。

ユーザーは、メソッドを編集できます。

メソッドそのものに対する "実行" アクセス許可はありませんが、この設定を使用して、"実行" アクセス許可をメタデータ ストア内の子オブジェクトに伝達できます。

メソッドに対する Selectable in clients アクセス許可はありません。

ユーザーは、メソッドに対するアクセス許可を設定できます。

メソッド インスタンス

特定のメソッドに関して、特定の既定値セットを使用したメソッドの使用方法を記述します。

ユーザーは、メソッド インスタンスを編集できます。

ユーザーは、メソッド インスタンスを実行できます。

メソッド インスタンスに対する Selectable in clients アクセス許可はありません。

ユーザーは、メソッド インスタンスに対するアクセス許可を設定できます。

Business Data Connectivity Service における特別なアクセス許可

前述のアクセス許可の設定に関する一般的な機能に加えて、Business Data Connectivity Serviceには特別なアクセス許可のセットがあります。

  • ファーム管理者は、Business Data Connectivity Serviceに対するすべてのアクセス許可を持ちます。これは、サービスのインスタンスの管理や修復をするためなどに必要です。ただし、ファーム管理者はメタデータ ストア内のオブジェクトに対する実行のアクセス許可を持たないことに注意してください。この権限は、Business Data Connectivity Service インスタンスの管理者が必要に応じて明示的に与える必要があります。

  • Windows PowerShell ユーザーはファーム管理者であり、Business Data Connectivity Serviceでコマンドを実行できます。

  • フロント エンド サーバー上のアプリケーション プール アカウントは、Business Data Connectivity Serviceに対して、ファーム管理者と同じアクセス許可を持ちます。このアクセス許可は、Microsoft Business Connectivity Servicesに基づく展開パッケージの生成に必要です。

  • SharePoint Designer ユーザーは、ほとんどの場合、クライアントにおける Edit、Execute、および Selectable のアクセス許可をメタデータ ストア全体で与えられている必要があります。SharePoint Designer ユーザーには Set のアクセス許可を付与しないでください。必要に応じて、SharePoint Designer ユーザーのアクセス許可をメタデータ ストアのサブセットに制限できます。

    警告

    安全なソリューションを確実なものにするには、SharePoint Designer を使用して、Edit アクセス許可を自由に割り当てることができるテスト環境で外部コンテンツ タイプを作成します。テスト済みのソリューションを運用環境に展開するときには、Edit アクセス許可を削除して、外部データの整合性を保護できるようにします。

一般的なタスクと関連するアクセス許可

ここでは、Business Data Connectivity Serviceの一般的なタスクおよびそれらの実行に必要なアクセス許可について説明します。

タスク アクセス許可

メタデータ ストアに新しいオブジェクトを作成する

メタデータ オブジェクトを作成するには、ユーザーが親のメタデータ オブジェクトに対して Edit アクセス許可を持つ必要があります。たとえば、外部コンテンツ タイプに新しいメソッドを作成するには、ユーザーが外部コンテンツ タイプに対するアクセス許可を持つ必要があります。前述の図で、メタデータ ストア内のオブジェクトの親子関係を参照してください。

メタデータ ストアからオブジェクトを削除する

メタデータ オブジェクトを削除するには、ユーザーがオブジェクトに対する Edit アクセス許可を持つ必要があります。オブジェクトとそのすべての子オブジェクトを削除するには (外部コンテンツ タイプとそのすべてのメソッドを削除する場合など)、すべての子オブジェクトに対する Edit アクセス許可も必要です。

モデルに外部コンテンツ タイプを追加する

外部コンテンツ タイプをモデルに追加するには、ユーザーがモデルに対する Edit アクセス許可を持つ必要があります。

モデルをインポートする

モデルをメタデータ ストアにインポートするには、ユーザーがメタデータ ストアに対する Edit アクセス許可を持つ必要があります。明示的なアクセス許可がモデルに割り当てられていない場合、インポートしたユーザーにはモデルに対する Edit アクセス許可が与えられます。

モデルをエクスポートする

メタデータ ストアからモデルをエクスポートするには、ユーザーがモデルおよびモデルに含まれるすべての外部システムに対する Edit アクセス許可を持つ必要があります。

展開パッケージを生成する

展開パッケージは、フロント エンド サーバーが使用するアプリケーション プール アカウントによって生成されます。このタスクを実行できるように、このアカウントはメタデータ ストアに対するすべてのアクセス許可を持ちます。

メタデータ ストアに初期のアクセス許可を設定する

Business Data Connectivity Serviceのインスタンスを初めて作成したとき、そのインスタンスのメタデータ ストアは空です。ファーム管理者は、ストアに対するすべてのアクセス許可を持ち、初期のアクセス許可を設定できます。

Business Connectivity Services のセキュリティ保護

このセクションでは、Business Connectivity Services のセキュリティ保護に使用できるその他の方法について説明します。

サービス アカウント

セキュリティの分離のために、Business Data Connectivity Service アプリケーションとフロントエンド サーバーが同じサービス アカウントを使用しないようにします。

サーバー間の通信

Business Data Connectivity Service アプリケーションと外部システム間の通信のセキュリティを保護することにより、機密データの侵害を防ぐことができます。暗号化されたコミュニケーション チャネルを使用して、SharePoint Foundation 2010 を実行しているサーバーと外部システム間で送信されるデータを保護する必要があります。インターネット プロトコル セキュリティ (IPsec) は、通信の保護に使用できる 1 つの方法です。どの方法を使用するかは、セキュリティを保護する特定の通信チャネルと、組織に最も適した利点とトレードオフによって異なります。

FileBackedMetadataCatalog を使用するアプリケーション

セキュリティ上の理由から、RevertToSelf 認証モードは SharePoint Foundation 2010 で既定で無効になっています。しかし、FileBackedMetadataCatalog クラスを使用するアプリケーションは、引き続き RevertToSelf 認証を使用するモデルをインポートし、RevertToSelf 認証を使用する呼び出しを実行することができます。そのため、アプリケーション プール アカウントに特権を付与することにより、ユーザーの特権が昇格される可能性があります。アプリケーションを運用システムにインストールする前に、すべてのアプリケーションで FileBackedMetadataCatalog クラスと RevertToSelf 認証が使用されていないことを確認する必要があります。