問題タブ [wcf-authentication]
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.
php - PHP SoapクライアントからIISホストのWCFサービスを認証しますか?
IIS7でホストされているwcfサービスがあります。このサービスにアクセスするために使用したいphpsoapクライアントがあります。セキュリティがなくても正常に動作しますが、ユーザー名とパスワードをphpクライアントからwcfサービスに渡して、カスタムユーザー名バリデーターで認証できるようにしたいと考えています。私はPHP開発者ではないので、ユーザー名とパスワードを実際にサービスに送信し、カスタムのユーザー名とパスワードのバリデーターにユーザー名とパスワードを取得して検証させる方法を知りません。phpクライアントのコードは次のとおりです。
これが私のwcfweb.configのbasicHttpBinding設定です。繰り返しますが、phpクライアントからwcfサービスにユーザー名/パスワードを取得するためにこれが正しいかどうかはわかりません。
clientCredentialType = "Basic"を指定すると、IISは基本認証を有効にするように要求しますが、IISを介した認証は必要ありません。サービスを介した認証が必要であり、特にカスタムユーザー名とパスワードバリデーターによって処理されます。
c# - SOAP リクエスト本文ノードから ClientCredentials を読み取り、それをカスタム バリデータに対して検証しますか?
GetColors
をパラメーターとして受け取り、GetColorIdsRQ
を返すメソッドがありますGetColorIdsRS
。 GetColorIdsRQ
は SOAP リクエストで、GetColorIdsRS
は SOAP レスポンスです。それぞれの実装の詳細は次のとおりです。
GetColorIdsRQ:
ユーザー認証情報:
GetColorIdsRS:
色:
これは、メソッドがインターフェイスで宣言される方法です。
これは GetColorIds の実装です。
WCF テスト クライアントから GetColors を呼び出すと、要求本文は次のようになります。
Username
上記の問題は、とPassword
ノードをに使用したいということですCustomUserNameValidator
。それに対して検証できるように、ユーザー名とパスワードのノードCustomUserNameValidator
を認識させる方法がわかりません。メソッドでGetColorIdsRQ
上記に気付いた場合は、次のように設定しています。GetColors
しかし、これは明らかに検証されません。my の実装は次のCustomUserNamePasswordValidator
とおりです。
したがって、本質的に私が合格した場合:
CustomUserNameValidator は FaultException をスローする必要があります。
GetColors メソッドにも注意してください。「//Validate Username and Password」というコメントがあります。できることはわかっています。
上記はValidateメソッドを呼び出しますが、自動である必要があることに気付き、すべてのメソッドでこれを行う必要があります。
CustomUserNameValidator を呼び出す唯一の方法は、次のようなプロキシ コードで ClientCredentials を設定することです。
上記により Validate メソッドが呼び出されますが、上記を実行できず、Username と Password を Request オブジェクトのプロパティとして設定した場合、Validate は呼び出されないため、他のオプションは単にそれを必要とする各操作内の独自の Validate メソッド。ClientCredentials が失敗した場合、操作は呼び出されませんが、私の場合、操作を呼び出してから、スローの代わりに「無効なユーザー名および/またはパスワード」のようなエラー ノードを含む SOAP 応答を返す必要があります。 FaultException。
上記に基づいて、私の場合は CustomUserNamePasswordValidator の使用を避けるのが最善ですか?
ユーザー名とパスワードがプロキシのクライアント資格情報を介して設定できず、soap リクエストの本文を介して送信される場合、これを処理する方法は運用ベースで検証を処理することであると思われます。これはセキュリティ設定に影響します (たとえば、clientCredentialType="Username" にするポイントはありますか)
wcf - WCF タイプ 'System.CodeDom.Compiler.GeneratedCodeAttribute' が定義されていません
WCF認証サービスを実装する方法を示すこのチュートリアルに従っています。詳細な手順を正確に実行しました。しかし、プロジェクトをビルドしようとしたときにすべてのプロキシ クラスを追加した後、68 個のエラーが発生し、以下にリストされているものはほとんどありません。ここで何が間違っているのかわかりません。明らかに、クラスの一部のインポートまたは app.config ファイルの一部の属性が欠落していると思います。私は間違っているかもしれません。
チュートリアル記事に示されているように、3 つのアプリケーション サービス (認証、ロール、プロファイル サービス) はすべて適切にコンパイルされます。WCF認証サービスを介してシングルサインオンメカニズムを構築しようとしていました。
前もって感謝します。
wcf - WCFで委任を使用せずにWindowsIdentityを伝達するにはどうすればよいですか?
現在のユーザーのWindowsIDを2つのサービス呼び出しに伝播する必要があります。
サービスA(統合認証で実行)はサービスB(統合認証でも実行)を呼び出します。サービスBのコードでサービスAを呼び出すために使用されたユーザーIDを識別する必要があります。
これは、サービスAコードでユーザーを偽装し、偽装されたコードからサービスBを呼び出すことにより、委任を使用して可能であることを知っています。
ただし、私はIDを流したいだけで、ユーザーになりすますことはしません。これはなりすましなしで可能ですか?
.net - wcf 認証トークンの実装 - 方法
wcf サービスのユーザーとサーバーの間でトークン認証を実装する必要があります。
1- ユーザーは自分のユーザー名、ニックネーム、パスワードを含むトークンをサーバーに要求し、資格情報が正しい場合、サーバーはトークンで応答しますか?
質問 1
- リクエストごとにトークンを作成する必要がありますか、それとも特定の期間同じトークンを使用するためのストレージを作成できますか。それを行う最善の方法は何ですか?この実装のウェブ上の例はありますか?
- トークンの作成後、トークンをどこに保存すればよいですか? データベーステーブル内またはメモリ内? または他の方法?
- 資格情報が間違っている場合、何を返せばよいですか?
- ユーザーが短期間に非常に多くのトークン要求を送信しないようにするにはどうすればよいですか?
2-次に、ユーザーはそのトークンを使用してサービスを使用します。
質問 2
- クライアントはどのようにトークンをサーバーに渡すことができますか? クエリ文字列と一緒に?それを行うための最良のアプローチは何ですか?
どんな例や提案も素晴らしいでしょう。
silverlight-4.0 - N 層アプリの WCF と Silverlight 4.0: サービスへの呼び出しを認証する
次のように構築された N 層アプリがあり
ます。IIS7 のサーバー側には、WCF サービスでメソッドを公開する ASP.Net アプリケーションがあります。これらのメソッドは、EF4 を使用して DB と通信します。Silverlight 4.0 で記述されたクライアントは、WCF サービスでメソッドを呼び出しています。
WCF サービスは、次のメソッドを公開します。
私は WCF サービスを初めて使用しますが、次の観察結果は正しいと思います (間違っている場合は訂正してください)。
1)このメソッド/サービスをそのままにしておくと、私のサービスがhttp://www.mysite.com/myservice.svcにあることを知っている人なら誰でも、 VisualStudioを開いて「サービス参照の追加」を開いて呼び出しを開始できますDeleteItem() に。
2) MEX エンドポイントを削除して上記の問題を解決しようとすると、手動コーディングを使用してサービスを呼び出すことができます。
そこで、これら 2 つの問題を解決しようとして、WCF に組み込まれているいくつかのセキュリティ機能について学び始めました。簡単に調べた後、サービスを呼び出すためにユーザー名とパスワードが必要になるように、次のバインディング構成を使用できると考えました。
このソリューションを採用しようとして、最初に頭に浮かんだことは次のとおりです。ユーザーがクライアントにログインすると、クライアントはユーザーの名前とパスワードを WCF 呼び出しの資格情報として使用します。サーバー側では、これらの資格情報が DB に対して検証されます。
ここでの問題は、これらの資格情報 (userName と password) はもちろんユーザーに知られているため、既に述べた方法でそれらを使用して DeleteItem() を呼び出すことができることです。
ここから、2 つの解決策を思いつきました。
1) ユーザー名とパスワードを資格情報として使用する代わりに、クライアントでハードコードされたキーを使用します。XAP 内の Dll をスクランブルすると、誰かがこのキーを取得できなくなる可能性があります。
2)ユーザーがクライアントにログインすると、サーバーはある種の一時トークン(GUIDなど)を送信します。これにより、クライアントはこの通信セッション中に呼び出しを認証するために使用できます(ユーザーがクライアントを閉じるまで) .
私の質問は:
最初のソリューションが提供するセキュリティ レベルと、それをクラックするために必要な作業はどれくらいですか?
最初の解決策がクラックするのが非常に簡単である場合、2番目の解決策で言及したトークンシステムを管理するための組み込みの方法が WCF にありませんか?
スコープに足を踏み入れることができる他のソリューションは歓迎されます。
wcf - WSHttpBinding バインディング、クライアント認証
私はwcfを初めて使用し、wshttpbindingを使用していますが、サービスクライアントからユーザー名とパスワードを削除したい(これを渡す必要があります)、私のクライアントコードは
このユーザー名とパスワードを渡したくありません。
私のクライアント app.config は次のとおりです。
rit now サービスは Web でホストされています。service.config またはクライアント側 app.config に変更はありますか。ググった後の私の弱い知識では、変更はクライアント側でなければならないということですが、私はそれを行うことができません。:-(
注:私の契約にはセッションも必要です。事前に感謝します。
wcf - WCF でのカスタム トークン管理
WCF でメッセージを使用して生のメッセージを渡す Web サービスがあります。ヘッダー MessageHeader.CreateHeader を作成します。カスタム トークン管理システムを実装したいので、最初にユーザー名とパスワードを渡し、次にヘッダーを読み取ります。認証後の私のサービスは、しばらくすると期限切れになるトークンをユーザーに提供します.私のWebサービスは匿名ユーザーによるアクセスが可能であり、アクセスは制限されています.
カスタムバインディングを使用しています...これまたはサンプルを達成する方法について...
wcf - Silverlight プラットフォームでのカスタム WCF MessageHeaders のセキュリティの追加
Silverlight サービスで WCF サービスのカスタム メッセージ ヘッダーにセキュリティを追加するにはどうすればよいですか。
たとえば、重要な (認証された) 文字列値 (資格情報) を WCF メッセージ ヘッダーを介して渡したいと考えています。
セキュリティで保護された文字列データをメッセージ ヘッダー経由で渡す可能性はありますか?
asp.net - Windows ID を ASP.NET から WCF に渡す
統合 Windows 認証を有効にし、匿名認証を無効にして、IIS でホストされている WCF サービスを使用しています。ASP.NET からこのサービスを呼び出そうとすると、次の MessageSecurityException が発生します。
「HTTP 要求は、クライアント認証スキーム 'Negotiate' では許可されていません。サーバーから受信した認証ヘッダーは 'Negotiate,NTLM' でした。]"
何か案は?
これは私のサービス構成です:
これは私がサービスを呼び出す方法です: