問題タブ [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.

0 投票する
2 に答える
9488 参照

wcf-security - クレームベースのセキュリティの実装(WCF / ASP.NET)

クレームベースのセキュリティ(またはフェデレーションセキュリティモデル)のトピックについて調査した後。CardSpaceを例として使用する多くの例に出くわしました。私が読んだ主な記事は、この主題について非常に優れた説明を提供しており、 Zermattと呼ばれるフレームワークに関するMicrosoftのPDFでした。

私が調査しているクレームベースのセキュリティアーキテクチャは、STS認証ブローカーをSTS承認ブローカーと組み合わせて実装するのと同じです。このように、新しいサービスを作成するときに必要なのは、サービスが承認ブローカーによって発行されたクレームのみを受け入れるようにすることだけです。また、記事に記載されているように、Authorization Brokerは、AuthenticationBrokerによって発行されたクレームのみを受け入れます。

それが設定されると、クライアントが新しいサービスを使用しようとするときはいつでも、認証ブローカー で認証し(認証されたクレームを発行)、次に 承認ブローカー で承認される(承認されたクレームを発行する)必要があります。

これはすべて問題なく、ダンディであり、アーキテクチャは明確ですが、STSを実装する方法が正確にはわかりません。前述したように、Web上のほとんどの(すべてではないにしても)例はCardSpaceの使用方法を示していますが、認証スキームをバックアップするデータベースがある場合、それは正確には機能しません。

サンプルシナリオ

代替テキストhttp://img512.imageshack.us/img512/8329/claimsbasedsecurityza6.jpg

0 投票する
3 に答える
1855 参照

asp.net - WCF セキュリティ - わからないことのリスト

私は WCF とセキュリティに関してサークルを回っているので、ここでたくさんの質問を押し付けて、誰かが私が明確なイメージを得るのを手伝ってくれることを願っています.

  1. Transport と Message レベルのセキュリティの分かりやすい英語の説明を教えてください。

  2. Windows資格情報に基づいてユーザーを認証するSSLで実行されているサービスがあると思います。また、PrincipalPermission を介してサービス メソッドへのアクセスを制限する方法も理解していると思います。しかし、現在の IPrinciple を実際に取得するにはどうすればよいのでしょうか。サービスを呼び出している人に応じて異なる結果を返すことができます。

  3. トレースをオンにする方法を理解しました。「Microsoft Service Trace Log Viewer」を使用してトレース ログを表示できますが、何が表示されているかを理解できれば、どうしようもありません。このことを使用する方法を説明するまともなリソースはありますか?

  4. 「証明書」clientCredentialType を使用する場合、これは SSL とは異なりますか?

  5. 「Windows」clientCredentialType を使用する場合、どの Windows ユーザーが通過しているかを確認するにはどうすればよいですか?

  6. 私の要件は、basicHttpBindings を使用する必要があることを意味します。

    • トランスポート レベルのセキュリティしか利用できませんか?
    • このバインドにカスタムのユーザー名/パスワードを実装できませんか?

これらの質問はばかげているように思えるかもしれませんが、明確化の助けがあれば本当に役に立ちます.

編集:

  1. .asmx サービスと同様の方法でカスタム SOAP ヘッダーをサービスに追加するにはどうすればよいですか? これは有効なアプローチですか?

編集:

上記の質問に加えて、Active Directory をチェックすることにより、Windows ユーザーに基づいて Windows モバイル デバイスを認証できるかどうかを知りたいです。私がこれまでに見つけたすべてのことについて、それはありそうにないようです。

注: WCF の Windows CE のバージョンで何が利用できるかを知らない人のために: トランスポート レベルのセキュリティのみ、およびクライアント資格情報の種類に対してなし/証明書のいずれか。したがって、CE の WCF はデフォルトでこれを許可していないようですが、この情報をメッセージで (メソッド署名を介して) 安全に送信できますか? これは、この種の情報を送信する受け入れ可能な方法でしょうか?

0 投票する
2 に答える
3761 参照

asp.net - Asp.netがサーバー2008のwcfサービスに対して認証されていない

Windows Server2008上のIIS7にWebサイトを展開するのに苦労しています。同じホストでホストされているWCFサービスを呼び出そうとするまで、サイトは正常に機能します。

まったく同じWeb構成などを使用してVisualStudio20008でWebを実行すると、ワークステーションからのサービスですべてがうまく機能します。サーバーBamの仮想ディレクトリにWebを展開するとすぐに。認証エラー。また、両方がWindows2003Serverに展開されている場合もそのまま機能します。これを引き起こしているServer2008の違いは何ですか?ヘルプ!お願いします。

重要な場合、すべてのサービス操作には、ASP.netページの認証済みユーザーのActive Directoryグループメンバーシップが必要であり、次のように装飾されます:[PrincipalPermission(SecurityAction.Demand、Role = "SOAMemberShipService")]

Webサイトから次のエラーが発生します。

認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.ServiceModel.FaultException:認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。

ソースエラー:

行919:
行920:public HSMembersService.MemberSearchResult SearchMembers(HSMembersService.MemberSearch MemberInfoToSearch){行921:return base.Channel.SearchMembers(MemberInfoToSearch); 922行目:} 923行目:}

ソースファイル:c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ a6d0910d \ App_WebReferences.jgx1svpr.0.cs行:921

スタックトレース:

[FaultException:認証に失敗したため、セキュリティトークンの要求を満たすことができませんでした。] System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(メッセージメッセージ、EndpointAddressターゲット)+6375432 System.ServiceModel.Security.IssuanceTokenProviderBase`1.ThrowIfFault(メッセージメッセージ、 EndpointAddressターゲット)+25 System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(メッセージincomingMessage、SspiNegotiationTokenProviderState sspiState)+173

[SecurityNegotiationException:呼び出し元はサービスによって認証されませんでした。] System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg、IMessage retMsg)+4596611 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData、Int32 type )+1713 HSMembersService.IHSMembersService.SearchMembers(MemberSearch MemberInfoToSearch)+0 HSMembersService.HSMembersServiceClient.SearchMembers(MemberSearch MemberInfoToSearch)in c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ csrweb \ a4d18657 \ App_WebReferences.jgx1svpr.0.cs:921 _default.btnSearch_Click(Object sender、EventArgs e)in e:\ CSRWeb \ default.aspx.cs:114 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+131 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+140System.Web.UI。Page.RaisePostBackEvent(IPostBackEventHandler sourceControl、String eventArgument)+39 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+3215

ASP.net Webサイトのweb.config(関連するサービス部分):

サービスweb.config:

0 投票する
1 に答える
8506 参照

wcf-security - WCF System.ServiceModel.Security.SecurityNegotiationException

別のサーバーからサービスを呼び出そうとすると、次のエラー メッセージが表示されます。

クライアントをサーバーに接続しようとしたときのイベントビューアーで。

サーバーでトレースを有効にしましたが、次のようになります

System.IdentityModel.Tokens.SecurityTokenValidationException投げられています。メッセージには、「このサービスでは、匿名でのログオンは許可されていません」と書かれています。

IIS -> WCF Web サイトを確認しましたが、「匿名アクセスを有効にする」が有効になっています。

私は何が欠けていますか?

0 投票する
5 に答える
14536 参照

wcf - 「構成で指定された X.509 証明書 ID を読み込めません」

証明書 (ルート認証局、ルート認証失効リスト、サービス証明書 - その PK を含む) を含めて、動作中の WCF サービスを開発環境から QA 環境に転送しました。

その後、「FindPrivateKey」を使用して秘密鍵を見つけ、すべての関連アカウントに、ファイル システム レベルで秘密鍵ファイルにアクセスするための完全なアクセス許可を与えました。

アプリが Unhandled Exception: System.InvalidOperationException: Cannot load the X.509 certificate identity specified in the configuration でクラッシュします。

私は困惑しています、私はすべてをカバーしたと思いますが、明らかにそうではありません...

これを Windows サービス ホストとコンソール アプリケーション ホストで試しました。同じ問題。

0 投票する
2 に答える
8923 参照

wcf - WCFカスタムバインディング-送信タイムアウトは常に到達

コールバックを実装し、IIS6.0でホストする必要があるwcfサービスがあります。IIS 6.0はnet.tcpバインディングをサポートしていないため、カスタムバインディングを使用することにしました。これは、サービスが異なるタイムゾーンの異なるクライアントによってアクセスされ、カスタムバインディングを使用して、許可されるクロックスキュー時間を他の値に設定できるためです。デフォルトのもの。

これが私のサーバー設定ファイルです:

クライアント構成ファイル:

サーバーとクライアントを同じマシンで使用すると、すべてが正常に機能します。それらを別のマシンで実行すると、次のエラーが発生します。

http://10.155.18.198:9000/e60ba5b3-f979-4922-b9f8-c820caaa04c2に接続できませんでした 。TCPエラーコード10060:接続されたパーティが一定期間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが10.155.18.198:9000に応答しなかったために接続の確立に失敗しました。

コミュニティの誰かがこの点で私を助けることができますか?

0 投票する
1 に答える
6808 参照

c# - WCF で発信者のホスト名を取得する

既存の Web サービスを WCF サービスに置き換えます。移行の最初のステップとして、年内にクライアントがアップグレードされるまで、BasicHttpBinding でエンドポイントを公開します。

Windows サービスを使用して新しい WCF サービスをホストする計画です (サービスはイントラネット内からのみ呼び出されるため、HTTP は実際には必要ありません)。段階。

ただし、Context.Request.UserHostName を使用してホスト名を取得している現在の Web サービス コードを見て、WCF サービスで呼び出し元のホスト名を取得するのに問題があります。発信者のユーザー名と IP アドレスを取得できましたが、環境内のすべての関連するアクセス許可/セキュリティ サービスは、IP ではなくホスト名を使用するため、サービス内でホスト名を取得する方法はありますか?

PS私はclientCredentialTypeをWindowsに設定して、セキュリティモードをTransportCredentialOnlyに設定しました

0 投票する
6 に答える
1819 参照

wcf - 運用中に保護される WCF エンドポイントの開発中に SSL 証明書を回避する方法

多数の WCF サービスを開発しています。リクエストはドメインの境界を越えます。つまり、クライアントは 1 つのドメインで実行され、要求を処理するサーバーは別の (運用) ドメインにあります。このリンクを SSL と証明書で保護する方法を知っています。本番ドメインのユーザー名とパスワードをユーザーに確認し、それらを SOAP ヘッダーで渡します。

私の問題は、開発と「ベータ」テスト中に何をするかです。一時的な証明書を取得して、開発中に使用できることを知っています。このアプローチの代替手段は何だろうと思っています。この状況で他の人は何をしましたか?

更新: 私の質問に対して「良い」回答が得られたかどうかはわかりません。私は大規模な開発チーム (50 人以上) の一員です。組織はかなり機敏です。開発者のいずれかが、WCF を使用しているプロジェクトに取り組むことになる可能性があります。実際、他のプロジェクトのいくつかは、似たようなことを行っていますが、Web サイトやサービスは異なります。私が探していたのは、誰でも参加してこの特定のプロジェクトに数日間取り組むことができる方法でした。開発証明書をインストールすることは、それらのフープの 1 つです。開発中に WCF 構造を "ドッグフーディング" することがベスト プラクティスであることを十分に理解しています。ほとんどの回答はそれを答えとして与えました。私は、どちらかといえば、それ以外の意味をなすものを知りたかったのです」

ジョン

0 投票する
2 に答える
8004 参照

c# - 独自のクライアントサーバーアプリケーションでSystem.IdentityModelを使用する方法

TcpClient/TcpListenerとSslStreamに基づく単純なクライアントサーバーアプリケーションがあります。クライアントは、X509Certificateを使用するか、SslStreamの確立後にユーザー名とパスワードを送信することにより、サーバーに対して自身を認証できます。

WCFは認証の目的でSystem.IdentityModel名前空間を使用しますが、これ任意のアプリケーションで使用できるようです。これは興味深いことです。ただし、これを行う方法に関する情報はまばらです(または私のGoogle fooは今日弱いです)。

したがって、私の質問は、System.IdentityModelをアプリケーションと統合するために何をする必要があるかということです。すべてのClaimSetが必要かどうかはわかりませんが、ユーザーがWindowsアカウントまたはその他の提供されている認証メカニズムを使用してログインできると便利です。(残念ながら、WCFに切り替えるだけでなく、カスタムプロトコルを使用する必要がありますが、必要に応じて変更を加えることができます。)