問題タブ [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 メッセージ コントラクトには、IsWrapped 属性と wrappername、wrappernamespace 属性があります。
質問?
- メッセージラッピングとは
- メッセージをラッピングする利点は何ですか
- メッセージをラップするのは安全ですか。
c# - UsernamePasswordValidatorでHTTPバインディングを保護しながら、MEXバインディングを安全でない状態に保ちますか?
WCFサービスへのアクセスを保護するために、証明書とともにUsernamePasswordValidatorを使用しています。
ただし、使用しているカスタム承認ポリシーは、エンドポイントの動作ではなくSERVICEの動作であるため、MEXエンドポイントを含むすべてのエンドポイントに適用されます。毎回サービスの動作をコメントアウトすることなく、Visual Studioを使用してサービス参照を取得できるようにしたいのですが、mexとwshttpエンドポイントの両方が保護されているため、「サービス参照の追加」を実行するとエラーが発生します。 ..」
これを回避する方法はありますか?
asp.net - FormsAuthentication Cookie を WCF サービスに渡す
リモート WCF Web サービスと通信する Web サイトがあります。どちらも同じカスタム FormsAuthentication Provider を使用します。現在サイトにログインしているユーザーを偽装する WCF サービスで認証したいと考えています。UserName クライアントの資格情報を使用して手動でこれを既に行っていますが、ユーザーのパスワードを知る必要があります。認証されたユーザーがリクエストを行い、サービス クライアントを作成して資格情報を設定します。
しかし、ユーザーのパスワードを保存したくないので、FormsAuthentication Cookie を直接渡したいと思っています。
何か案は?
wcf - WCF-次の検索基準を使用してx.509証明書を見つけることができません
さて、私はこの問題に関連するいくつかの質問を見てきました、そして私はそれらに提示された多くのアイデアを試しましたが成功しませんでした。これが私の状況です:
会社のイントラネットを介してWebサービスを利用しています。svcutil.exeを使用して、WCFのクライアントクラスを生成しました。サービスの開発中に問題なくWebサービス呼び出しを実行でき、認証資格情報を必要としなかったため、コードが機能することがわかりました。当時、コードはSSLを介して実行されていました。必要な証明書を信頼されたルート証明機関ストアにインポートしましたが、すべて問題ありませんでした。
ステージ環境に移行したばかりで、接続するために資格情報が必要になるようにサービスがアップグレードされました。接続を新しいエンドポイントに切り替え、認証するコードを追加しました。wcfを使用するのはこれが初めてですので、明らかな間違いがあればご容赦ください。私の問題は、認証のためにサービスに渡すコードを介して証明書を見つけることができないことです。私はこれを私が見つけたいくつかのオンラインコード例に基づいています。
svcutilによって生成された構成の例を次に示します。
そして、これが私が接続を試みるために使用しているコードです。証明書を見つけようとするとすぐに例外がスローされます。
私はいくつかの異なるX509FindTypesを試しましたが、それらを証明書の値と一致させましたが、成功しませんでした。私のコードに何か問題がありますか?渡した値を検証するために証明書ストアにクエリを実行する別の方法はありますか?
Visual Studioを実行している開発マシンには、証明書がインポートされています。
wcf - サーバーがユーザー アカウントを使用する WCF Kerberos クライアントのパターン
WCF (Windows Communication Foundation) クライアントとサービス アプリケーションがあります。Kerberos で Windows 認証を使用しています。
問題は、サービスが多数のアカウント (ネットワーク サービス、特定のユーザー アカウントなど、IT グループによって異なります) のいずれかで実行される可能性があることです。このアカウントは毎日変更される可能性は低いですが、場合によっては (数か月ごとに) 変更される可能性があります。さらに、このクライアント/サービス パッケージを複数のグループに提供します。各グループは、サービスを実行するために使用する独自のアカウントを持っている場合があります (これは、1 つのチームに対してカスタム ソリューションを実行できないことをお知らせするためのものです)。 )。
上記の段落が問題である理由は、サービスが SYSTEM または NETWORK SERVICE アカウント、つまりユーザー アカウントで実行されていない場合、クライアントはそのエンドポイントの ID でユーザー アカウントの名前を指定する必要があるためです。
この制限の詳細については、http: //social.msdn.microsoft.com/Forums/en-US/wcf/thread/feb6bc31-9a4b-4f8d-a887-ef6d2c7abe41 およびhttp://www.vistax64.com/indigoを参照してください。 /146204-using-localhost-vs-environment-machinename.html
これにより、IT 部門がサービスを実行するアカウントを変更する状況に対処することが難しくなっているようです。ある場合、これを処理するためのパターンは何ですか? 他の人々はこれをどのように処理しましたか? 私が考えた 1 つの解決策は、サービスのユーザー アカウントが変更されたときに管理者がメールを送信することです。これには、クライアントまたは構成ファイルを更新するアプリケーションへの Web リンクが含まれているため、クライアントは新しいユーザー アカウントを参照します。 . しかし、それはハックのようです。
確かに、これは移動するエンドポイントの URI によく似ています。例外として、URI の変更はクライアントが知っておくべきことであるが、サービスが実行されているアカウントの変更は、クライアントに対して比較的透過的であるべきものであるという人々に代わって、より多くの期待があると思います。
ところで、これが重要な場合は、IIS 7.0 でホストする必要があります。
wcf - 証明書とユーザー名/パスワード資格情報を使用する WCF クライアント?
ASP.NET から社内の Web サービスを使用しています。svcutil.exe を使用してサービスに接続し、wsdl からバインディングとクラスを生成しました。認証を必要としない開発版に接続できました。現在、セキュリティを追加しています。新しい URI は https を使用していますが、ユーザー資格情報も必要です。
私は WCF に非常に慣れていないため、これを構成する方法を決定しようとしています。MSDNの私の読書から、行く方法は使用しているようです。
更新:これが私が試した最新のコードです。これには、回答からのフィードバックが組み込まれています。
呼び出しコードは次のとおりです。
リクエストで匿名の資格情報を渡しているというエラーが表示されます。更新されたコードを使用すると、別の例外が発生します。
アップデート:
提案された変更を行い、using ブロックからサービス呼び出しを削除した後 (この記事に従って)、MessageSecurityException が発生するようになりました。
silverlight-3.0 - WCF でカスタム バインドを使用する場合のセキュリティ構成
アプリケーションを Silverlight に移植しようとしています。これまで、クライアント アプリケーションは netTcpBinding を使用してサーバーと通信していました。ただし、Silverlight はそれをサポートしていないため、代わりにカスタム バインディングを使用することを推奨していることがわかりました。
セキュリティに関して特別な方法でバインディングを構成する必要があるかどうかを知りたいです。私の分散アプリケーションは、クライアントとサーバーが同じマシンで実行されている場合はうまく機能しますが、別のマシンで実行されている場合は機能しません。この場合、次のエラーが表示されます。
アクション ' http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence ' を持つメッセージは、EndpointDispatcher での ContractFilter の不一致により、受信側で処理できません。これは、コントラクトの不一致 (送信者と受信者の間のアクションの不一致) または送信者と受信者の間のバインディング/セキュリティの不一致が原因である可能性があります。送信者と受信者が同じコントラクトと同じバインド (メッセージ、トランスポート、なしなどのセキュリティ要件を含む) を持っていることを確認します。
私はすでにコントラクトとバインディングを確認しました (netTcpBinding では正常に動作しているが、カスタム バインディングに切り替えると問題が発生します)。ポートはファイアウォールでも有効になっています。エラー メッセージに基づいて、WCF は、クライアントとサーバーで一致しないいくつかのセキュリティの既定値を想定している可能性があると思います。
サーバー構成ファイルは次のとおりです。
クライアント構成は次のようになります。
.net - オブジェクトを WCF バリデータ クラスに挿入する方法
WCF サービスの依存性注入の使用をフォローアップするには、WCFバリデーターにDI を使用する方法があるので、これを行うことができます。
編集 - バリデーターが app.config で定義されているため、Dzmitry のアドバイスをカスタム動作拡張に適用しようとしました。悲しいことに、wcf はバリデーターにデフォルトのコンストラクターを持たせたいので、MethodMissingException が発生します。
System.MissingMethodException: No default constructor has been defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
これが私の行動クラスです:
wcf - トランスポートセキュリティを使用しないWCFユーザー名認証はセキュリティリスクですか?
WCFでユーザー名メッセージセキュリティを使用しようとしています。トランスポートクレデンシャルタイプのNone/Anonymousを使用すると、明確なセキュリティリスクが発生するかどうかを調べようとしています。
私の懸念は、バイナリデータがWS-trust仕様(TLSネゴシエーション)を使用してトンネリングされる最初の交換にあります。共有セキュリティコンテキストが確立される前に、このユーザー名とパスワードの認証の試みはネットワークスニファの影響を受けやすくなりますか?
どんな考えでも歓迎します。
ありがとう。
wcf - WCF Web サービスの使用中にクライアントを認証する方法は?
Web サービスを利用しながらクライアントを認証したいと考えています。ユーザー名とパスワードを渡すことができる ClientCredential というクライアントで公開されているプロパティが表示されます。この情報を WCF Web サービスに渡す方法と、ユーザー ID とパスワードを認証する方法を教えてください。