1

これらの2 つの リンクに従って、x509 認定の単純な Web サービスと、サービスを利用するための認証済みテスト クライアントを実装することができました。

現在、次のようになっています。

 --------------
| ServiceA.svc | ------------> Test Client 1
|  -GetData()  |
 --------------

このようなことを達成するために必要なものをどのように拡張できますか:

 --------------
| ServiceA.svc | ------------> Test Client 1
|  -GetData()  | ------------> Test Client 2
|  -SaveData() |
 --------------
| ServiceB.svc |-------------> Test Client 1
|  -GetData()  |
 --------------
| ServiceC.svc |-------------> Test Client 2
|  -SaveData() |
 --------------

私はすでにサービスをセットアップしており、Test Client 2 の準備が整っています。

だからここに私の質問のいくつかがあります:

  • テスト クライアント 2 用に別の証明書を作成する必要がありますか?
  • 構成ファイル/エンドポイント/動作はどのようになりますか? Service B と C は、基本的には今持っているものと同じなので簡単にセットアップできると思いますが、ServiceA が両方のクライアントで使用されるようになったので、少し迷っています。
  • ServiceA が呼び出された場合、どのクライアントがそれを呼び出しているかをどのように知ることができますか? 呼び出すことができるメソッドを制限したい可能性があります (つまり、TC1 は GetData() のみを使用でき、TC2 は SaveData() のみを使用できます)。メソッドにアクセスしているユーザーをログに記録できるようにします。

必要に応じて構成ファイルにあるものを投稿できますが、基本的には前述の 2 つのリンクにあるものと同じように見えます。

4

1 に答える 1

2

はい、各クライアントには個別の証明書が必要です。次に、操作内から、識別された ID を取得できます。

ServiceSecurityContext.Current.PrimaryIdentity.Name

ベスト プラクティスは、ここで説明されているように認証プロセスを分離することです: http://msdn.microsoft.com/en-us/magazine/cc948343.aspx

于 2012-04-13T15:54:05.267 に答える