次の方法で共有


Business Data Connectivity Service の認証

最終更新日: 2010年7月28日

適用対象: SharePoint Server 2010

この記事の内容
認証モード
認証モードの認証パターン
アプリケーション レベルの認証

Business Data Connectivity (BDC) service は以下の 2 つの認証モデルをサポートしています。

  • 信頼されたサブシステム

  • 偽装と委任

信頼されたサブシステムのモデルでは、中間層 (通常は Web サーバー) が、固定された ID としてのバックエンド サーバーに対して認証します。信頼されたサブシステムのモデルは、以下の理由から選択されます。

  • バックエンド サーバーを所有し、管理するグループが、管理対象のアカウントの 1 つにアクセスを与える。

  • 接続プールを提供する。

  • バックエンド サーバーでライセンス コストを削減する。

  • 複雑さが少ない。

偽装と委任のモデルでは、クライアントは認証を中間層に委任し、中間層はクライアントに偽装し、クライアントの代わりにバックエンドに対して認証します。このモデルは、以下の理由から使用されます。

  • ユーザー単位の認証に対するバックエンド サーバーの要件を満たす。

  • バックエンド サーバーで監査を有効にする。

認証モード

以下の認証モードは、BDC を使用してデータベースまたは Web サービスに接続する場合に使用できます。

注意

各モードに使用する認証パターンを確認するには、「認証モードの認証パターン 」を参照してください。

パススルー認証 (データベースおよび Web サービス システム)

パススルー認証とは、クライアントの認証情報をバックエンド サーバーに渡すオペレーティング システムの機能のことです。BDC はデータベース接続と Web サービス接続の両方についてパススルー認証をサポートしています。パススルー認証を使用する場合は、ログオンしているユーザーの ID で認証されます。

Web ページから BDC にアクセスすると、BDC は、Web フロント エンド サーバーのインターネット インフォメーション サービス (IIS) ワーカー プロセス w3wp.exe で実行されます。このプロセスの ID は、IIS アプリケーション プール アカウントですが、要求に対応するために使用するスレッドはログオン ユーザーを偽装します。BDC がバックエンド サーバーに対して認証を行うときにログオン ユーザーの ID が失われることを回避するには、IIS を実行しているサーバーと他のコンピューターの間で Kerberos 委任を有効にする必要があります。Kerberos 委任により、受信側のサーバーが、認証要求を適切な場所に送信できるようになります。

BDC は、クロールのために使用される場合、フィルターのデーモン プロセス mssdmn.exe で実行されます。バックエンド コンテンツ ソースにアクセスするため、フィルター デーモン プロセスのスレッドは、バックエンド コンテンツ ソースに関連付けられているコンテンツ アクセス アカウントとして偽装します。

ただし、パススルー認証を使用する場合、オペレーティング システムで提供されるのはユーザー名とパスワードだけです。このため、企業で要素が 2 つある認証 (つまり、ユーザー名とパスワードに加えて、特定の情報または個人情報を持っていることをユーザーに要求する) を使用する場合、パススルー認証は機能しません。

このような欠点があるものの、パススルー認証は簡単に使用できるため、テスト環境での使用、または対象のサーバーが匿名認証を使用している場合の使用に適しています。

RevertToSelf 認証 (データベースおよび Web サービス システム)

ユーザーが Windows 認証を使用してログオンすると、IIS はその特定のアカウントを偽装します。このため、IIS はアプリケーション プール ID で実行されている間はログオン ユーザーを偽装し、要求は、次に渡される前に、ユーザーが偽装された状態で実行されます。

RevertToSelf 認証を使用すると、この偽装を元に戻し、IIS アプリケーション プールに構成されている、元になっているアカウントとして認証することができます。

注意注意

認証用のユーザー定義のコードに RevertToSelf メソッドを使用すると、アプリケーション プール ID に特権を付与することにより、ユーザーにバックエンド サーバーのシステム レベルの特権を付与できます。そのため、完全にテストを行うまでは、実稼動システムでユーザー定義のコードを実行しないようにしてください。

WindowsCredentials (データベースおよび Web サービス システム)

Microsoft SharePoint Server 2010 は既定の Secure Store Service から取得される Windows 資格情報を使用して認証を行います。

RdbCredentials (データベース システムのみ)

RdbCredentials モードでは、SharePoint Server 2010 は、既定の Secure Store Service のデータベース資格情報を使用して認証を行います。SharePoint Server はデータベース資格情報を接続文字列に追加して、その資格情報をデータベース サーバーに転送します。

Credentials (Web サービス システムのみ)

SharePoint Server 2010 は、既定の Secure Store Service から提供される Windows 認証の資格情報以外の資格情報を使用して、Web サービス システムとの認証を行います。これらの資格情報は、Web サービス サーバーの構成に応じて、基本認証またはダイジェスト認証のために使われます。基本認証とダイジェスト認証では資格情報が適切に保護されないため、Secure Sockets Layer (SSL) とインターネット プロトコル セキュリティ (IPsec) の両方またはそのどちらかを使用して、Web サービス サーバーと、BDC を実行するサーバーとの間の通信をセキュリティで保護する必要があります。

DigestCredentials (WCF Web サービス システムのみ)

DigestCredentials 認証モードでは、SharePoint Server 2010 は既定の Secure Store Service を使用して、Windows 認証に使用される以外の資格情報にユーザー資格情報をマップします。マップされた資格情報は、ダイジェスト認証に使用されます。ダイジェスト認証では資格情報が適切に保護されないため、Secure Sockets Layer (SSL) とインターネット プロトコル セキュリティ (IPsec) の両方またはそのどちらかを使用して、WCF Web サービス サーバーと、BDC を実行するサーバーとの間の通信をセキュリティで保護する必要があります。

まとめ

表 1 は、各認証モードをいつ使用するか、および SharePoint 2010 SDK で現在使用できるサンプルへのリンクを示します。

認証モード

適用対象

使用シナリオ

PassThrough

データベースおよび Web サービス

"単一ボックス" 構成 (データベース サーバーと SharePoint Server を実行しているサーバーが同一のコンピューターにある構成) のテスト環境である、またはドメインで Kerberos 委任が有効である場合に使用します。宛先サーバーまたは Web サービスが匿名認証または SSL 接続を使用している場合にも使用できます。

RevertToSelf

データベースおよび Web サービス

偽装を元に戻し、IIS アプリケーション プールに構成されている、元になっているアカウントとして認証する必要がある場合に使用します。

WindowsCredentials

データベースおよび Web サービス

データベース サーバーまたは Web サービスが Windows 認証を使用する場合に使用します。このモード用の Secure Store Service を設定する必要があります。

RdbCredentials

データベース システムのみ

データベース サーバーがデータベース資格情報を使用する場合に使用します。たとえば、SQL Server を実行しているサーバーが、Windows 認証の代わりに SQL Server サーバー認証を使用する場合です。このモード用の Secure Store Service を設定する必要があります。

Credentials

Web サービス システムのみ

Web サービスが Windows 資格情報以外の資格情報を使用する場合に使用します。このモード用の Secure Store Service を設定する必要があります。

DigestCredentials

WCF Web サービス システムのみ

WCF Web サービスがダイジェスト認証用の Windows 資格情報以外の資格情報を使用する場合に使用します。このモード用の Secure Store Service を設定する必要があります。

認証モードの認証パターン

次の表に、各認証モードでの認証のパターンを示します。

パターン/モード

PassThrough

RevertToSelf

Credentials、DigestCredentials、RdbCredentials、WindowsCredentials (Secure Store の個々のアプリケーション)

Credentials、DigestCredentials、RdbCredentials、WindowsCredentials (Secure Store のグループのアプリケーション)

信頼されたサブシステム

サポートされています。

サポートされています。

偽装と委任

サポートされています。

サポートされています。

アプリケーション レベルの認証

BDC では、システムで構成されている主な認証に追加して使用される、2 次的なアプリケーション レベルの認証もサポートされます。これは特に、バックエンド アプリケーションで、ユーザーを承認するためにメソッド呼び出しの中でセキュリティ資格情報を渡す必要がある状況などで役立ちます。

BDC モデルのフィルター、つまりユーザー名、パスワード、SSOTicket、および UserContext フィルターを定義して、アプリケーションレベルの認証を有効にできます。これらのフィルターの詳細については、「Business Data Connectivity Service によってサポートされるフィルターの種類」を参照してください。

以下は、ユーザー名およびパスワードのフィルターを BDC モデルに追加することにより、アプリケーションレベルの認証を有効にする方法を示しています。

アプリケーション レベルの認証を有効にするには

  1. LobSystemInstance の SecondarySsoApplicationId プロパティで、資格情報を格納している Secure Store アプリケーションを指定します。

  2. UsernameCredentialFilter と PasswordCredentialFilter を定義し、それぞれを入力パラメータと関連付けます。