Duet Enterprise のセキュリティを計画する

 

適用先: Duet Enterprise for Microsoft SharePoint and SAP

トピックの最終更新日: 2016-11-29

この記事では、Duet Enterprise for Microsoft SharePoint and SAP のセキュリティの高い展開および運用を計画する方法について説明します。Duet Enterprise のセキュリティ アーキテクチャ、一般的な Duet Enterprise シナリオのセキュリティ構成戦略、SAP ロールに基づいて Duet Enterprise のアクセス許可を構成する方法、Duet Enterprise 環境の各種要素のセキュリティを実装する方法、および、Duet Enterprise を安全に管理するために必要なロールとアカウントについて説明します。

重要

この記事では、Microsoft SharePoint Server サーバー ファームのコンテキストの範囲内で、Duet Enterprise のセキュリティ計画について説明します。SAP 環境内からの Duet Enterprise のセキュリティに関連する情報については、SAP Support Portal (https://go.microsoft.com/fwlink/?linkid=205294&clcid=0x411) の『SAP Duet Enterprise Security Guide』を参照してください。SAP サポート ポータルの左側のウィンドウで、Duet Enterprise、Duet Enterprise 1.0 の順に展開し、適切なガイドをダウンロードしてください。

SharePoint Server における Duet Enterprise のセキュリティは、SharePoint Server 2010 のセキュリティ機能に基づいています。この記事と併せて、全般的な SharePoint Server のセキュリティを計画および実装する方法に関するコンテンツを参照することをお勧めします。詳細については、「Security and Authentication for SharePoint Server 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=196792&clcid=0x411) (英語) を参照してください。SharePoint Server と SAP システムの間の通信、および Duet Enterprise の認証と承認の大部分は、Microsoft Business Connectivity Services を使用して実装されます。したがって、Microsoft Business Connectivity Services に関するコンテンツも参照することをお勧めします。Microsoft Business Connectivity Services のセキュリティと関連分野の情報については、「Business Connectivity Services in SharePoint Server 2010 (英語)」(https://go.microsoft.com/fwlink/?linkid=190217&clcid=0x411) (英語) を参照してください。

このドキュメントの内容

  • Duet Enterprise のセキュリティ アーキテクチャ

  • 一般的な Duet Enterprise 認証シナリオのセキュリティ構成

  • SharePoint オブジェクトに対するアクセス許可をユーザーに付与するための SAP ロールの使用

  • Duet Enterprise における SharePoint Server のセキュリティ推奨事項

Duet Enterprise のセキュリティ アーキテクチャ

Duet Enterprise では、SAP システムに保存されるビジネス プロセスとデータは、SharePoint Server 2010 の Web サイトや、Microsoft Outlook、SharePoint Workspace など、Microsoft Office 2010 スイート クライアントに表示されます。ただし、SAP 内の情報に直接アクセスするには、SharePoint Server 2010 や Microsoft Office 2010 スイート クライアントへのアクセスに使用するユーザー アカウントは使用できません。Duet Enterprise のセキュリティ アーキテクチャでは、SharePoint Server 2010 に含まれる Microsoft Business Connectivity Services Windows Communications Foundation (WCF) コネクタを構成することによって、この問題を解決します。この WCF コネクタは、SharePoint Server 2010 の Security Token Service および SAP システム内の SAP NetWeaver と通信します。この実装は、SharePoint Server 2010 におけるユーザー識別子を SAP システムにおけるユーザー アカウントにマップして、SharePoint Server 2010 の Web サイトにログオンするユーザーが、SAP システムに再度ログオンする必要なく、SAP システムに保存されている外部データにアクセスできるようにすることを目的としています。

次の図は、Duet Enterprise における認証のしくみの概要を示します。この図は、SharePoint Server 内の Duet Enterprise サイトから SharePoint ユーザーが SAP 情報にアクセスする場合のステップを示しています。

Duet Enterprise 認証

  1. SharePoint ユーザーの ID (ログオン時にユーザーに関連付けられるトークン) は、Microsoft Business Connectivity Services Windows Communication Foundation コネクタに送信されます。

  2. コネクタは、SharePoint ユーザーの ID を SharePoint Security Token Service に送信します。

  3. SharePoint Security Token Service はユーザーを認証し、SAP システムに対して SharePoint ユーザーを識別するようにトークンを変更します。次に、SharePoint Security Token Service は WCF コネクタにトークンを返します。

  4. 次に、変更されたトークンが SOAP 要求パケットとして SAP NetWeaver に送信されます。

  5. SAP NetWeaver と Security Token Service の間の信頼関係が展開時に作成されるので、SAP NetWeaver は、トークンを使用して、そのトークンで識別されるユーザーにマップされている SAP ユーザー アカウントを参照できます。

  6. トークンで識別される ユーザーにマップされている SAP ユーザー アカウントが SAP NetWeaver に返されます。

  7. SAP NetWeaver は、SAP ユーザー アカウントを使用して SAP システム内の情報へのアクセスを要求し、そのユーザー アカウントで情報にアクセスできることが認証されると、要求した情報が SAP NetWeaver に送信されます。

  8. SAP NetWeaver は、要求された情報を SOAP 応答として Microsoft Business Connectivity Services Windows Communications Foundation (WCF) コネクタに送信します。

  9. Microsoft Business Connectivity Services WCF コネクタは、情報を SharePoint ユーザーに渡します。

注意

Duet Enterprise における認証は、SAP ロールに基づきます。詳細については、後の「SharePoint オブジェクトに対するアクセス許可をユーザーに付与するための SAP ロールの使用」を参照してください。

SAP システムのユーザー アカウントは、事前に SAP 管理者が SharePoint システムのアカウントにマップします。このプロセスの詳細については、『SAP Duet Enterprise Security Guide』を参照してください。

ヒント

一般的な Duet Enterprise 認証シナリオ

このセクションでは、2 つの一般的な Duet Enterprise シナリオおよび各シナリオの推奨認証構成について説明します。これらのシナリオの主な相違点は以下のとおりです。

  • Duet Enterprise に基づいて、単一ソリューションを実装するか、複数ソリューションを実装するか。

  • 通信チャネルの暗号化に Secure Sockets Layer を必要とするかどうか。

前のセクションで説明したように、Duet Enterprise のセキュリティには、SAP システムと SharePoint Server 2010 システムのロールとアカウントが使用されます。この統合認証アーキテクチャは、クレーム ベース認証と Windows 認証を併用することによって実装されるものであり、この両方の認証方式は、このセクションで説明する両方のシナリオで必要になります。

重要

このバージョンの Duet Enterprise ではフォーム ベース認証はサポートされません。

ヒント

これらのシナリオの構成手順の大部分は、Duet Enterprise のソリューションが含まれる Web アプリケーションの作成時に実行します。Web アプリケーションを構成する手順については、「Web アプリケーションを作成する (SharePoint Server 2010)」(https://go.microsoft.com/fwlink/?linkid=202008&clcid=0x411) を参照してください。

シナリオ: Microsoft Windows 認証プロバイダーを使用する企業イントラネット

これは、最も一般的な Duet Enterprise 認証シナリオです。たとえば、ある組織で、タイムカード、給与、福利厚生などの従業員データをリモート SAP システムで管理しているとします。すべてのユーザーは、社内の Duet Enterprise イントラネット ポータルからこのデータにアクセスします。全従業員が同じ Domain Services ディレクトリ サービス プロバイダーを使用してこのポータルにアクセスします。

このシナリオは、以下のように構成できます。

Web アプリケーションの数

1

ゾーン

1 ゾーン: イントラネット

認証

クレーム ベース認証

クレーム認証の種類

Windows 認証

Secure Sockets Layer?

はい

シナリオ: イントラネット内の 2 つの Duet Enterprise ソリューション

ある大規模な企業で、製品情報データベースにアクセスする場合など、1 つの同じ SAP システムを 2 つのワークグループで共有するとします。各ワークグループは、それぞれ独自の Duet Enterprise ソリューションを介してデータにアクセスします。SAP システム内の情報は、この企業の機密情報ではありません。したがって、Duet Enterprise サイトのパフォーマンスを向上させるために、このシナリオでは Secure Sockets Layer は使用しません。

このシナリオは、以下のように構成できます。

Web アプリケーションの数

2

ゾーン

Web アプリケーションごとに 1 つずつ: イントラネット

認証

クレーム ベース認証

クレーム認証の種類

両方の Web アプリケーションにおける Windows 認証

Secure Sockets Layer?

いいえ

SharePoint オブジェクトにアクセスするための SAP ロールの使用

企業では、ユーザーが通常実行するタスクはユーザーのロールに関連付けられています。したがって、多くの場合、オブジェクトに対するユーザーのアクセス許可レベルはそのユーザーのロールによって決まります。そのため、リスト項目、Web サイト、ドキュメントなどのオブジェクトへのアクセス許可を割り当てるには、ロールを使用すると便利です。

SAP NetWeaver では、営業担当者、プロジェクト マネージャー、役員、人事担当者など、1 つ以上のロールがユーザーに割り当てられます。SAP ロールには、全営業マネージャーのように広範なものも、東部営業マネージャーのように限定的なものもあります。Duet Enterprise では、このような SAP ロールを使用して SharePoint Server のオブジェクトにアクセスできます。SharePoint Server でアクセス許可を割り当てることのできるオブジェクトには、SAP ロールを使用してアクセス許可を割り当てることができます。レポート、外部リスト、外部コンテンツ タイプのアクションなど、Duet Enterprise に直接関連するオブジェクトや、Web サイト、ドキュメント ライブラリなど、全般的でセキュリティ保護可能な SharePoint Server オブジェクトが対象になります。オブジェクトへのアクセス許可がロールに付与されると、そのロールが割り当てられているユーザーは、対象オブジェクトへのアクセス許可を持つことになります。

ユーザーには SAP NetWeaver におけるロールのみ割り当てることができます。Duet Enterprise では、SAP システムのユーザー ロール割り当てを SharePoint Server に反映するのに Duet Enterprise プロファイル同期タイマー ジョブ機能が使用され、SharePoint Server のセキュリティ保護可能なオブジェクトに対するロール ベースのアクセス許可を管理するのに Duet Enterprise 要求プロバイダーが使用されます。

ロールの同期時には、Microsoft Business Connectivity Services を使用して SAP ユーザー一式が SharePoint User Profile Store にインポートされます。SAP ユーザーに割り当てられているすべての SAP ロールがそのユーザーごとにユーザー プロファイル ストアにリストされます。ロールの同期は、SharePoint Server から "SAPUsersService" という SAP 側の外部システムに接続します。この外部システムは、ユーザーとロールのマッピングを SharePoint ユーザー プロファイル ストアに送信します。一般に、ロールの同期は、展開後のステップとして、Duet Enterprise プロファイル同期タイマー ジョブを使用して設定された間隔で実行されます。ロールを同期する頻度、および同時にインポートするユーザーの数を指定できます。

ロールの同期が完了すると、ユーザーは SAP ロールのアクセス許可を SharePoint Server のオブジェクトに割り当てることができます。ロールは、グループやユーザーを選択するのと同じユーザー選択インターフェイスを使用してオブジェクトに割り当てます。図で示すように、Duet Enterprise 要求プロバイダーは、Business Data Connectivity Service を使用して、SAP システムと通信し (1 と 2)、ユーザー選択ウィンドウで選択できるすべての SAP ロールを収集およびリストします (3)。これによって、ユーザーは、アクセス許可を設定できるオブジェクトにこれらのロールを割り当てることができるようになります (4)。

ユーザー選択ウィンドウでの Duet Enterprise ロールの使用

リスト アイテム、ドキュメントなどのオブジェクトへのアクセス許可を SAP ロールに付与すると、ユーザーは自分のロールに基づいてオブジェクトの使用を承認されます。図で示すように、ユーザーがまず SharePoint サイトにログオンすると (1)、そのユーザーに SAML クレーム トークンが発行され (2)、そのトークンはユーザー プロファイル ストアとの通信において Duet Enterprise 要求プロバイダーによって補足され、SAML クレーム トークンにユーザーの SAP ロールが追加されます (3 と 4)。これによって、SharePoint Server は、ユーザーのロールにオブジェクトへのアクセス許可が含まれている場合にそのオブジェクトへのアクセスをユーザーに付与できるようになります (5 と 6)。

Duet Enterprise のロールベースのアクセス許可

注意

SAP システム内でユーザーのロールが変更されたとき、その変更が SharePoint システムに伝わるまでには少し時間がかかります。そのために新しいロールに基づくユーザーの承認が一時的に行われないことがあります。ロールの変更が伝わる時間を短くするには、SharePoint サーバー ファーム内の各フロントエンド サーバーで iisreset コマンドを実行します。これでロール情報のキャッシュがクリアされ、更新後のロールの設定で書き換えられます。

Duet Enterprise における SharePoint Server のセキュリティ推奨事項

Duet Enterprise は、SharePoint Server ファームおよび SAP NetWeaver システムに展開します。このセクションでは、Duet Enterprise のセキュリティを向上させるために、共有サービス、Web アプリケーション、リッチ クライアント、通信チャネル、および SharePoint ファームのその他の要素を構成する全般的なガイドラインを示します。

Security Token Service

Security Token Service は、SharePoint ユーザーを認証し、SAP システムに対して SharePoint ユーザーを識別するようにトークンを変更します (「Duet Enterprise のセキュリティ アーキテクチャ」を参照してください)。また、ロール ベースの認証をサポートするために、トークンにユーザーのロールも追加します (「SharePoint オブジェクトに対するアクセス許可をユーザーに付与するための SAP ロールの使用」を参照してください)。

パフォーマンス向上のために、Security Token Service のトークンはキャッシュされ、24 時間ごとにそのキャッシュがフラッシュされます。キャッシュからフラッシュされたトークンは、次回必要になったときに Security Token Service によって再作成されます。トークン作成頻度が高いとシステム パフォーマンスが低下するので、これを回避するために、Security Token Service キャッシュのフラッシュは 1 日 1 回のみとなっています。

トークンにロール情報が追加されるのはトークンの作成時または再作成時のみなので、トークンをキャッシュすることはトークン内のロール情報の更新頻度に影響します。したがって、SAP システムでユーザーの SAP ロールを変更してから、SharePoint Server でユーザーを表すトークンにその情報が反映されるまで、最大 24 時間の遅延が発生する可能性があります。その間、ユーザーのロールに基づいてアクセス許可を付与されるデータ、ドキュメント、サイトなどにユーザーはアクセスできません。

Duet Enterprise 管理者およびソリューション アーキテクトは、Duet Enterprise のパフォーマンスを良好に維持することと、ユーザーとロールのマッピングを常に最新の状態にして必要なオブジェクトへのアクセスを維持することの最適なバランスを保つ必要があります。一般に、既定のキャッシュ間隔 24 時間を変更することはお勧めしません。ロールの変更が SharePoint システムに反映されるまで 2 日かかる可能性があることをエンドユーザーに通知してください。ただし、目的のソリューションにおいてロール情報を最新の状態に維持することが特に重要である場合は、Windows PowerShell を使用してロールのキャッシュ間隔を構成できます。

Secure Store Service

Secure Store Service は、SharePoint の資格情報から外部システムに必要な資格情報へのマッピングを安全に保存します。Duet Enterprise では、展開時に DuetConfig.exe ユーティリティを使用して SAP オブジェクトを表す Microsoft Business Connectivity Services モデルを SharePoint Server にインポートするときのみ、Secure Store Service が使用されます。

BDC モデルをインポートする前に、Secure Store Service の管理者は暗号化キーを生成してこのサービスを初期化する必要があります。暗号化キーを生成する方法の詳細については、「Secure Store Service を構成する (SharePoint Server 2010)」(https://go.microsoft.com/fwlink/?linkid=205440&clcid=0x411) の「新しい暗号化キーを生成する 」を参照してください。

Business Data Connectivity Service

Duet Enterprise では、Microsoft SharePoint Server と SAP 環境の間の通信に Microsoft Business Connectivity Services を使用します。これによって、ユーザーは営業担当者、タスク、顧客などの SAP オブジェクトに接続してこれらを操作できます。オブジェクトは Microsoft Business Connectivity Services メタデータ ストアにモデル化され、Microsoft Business Connectivity Services のアクセス許可によって、個別アカウント、グループ アカウント、またはクレームが、メタデータ ストア内のオブジェクトに対する 1 つ以上のアクセス許可レベルに関連付けられます。メタデータ ストア内のモデル、外部システム、外部コンテンツ タイプ、メソッド、およびメソッド インスタンスにアクセス許可を設定する方法の詳細については、「Business Connectivity Services のセキュリティの概要 (SharePoint Server 2010)」(https://go.microsoft.com/fwlink/?linkid=205679&clcid=0x411) を参照してください。

前の「SharePoint オブジェクトに対するアクセス許可をユーザーに付与するための SAP ロールの使用」で説明したように、Duet Enterprise には、追加のアクセス許可機能があります。SAP ロールを使用して SharePoint Server のオブジェクトに対するアクセス許可を付与でき、SharePoint Server でアクセス許可を付与できるオブジェクトのセキュリティを SAP ロールを使用して保護できます。

Microsoft Business Connectivity Services でモデル化された SAP オブジェクトのセキュリティの実装に、SAP ロールを使用できます。これによって、必要なロールを割り当てられていないユーザーが、無関係のオブジェクトにアクセスできないようにすることができます。たとえば、顧客を定義するすべての外部コンテンツ タイプは、SAP_SALES_REP ロールのみがアクセスおよび操作できるように構成できます。

警告

Duet Enterprise に含まれるモデルによっては、固有のアクセス許可要件があり、ロールでセキュリティ保護できないものもあります。たとえば、Duet Enterprise のロールの同期に使用される SAPRoles モデルでは、特殊グループ "すべての認証されたユーザー" に、SAPRoles モデルの外部コンテンツ タイプのメソッド インスタンスに対する実行アクセス許可が付与される必要があります。

User Profile Service

Duet Enterprise ユーザーとそのロールは、SAP システムと同期され、SharePoint Server User Profile Service のプロファイル ストアに保存されます。Duet Enterprise と SAP システムの間でユーザーとロールのマッピングを同期するプロセスは、DuetConfig ユーティリティ内で開始されます。DuetConfig を実行してこのタスクを開始する前に、DuetConfig を実行するファーム管理者は、User Profile Service に対するフル コントロール権限を付与されている必要があります。

Duet Enterprise の展開環境によっては、1 つの SharePoint ファームで 1 つの集中管理 User Profile Service が、Duet Enterprise ソリューションをホストする他の複数の SharePoint ファームのロールの同期を提供する場合があります。このような "フェデレーション" 構成では、集中管理 User Profile Service を使用するファームごとに Security Token Service があります。集中管理 User Profile Service を使用するファームからロールの同期を実行できるようにするには、そのファームの Security Token Service のアプリケーション プール アカウントに、集中管理 User Profile Service に対する読み取り権限が付与されている必要があります。

Office クライアント アプリケーション

Office クライアント アプリケーションから Duet Enterprise の認証を行うには、SharePoint Server で実行される Security Token Service との通信が必要になります。したがって、Office クライアント アプリケーションから外部 SAP システムに接続する場合にも、Office クライアント アプリケーションと SharePoint Server の間の通信が必要です。Duet Enterprise では Windows 認証を使用するので、Office クライアント アプリケーションと SharePoint Server の間には、http:// アドレスを使用してセキュリティの高い通信を実装できます。https:// アドレスを使用する必要はありません。

SharePoint Server のオフライン機能をサポートする場合にも、Office クライアント アプリケーションと SAP システムの間の通信が必要です (このような接続は、SAP システムで使用できる外部データへのアクセスを提供するモデルで定義されます)。SAP システムへのアクセスのセキュリティを確保するために、Office クライアントと SAP システムの間の通信は、Secure Sockets Layer と https:// アドレスを使用して実装します。

レポート ルーティング

Duet Enterprise のレポート機能は、SAP のレポート生成機能と SharePoint Server のドキュメント管理機能を組み合わせています。これによって、エンドユーザーは SharePoint Server サイト内から SAP レポートを要求できます。このレポートは SAP システムで生成され、適切にルーティングされ、権限のあるユーザーが閲覧できるように SharePoint Server ドキュメント ライブラリに保存されます。Duet Enterprise に基づくソリューションでは、レポート機能を必要な数のサイトに統合できます。特定の Web アプリケーション内のサイトのすべてのレポートは、Web アプリケーションをレポート用に構成するときにその Web アプリケーションに接続される OBAFileReceiver Web サービスによって、その Web アプリケーション内の適切なライブラリにルーティングされます。

レポートを構成する」(https://go.microsoft.com/fwlink/?linkid=205681&clcid=0x411) で説明しているように、レポートをホストする Web アプリケーションは、サービスを安全に実行できるゾーンに Web アプリケーションを拡張する方法で構成します。このゾーンは以下の特徴を備えている必要があります。

  • Secure Sockets Layer (SSL) を使用していること

  • クレーム認証を使用していること

  • Windows 認証と基本認証を使用すること

  • SAP システムから信頼されている証明書にバインドしていること

ロール ベースのアクセス許可

前の「SharePoint オブジェクトに対するアクセス許可をユーザーに付与するための SAP ロールの使用」で説明しているとおり、Duet Enterprise は、SharePoint Server のセキュリティ保護可能なオブジェクトに対するロール ベースのアクセス許可を管理するために Duet Enterprise 要求プロバイダーを使用します。ソリューションで要求プロバイダーを使用すると、一部の操作の所要時間が増加します。Duet Enterprise 要求プロバイダーのパフォーマンスを最大限にするには、以下の対策をお勧めします。

  1. 既定では Duet Enterprise 要求プロバイダーが使用されないように構成します。このように構成すると、Duet Enterprise と関連しない Web アプリケーションは Duet Enterprise 要求プロバイダーへの照会を行いません。既定では要求プロバイダーを使用しないように構成するには、以下のような Windows PowerShell スクリプトを使用します。

    $myClaimPrMgr = Get-SPClaimProviderManager
    $TCP = $myClaimPrMgr.GetClaimProvider("DuetEnterpriseClaimsProvider")
    $TCP.IsUsedByDefault = False
    $myClaimPrMgr.Update()
    
  2. Duet Enterprise ソリューションに含まれる各 Web アプリケーションに Duet Enterprise 要求プロバイダーを関連付けます。これを行うには、ソリューションに含まれる Web アプリケーションごとに以下の Windows PowerShell スクリプトを実行します。

    $web = Get-SPWebApplication "http://WebApplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Add("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    このサンプル スクリプトでは、"http://WebApplication" を Web アプリケーションの URL に置き換えてください。

    Web アプリケーションと Duet Enterprise 要求プロバイダーの関連付けを削除するには、以下のスクリプトを使用します。

    $web = Get-SPWebApplication "http://Webapplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Remove("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    このサンプル スクリプトでは、"http://Webapplication" を Web アプリケーションの URL に置き換えてください。

重要

SAP NetWeaver では、ユーザー ロール割り当てを照会する権限を持つ SAP ユーザーに SharePoint タイマー ジョブ ドメイン アカウントをマップする必要があります。