Webサービスを呼び出すこのASP.Net Web APIアプリケーションがあります。現在(開発環境)Webサービス(SOAP)とASP.netアプリケーションは内部ネットワークにあります。プロダクションでは、Web APIアプリケーションはパブリックなインターネットになり、SOAPサービスは内部ネットワークに配置されます。クライアント証明書とSOAPヘッダー付きの承認ヘッダーを送信する理想的な方法
生産時には、すべてのサービスコールを検証し、内部WebサービスへのリクエストをリダイレクトするCA SOA Gatewayを使用します。ゲートウェイアプリケーションはHTTPSにあり、内部WebサービスはHTTPにあります。
CA SOAゲートウェイは、私はすべてのサービスに認可HTTPヘッダーを含むようにthis articleに従った2要素認証を必要とする、
- 認証ヘッダ(OAuthの基本許可)
- クライアント証明書
要求。それはうまく動作します。
リクエスト(< security mode=transport />
)を含むクライアント証明書を含めるには、wcfクライアント設定(web.config)を使用しています。
証明書ストアではなく物理的な場所からクライアント証明書を追加したいとします。私は.Net 4.6.1
を使用しており、DevAge.ServiceModel
コード(指定されたサンプルコードから)を使用するためにSystem.ServiceModel
名前空間を持っていないので、私はファイルのクライアント証明書を添付するためにthis articleをたどってきました。
質問:
- すべてのサービス要求にHTTPヘッダーを含めるためのより良い方法はありますか?
- 証明書ストアではなくファイルからクライアント証明書を含める方法はありますか?
注:Authorizationヘッダーとクライアント証明書は、SOAゲートウェイの検証用であり、Webサービスには必要ありません。
あなたのお手伝いをお待ちしております。