ワークフロー サービスのセキュリティ保護
このトピックの内容は、Windows Workflow Foundation 4 に該当します。
セキュリティで保護されたワークフロー サービス サンプルでは、次の手順を示します。
Windows Communication Foundation (WCF) 構成を使用して、ワークフロー サービスで使用するセキュリティで保護されたエンドポイントを定義する。
カスタム ポリシー内にクレームを作成し、ServiceAuthorizationManager を使用してクレームを検証する。
使用例
WCF セキュリティを使用して、クライアントとワークフロー サービス間の通信、クレーム ベースの承認を保護します。
説明
このサンプルでは、WCF セキュリティ インフラストラクチャを使用して、通常の WCF サービスと同様にワークフロー サービスをセキュリティで保護する方法を示します。具体的には、承認にカスタム クレームを使用します。この例では、WSHttpBinding とメッセージ モード セキュリティを Windows 資格情報と共に使用します。
カスタムの IAuthorizationPolicy (CustomNameCheckerPolicy
) は、クライアントの Windows ユーザー名をチェックし、特定の文字がないか確認します。該当する文字がある場合は、クレームを作成して EvaluationContext に追加します。このようにすることで、カスタム ポリシーは、クライアントのユーザー名にこの文字が含まれていることを示すステートメントを作成します。このクレームは、呼び出しの有効期間においてクエリできます。該当の文字は Constants.cs
で検索できます。
承認ポリシーは、SecureWorkFlowAuthZManager
内のクレームを探します。クレームが見つかると、true を返し、ワークフローを続行できるようにします。クレームが見つからない場合は、false を返し、クライアントには "アクセスは拒否されました" メッセージが返されます。他のクレームもコンテキスト内にあり、SecureWorkFlowAuthZManager
内で調べることができます。
このサンプルを実行するには
Visual Studio 2010 を管理者権限で実行します。
Visual Studio 2010 に SecuringWorkflowServices.sln を読み込みます。
F6 キーを押してソリューションをコンパイルします。
Service プロジェクトをソリューションのスタートアップ プロジェクトに設定します。
Ctrl キーを押しながら F5 キーを押して、デバッグを行わずにサービスを起動します。
Client プロジェクトをソリューションのスタートアップ プロジェクトに設定します。
Ctrl キーを押しながら F5 キーを押して、デバッグを行わずにクライアントを起動します。
注 : |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<InstallDrive>:\WF_WCF_Samples
このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。
<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Services\SecuringWorkflowServices
|