次の方法で共有


サービス監査動作

このサンプルでは、 ServiceSecurityAuditBehavior を使用して、サービス操作中のセキュリティ イベントの監査を有効にする方法を示します。 このサンプルは、入門に基づいています。 サービスとクライアントは、<wsHttpBinding> を使用して構成されています。 modesecurity<の>属性がMessageに設定され、clientCredentialTypeWindowsに設定されています。 このサンプルでは、クライアントはコンソール アプリケーション (.exe) であり、サービスはインターネット インフォメーション サービス (IIS) によってホストされています。

このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。

サービス構成ファイルは、 serviceSecurityAudit 要素を使用して監査を構成します。

<behaviors>
  <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
      ...
<!-- serviceSecurityAudit allows specification of audit ___location
     and whether to audit success, failure or both. This service
     logs success and failure of messageAuthentication
     to the default ___location -->
     <serviceSecurityAudit auditLogLocation ="Default" messageAuthenticationAuditLevel = "SuccessOrFailure" />
    </behavior>
  </serviceBehaviors>
</behaviors>

サンプルを実行すると、操作要求と応答がクライアント コンソール ウィンドウに表示されます。 コンソール ウィンドウで Enter キーを押して、クライアントをシャットダウンします。

結果の監査ログは、イベント ビューアーを実行して確認できます。 既定では、Windows XP では監査イベントがアプリケーション ログに表示され、Windows Server 2003 と Windows Vista では監査イベントがセキュリティ ログに表示されます。 Windows Server 2008 および Windows 7 では、監査イベントはアプリケーションとサービスのログに表示されます。 監査イベントの場所は、 auditLogLocation 属性を "Application" または "Security" に設定することで指定できます。 詳細については、「 方法: セキュリティ イベントを監査する」を参照してください。 イベントがセキュリティ ログに書き込まれる場合、LocalSecurityPolicy-> オブジェクト アクセスの有効化は "Success" と "Failure" に設定する必要があります。

イベント ログを見ると、監査イベントのソースは "ServiceModel Audit 3.0.0.0" です。 メッセージ認証監査レコードのカテゴリは "MessageAuthentication" ですが、サービス承認監査レコードのカテゴリは "ServiceAuthorization" です。

メッセージ認証監査イベントには、メッセージが改ざんされたかどうか、メッセージの有効期限が切れているかどうか、およびクライアントがサービスに対して認証できるかどうかが含まれます。 クライアントの ID と共に認証が成功したか失敗したか、メッセージに関連付けられたアクションと共にメッセージが送信されたエンドポイントに関する情報を提供します。

サービス承認監査イベントは、サービス承認マネージャーによって行われた承認の決定に対応します。 承認が成功したか失敗したかに関する情報と共に、クライアントの ID、メッセージが送信されたエンドポイント、メッセージに関連付けられているアクション、受信メッセージから生成された承認コンテキストの識別子、アクセスの決定を行った承認マネージャーの種類に関する情報が提供されます。

サンプルを設定、ビルド、実行するには

  1. Windows Communication Foundation サンプル One-Time セットアップ手順を実行していることを確認します。

  2. ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. シングル コンピューター構成またはクロスコンピューター構成でサンプルを実行するには、「 Windows Communication Foundation サンプルの実行」の手順に従います。

こちらも参照ください