問題タブ [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.
wcf - WCF: 認証に失敗したため、セキュリティ トークンの要求を満たすことができませんでした
メッセージを送受信する非常に単純な WCF サービスを作成しました。VS 2008 の既定の Web サーバー ホストを介してアプリをテストしましたが、すべて正常に動作します。しかし、WCF サービスを別のコンピューターの IIS に展開すると、次のエラーが表示されます。
「認証に失敗したため、セキュリティ トークンの要求を満たすことができませんでした。」
構成ファイルでカスタムのユーザー名とパスワードを使用するように認証タイプを設定するにはどうすればよいですか? 不可能な場合は、使用している 2 台のコンピューターが同じユーザーを共有していないため、Windows 資格情報を設定する方法を教えてください。
wcf - ユーザー名/パスワードで認証されたWebサービスにWCFで接続します
Visual Studio 2008を使用してWebサービスのプロキシを作成しました。これにより、app.configに次のエントリが作成されました。
Webサービスにはユーザー名/パスワード認証があるので、ここのどこかに追加する必要があります。
WCFのドキュメントの海で少し迷っています。認証要素を追加できるようにするには、basicHttpBindingからwsHttpBindingまたはcustomBindingに変更する必要があると思いますが、よくわかりません。誰かがそうする方法を説明する簡単なヒントや便利なリンクを与えることができますか?
編集:
セキュリティセクションを次のように変更しました。
そしてコードに追加されました:
クレデンシャルを使用しているようですが、エラーが発生します。
提供されたURIスキーム「http」は無効なURIであると予想されます「https」
これが正しい道かどうかさえわかりません...
wcf - カスタムデータのWCF ServiceSecurityContextストレージの権利?
Windows 認証を使用する WCF アプリケーションがあります。Windows プリンシパル オブジェクトは、System.Threading.Thread.CurrentPrincipal() プロパティで見つけることができます。それは大丈夫です。ただし、よりきめ細かい承認と監査に使用されるカスタム プリンシパル オブジェクトもあります。これは、Windows ユーザーではなく、ドメイン ユーザーです。私は本当に両方が必要で、サービス側でカスタム ユーザーを保存する場所を探しています。これにより、サービスで実行されるすべてのコードが、ビジネス レイヤーとデータ レイヤーを介してこのユーザーにアクセスできるようになります。
クライアントとサーバー間の通信は、カスタム動作とメッセージ インスペクターによって処理されます。クライアント (ASP.NET Web アプリケーション) からサービスを呼び出すと、現在のユーザーがセッションから取得され、サービス呼び出しでカスタム ヘッダーにシリアル化されます。サービス側では、ヘッダーからプリンシパルを取り除き、カスタム プリンシパルをここに配置します。
したがって、このアプローチを検証するための質問:
- これは、サービスにカスタム プリンシパルを保存するための有効なアプローチですか。Windows認証をそのままにしておきたいことを覚えておいてください。
- これは「ベストプラクティス」ですか?それとももっと良い方法がありますか?
- このアプローチで注意すべき落とし穴や落とし穴はありますか?
入力していただきありがとうございます。
wcf - BasicHttpBindingのWCFサービスで認証する方法は?
これらのサービスは、.net 1.1 および .net 2.0 を使用してアクセスできる必要があります。この目的のために、basicHttpBinding を使用しています。
古い ASMX Web サービスでは、リクエストごとにユーザーを認証するために 1 つの Soap ヘッダー (AuthHeader) を割り当てました。basicHttpBinding
を使用して WCF で認証するにはどうすればよいですか? サンプルまたはチュートリアルは役に立ちます。
nRk
x509certificate - WCF、証明書認証 - 一般的なエラーと紛らわしい引数
クライアントの認証に証明書を使用するように WCF サービスをセットアップしようとしています。証明書の作成方法に関する多くの投稿を読みましたが、(最終的に) 作成することができました。
Windows 2008 R2 を実行するサーバーに Cert Authority と Cert をインストールしています。MMC 証明書スナップインを開くと、[コンピューター アカウント]を選択します。これは正しいです?私のWCFサービスはWindowsサービスで実行され、ユーザーがログインしていなくても実行されるため、これを行っています。しかし、確かに、3つのオプションの違いはわかりません。
- 私のユーザーアカウント
- サービス アカウント
- コンピューター アカウント
スナップインが読み込まれたら、Authority Cert をTrusted Root Certification Authoritiesにインポートします。次に、証明書をTrusted Publishersにインポートします。これを行うときにエラーは発生しません。Authority Cert とその機関によって署名された Cert の両方をインポートするとき、.pvk ファイルを参照しません。秘密鍵が証明書または機関証明書のいずれかに埋め込まれていることは理解しています。各証明書を作成するために使用するコマンドは次のとおりです。
-ss root を使用したことに注意してください。-ss My を使用した多くの投稿を見てきました。違いが何であるか、または各値を使用するのが適切な場合はよくわかりません。
私の WCF サービスは、マネージド サービス (Windows サービス) 内のこのマシンで実行されます。WCF サービスをホストする Windows サービスを開始すると、すぐにクラッシュし、イベント ビューアーに一般的なエラーが報告されます。
System.ArgumentException: 証明書 'CN=TempCertName' に鍵交換が可能な秘密鍵がないか、プロセスに秘密鍵へのアクセス権がない可能性があります
サービスを実行しているユーザーにキーへのアクセス許可を付与する必要があるという投稿を見つけました。
これは、stackoverflow でよくある回答のようです: Grant access with All Tasks/Manage Private Keys
しかし、すべてのタスク/秘密鍵の管理のオプションがありません
しかし、私はそれを行う方法が明確ではありません。また、サービスは、管理者であり、証明書をインストールしたのと同じユーザーでもある私のドメイン アカウントで実行されています。
助けてください :)
silverlight-4.0 - フォーム認証Cookieの有効期限に関するSilverlight4の発生イベント
フォーム認証Cookieの有効期限が切れたときにSilverlightでイベントを発生させる方法に困惑しています。すぐにアプリケーションをログイン画面にリダイレクトしたいのですが。Webサービスの呼び出しが失敗するまで待つことはできますが、データを入力した後にユーザーをログインにリダイレクトすることは、カスタマーエクスペリエンスが悪いと思います。
wcf - クライアントを作成していない場合、WCF サービスのユーザー名とパスワードを取得するにはどうすればよいですか?
ユーザー名とパスワード認証を必要とする WCF サービスを作成していますが、サービスにアクセスするクライアントを作成する責任はありません。そのため、ユーザー名とパスワードにアクセスする方法がわかりません。例を挙げると、テスト時にサービスを作成してから、クライアントをインスタンス化するテスト アプリケーションを作成し、ユーザー名とパスワードを次のように設定します。
クライアントのユーザー名とパスワードをヘッダーで取得する必要がありますか? たぶん、WCF にはこのための何かが用意されているのでしょうが、私はまだそれを理解していません。さらに明確にする必要がある場合は、喜んで投稿を編集します。
c# - ユーザー名/パスワード資格情報を php クライアントから自己ホスト型 wcf サービスに渡すにはどうすればよいですか?
2 つの数値を追加して値を返す自己ホスト型の wcf サービスがあります。正常に動作しますが、php クライアントを介してユーザー名とパスワードを送信する方法がわからないため、CustomUserNamePasswordValidator に対して検証します。Add メソッドの実装は次のとおりです。
ここに私の現在の App.Config があります:
私は次のようにサービスを開始しています:
PHPクライアントの場合、私はやっています:
上記は認証なしで正常に動作しますが、phpclient からユーザー名とパスワードを認証できるようにしたいと考えています。彼らが私のサービスにアクセスしようとするとき、現在次のように定義されている UserNamePasswordValidator のオーバーライドされた Validate メソッドを使用して、ユーザー名とパスワードを検証する必要があります。
ユーザー名とパスワードの例として、 test と test を使用しています。動作構成の変更を設定し、バインディング構成を行う必要があることはわかっています。そのため、サービスは CustomUserNamePasswordValidator を使用しますが、PHP を知らないため、php から wcf サービスに資格情報を送信する方法がわかりません。認証情報が送信されると、wcf サービスで設定する方法がわかりません。私は wcf サービスを作成していません。client.ClientCredentials.UserName.UserName
と ができると思っていclient.ClientCredentials.UserName.Password
ましたが、これは私が作成していない .NET クライアントを作成している場合のみです。
私が持っていた別の質問は、クライアントが php クライアントの場合、basicHttpBinding だけに制限されているのでしょうか?
また、理想的には、php クライアントから wcf サービスに SOAP リクエストを送信することを望んでいるので、誰かが私を正しい方向に向けることができれば、それは素晴らしいことです。
私はちょうど次のことを試しましたが、うまくいきませんでした(Addが呼び出されましたが、認証されませんでした)
更新: 私の PHP Soap Client の初期化は次のとおりです。
上記を実行することで、リクエストに次の内容が追加されました。
ただし、コンソール アプリでホストされている私の wcf サービスは、この承認を取得していません。ユーザー名の test とパスワードの test のハードコードされた値を持つカスタム ユーザー名バリデーターがありますが、「test2 "ログインのために、まだメソッドを呼び出しています。TransportWithCredentialOnly と Message="UserName" を使用しています
wcf - WCF サービスへの認証
これを行う方法についてはたくさんのリソースがあるようですが、やりたいことを正確に行うためのリソースを実際に見つけることができませんでした. ユーザーが何かを実行できるように認証する必要がある WCF Web サービスを作成しようとしています (メソッドの呼び出し、WSDL の参照など)。認証は、LDAP サーバーに接続するために作成するカスタム ピースです。クライアントがリクエストごとに再認証する必要がないため、フォーム認証を使用したいと思います。クライアントが将来のリクエストのために送り返すことができる Forms Auth チケット Cookie をクライアントに送信するだけのサービスが欲しいです (モバイルアプリなどの Cookie をサポートしていないクライアント環境では、これを無視しても問題ありません)。でも、サービス側では、フォーム認証だけを使用して簡単に検索できる、ユーザーの認証グループのキャッシュされたコピーを保持する各ユーザーのデータをメモリに格納できる必要があります (LDAP サーバーへの繰り返しの呼び出しを避けるため)。チケット。私は WCF とフォーム認証にかなり慣れていないので、「単純な」ことをスキップしないでいただければ幸いです。ありがとう!
wcf - PHP Soap Clientを介してログインとパスワードを送信しても、WCFサービスホストによって取得されませんか?
私は次のようなPHPSoapClientをインスタンス化しています。
上記でこれを行うと、リクエストには次のものが含まれます。
Authorization: Basic dGVzdDI6dGVzdA==
しかし、上記は私のCustomUserNamePasswordValidatorによって取得されていません。コンソールアプリでWCFサービスを実行しているだけなので、サービスホストでクライアントクレデンシャルを設定する方法がわかりません。基本HTTPとMessage="UserName"でTransportWithCredentialOnlyを使用しています。私のCustomUserNamePasswordValidatorは、ユーザー名とパスワードとしてtestとtestを受け入れるようにハードコーディングされていますが、test2をSoapClientに渡しても、操作は成功します。