問題タブ [wcf-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - WCF サービス アプリケーションと WCF サービス ライブラリの違いは何ですか?
私は WCF Web サービスを開発しており、そのために WCF サービス アプリケーション テンプレートを使用しました。
「WCF サービス アプリケーション」を作成すると、この要件が満たされますか? WCF サービス アプリケーションよりも WCF サービス ライブラリを作成する利点は何ですか?
wcf - URL を介した WCF サービスへのアクセス
私はWCFサービス(WCFService1としましょう)を2台のリモートマシンにデプロイしています。同じサービスが 2 つの異なるマシンにデプロイされているため、共通のインターフェイスと共通のメソッドが公開されています。
WCFService1 は Machine1 と Machine2 にデプロイされます。
クライアント マシンから WCF サービスを利用するために、クライアント アプリを作成しました。
URL http://11.12.25.23/WCFService/Service1.svcを使用して、WCF サービス (WCFService1) の設計時の参照を追加しました。
これで、サービスで公開されているメソッドを呼び出すことができます。今までは大丈夫...
今私の質問は、別のマシンでホストされている同じサービスを別の URL ( http://12.12.24.24/WCFService/Service1.svcとしましょう) で実行時にクライアントを更新する必要がある場合、どうすればそれを行うことができますか?
現在、私はこれをやっています:
しかし、サービスで公開されているメソッドを呼び出すために使用するたびに、バインディングの不一致エラーが発生しました。
.net - WCF 認証の問題
公開したい非常に単純な WCF サービスがあります。サービスを作成し、手間をかけずにサーバー上にセットアップしました。問題は、プライベート ネットワーク内からサービスを使用できることですが、ネットワークの外部からサービスを使用しようとすると、次のエラーがスローされます。
セキュリティ サポート プロバイダー インターフェイス (SSPI) のネゴシエーションが失敗しました。
少し調べてみたところ、WCF はデフォルトで Windows 認証を使用しているようです。認証を使用しないように変更したいのですが、方法がよくわかりません。これが私の設定が今どのように見えるかです。
いくつかの指針、または正しい方向へのナッジをいただければ幸いです。
wcf - WCFプロキシとuserPrincipalName
私のチームにはかなり大きなアプリケーションがあり、WCFNetTCPベースのサービスを多数含むアプリケーションを開発しています。このシステムが実行されるWindowsサービスは、ローカルアカウントではなく、標準のドメインユーザー(サービスをホストするサーバーの管理者権限を持つ)になります。接続のテスト中に、SSPI呼び出しが失敗するという問題が発生しました。数時間の調査に基づいて、これにより、クライアント構成から次の行が欠落しているという道をたどりました。
これを使用する際の問題は、VSまたはsvcutilを使用してこのサービスのクライアント/プロキシを生成しないことです。使用されているプロキシは完全にコードで記述されており、System.ServiceModel.ClientBaseを継承します。このオプションが選択された元々の理由は、フェンスの両側のサービスを通過するまったく同じDataMemberオブジェクトを使用できるようにするためだったと思います。サードパーティのグループはサービスに接続する必要がないため、これは問題ではありませんでした。 。
標準のsystem.serviceModel構成セクションでエンドポイントが指定されていない場合に、クライアントでuserPrincipalNameを(コードまたは構成を介して)設定する方法を知っている人はいますか?
参考までに、クライアント側のweb.configは次のようになります。
hosting - 他の人がホストされたwcfサービスのサービス参照を追加しないようにするにはどうすればよいですか?
誰か(つまり、私が知っている人)が私のサービスを利用できるようにWCFサービスをホストしている場合、他の誰か(つまり、私が知らない人)がそれを利用するとどうなりますか?どうすればそれを防ぐことができますか?これはどのように達成できますか?
それはサービススロットリングを通じて行うことができますか、それともこれを達成する他の方法は何ですか?
asp.net - WCF 例外 - 「本文」、「http://www.w3.org/2003/05/soap-envelope」で必要なメッセージ部分が署名されていませんでした。問題
私はローカルで WCF クライアントを実行していますが、これは常に MessageSecurityException をスローし、次のテキストをスローします 。
内部例外メッセージ: 「メッセージのセキュリティを検証中にエラーが発生しました」
私はトレースを設定し、そのファイルで「内側の」例外メッセージを次のように見ることができます。署名されていません。」
バインディングはすべて、securityMode="Message" で netTcpBinding を使用して、クライアントとサービスの間で完全に一致します。
サービスの背後にあるインターフェースを装飾する ServiceContract は次のとおりです。
エラーの原因は何ですか? 私は WCF の専門家ではないので、さらに情報が必要な場合はコメントしてください。何を試すべきかについてのアイデアも役に立ちます。ここで何が起こっているのかわかりません。
wcf - WCFおよびKerberos認証
私は多数のmsdnの記事とcodeplexガイダンスに従いましたが、WCFをKerberos認証と委任で動作させることができず、少し助けていただければ幸いです。
設定
リモートマシンのIISWebサイトにWCFサービスがあります
- Windows2003R2上のIIS6.0-SP2
- マシンのSPNが追加されました(http / myserver && http / myserver:8080)
- IISアプリプール用にADアカウントが作成されました
- ADアカウントには、(Kerberosの場合)委任を許可する設定があり、trueに設定されています
私は8080でBrianBoothのデバッグサイトを使用していますが、このサイトはKerberos委任のすべての要件に合格しています。デバッグIISサイトでは、匿名認証がオフになっており、統合Windows認証がオンになっています。
これらの設定を、WCFサービスをホストしているサイトにミラーリングしました。
Webサービス-Web構成(オリジナル)
Webサービス-Webメソッド
クライアントアプリ-アプリ構成
アプリケーションエラー
テストアプリケーションであるWinFormsアプリがWebメソッドを呼び出そうとすると、次のエラーが発生します。
「HTTP要求はクライアント認証スキーム「匿名」で許可されていません。サーバーから受信した認証ヘッダーは「Negotiate、NTLM」でした。」
イベントログ
次のエラーがイベントログにあります。
例外:System.ServiceModel.ServiceActivationException:コンパイル中の例外のため、サービス'/Service.svc'をアクティブ化できません。例外メッセージは次のとおりです。このサービスのセキュリティ設定には「匿名」認証が必要ですが、このサービスをホストするIISアプリケーションでは有効になっていません。
わかりません。このサービスの要点は、匿名認証を許可しないことです。すべてのユーザー/要求は、Kerberosチケットを使用して認証され、他のマシンに渡される必要があります。
Kerberos認証と委任のためにこのWCFサービスをどのように構成する必要がありますか?
リビジョン1
このSOの質問を読んだ後、メタデータエンドポイントを削除しました。これは問題を解決していません。
リビジョン2
さらに調査した後、wsHttpBindingをbasicHttpBindingに変更することを提案するいくつかの投稿を見つけました。web.configのその部分への変更は以下に含まれており、サービスエンドポイントはそのバインディングを参照するように更新されています。
Webサービス-Web構成(改訂)
クライアントアプリ-アプリ構成(改訂)
エラー(改訂)
現在のエラーには、Kerberos認証ヘッダーが含まれているようです。
HTTPリクエストは、クライアント認証スキーム「ネゴシエート」では許可されていません。サーバーから受信した認証ヘッダーは'NegotiateSOMEHUGESCARYKEYHERE
wcf-security - クライアントにインストールしない WCF 証明書認証
私たちのセットアップには、WCF サービスと、私たちが作成した多数のクライアントが含まれています。一部のクライアントには Silverlight アプリケーションが含まれていますが、その他のクライアントには Web および Windows アプリケーションが含まれています。
X.509 証明書に基づいてクライアントを認証したいと (思います)。通常、クライアントに秘密鍵をインストールして、メッセージを暗号化 (デジタル署名) します。サーバーは、クライアントの公開鍵を使用して暗号化を解除し、メッセージが変更されていないことを確認し、メッセージが期待する人からのものであることを証明します (別名、認証済み)。
クライアント マシンに証明書をインストールしたくありません。展開するのは面倒で、クライアントにそうするように頼むことはできません. 私は先日、証明書をクライアント アセンブリに埋め込み、それを読んで使用することを提案した人と話していました。それは可能ですか?
誰かが私に例を挙げてくれれば素晴らしいでしょう。
前もって感謝します、
デビッド