问题标签 [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 回答
359 浏览

c# - WCF 配置

我们在服务器端使用basicHttpBinding托管 WCF 服务,

WCF 服务托管在 Windows xp sp3 和 IIS 5.1 中,启用了匿名访问。
如果我想访问 .net 2.0 桌面应用程序上的 WCF 服务。
我需要做什么配置,带有示例代码?

谢谢
nrk

0 投票
1 回答
1925 浏览

c# - WCF 安全模型实现

我有一个 Web 服务,现在我想为此实现安全模型,你能建议我一些关于在服务和客户端上实现安全性的教程吗?我尝试了 OAUTH,但是关于服务的实现细节并不多,在少数博客中都有严格的客户端实现细节。请指出我可以了解安全实施的一些相关内容。我在我的 WCF 服务中使用 WebHttpBinding,它是用 C# 编写的。

0 投票
3 回答
1845 浏览

wcf - 是否可以破解 WCF 客户端以在不使用 SSL 的情况下传递消息凭据?

不久前,我编写了一个自定义 WCF 绑定,以允许我的负载平衡场通过 IIS 托管服务。自定义绑定的原因是每个服务器都没有 SSL,但需要能够接受用户名 + 密码的客户端凭据。此场前面的代理具有 SSL,因此流量将在防火墙外加密。此自定义绑定工作正常,但现在我需要在本地查看来自我的机器的流量,并希望在不使用 SSL 的情况下执行此操作。

问题是这样的——在.net客户端上,如果我设置我的安全模式=“TransportWithMessageCredential”我必须有SSL,否则我会得到有趣的错误“无效的方案,预期的https”

是否可以为客户端编写一些自定义内容以“忽略”缺少 SSL 但仍然让我通过 SOAP 标头传递用户名 + 密码?

0 投票
1 回答
1095 浏览

wcf-security - Internet 上的 WCF 身份验证

我有一个使用 basicHTTP 绑定的 WCF 服务。该服务的目标是在运行 IIS 7.0 且不在 Active Directory 域中的 Windows Server 2008 64 位上的 DMZ 环境中部署。

业务合作伙伴将通过具有 SSL 保护的 Internet 访问该服务。最初,我构建了服务以使用带有 wsHTTPBinding 的 x.509 消息身份验证,在遇到很多问题后,我决定备份并使用带有 UserName 身份验证的 basicHTTP。

结果:与我在证书模式下收到的完全相同的、晦涩的错误消息。

该服务在我们的域内使用完全相同的身份验证完美运行,但一旦我将其移动到 DMZ,我就会收到一条错误消息:“收到来自另一方的不安全或不正确安全的故障。有关故障代码,请参阅内部 FaultException和细节”。

内部异常消息是:“验证消息的安全性时发生错误。”

带有绑定配置的服务的 web 配置如下:

得到错误的测试客户端的配置:

如前所述,该服务在域上完美运行,而生产 IIS 框不在域上。我已经调整和拉出我的头发 2 周了,但似乎没有任何效果。如果有人可以提供帮助,我将不胜感激。甚至建议解决身份验证问题。我宁愿不使用自定义身份验证方案,而是使用内置的 SOAP 功能。

凭据通过代理传递,即 proxy.ClientCredentials.UserName.UserName 和 proxy.ClientCredentials.UserName.Password 是测试环境中内部域上的有效帐户以及 DMZ IIS 框上的机器帐户。

0 投票
1 回答
135 浏览

wcf - WCF 测试我可以使用临时生成的证书吗?

如何在 windows xp sp3 中为 IIS 5.1 生成临时证书,以便在https中使用 basicHttpBinding 托管 WCF 服务?

它对本地 https 环境中的测试有效吗?

谢谢
nRk

0 投票
1 回答
620 浏览

c# - 使用 Java 客户端在 WCF 中进行会话处理

如果使用服务的客户端不是 WCF 客户端而是 Java 客户端,那么在 WCF 服务中实现会话处理的最佳方法是什么?是否可以使用集成服务模型?

谢谢!
多米尼克

0 投票
0 回答
1043 浏览

wcf-security - 如何正确使用 WCF 中的 DisplayInitializationUI 提示用户提供凭据以在不同域中进行身份验证和使用 Web 服务?

我有一个连接到一组 WCF Web 服务的 WPF 客户端。我们有一个 Dev、Test、Volume 和 Production 域,每个域的服务器上都有可用的服务。域没有信任关系。

目标是让客户端连接任何其他域的服务。如果客户端和服务器在同一个域中,则应发送默认网络凭据以进行身份​​验证/授权。如果服务器位于不同的域中,那么它应该向用户询问凭据,这与 Internet Explorer 在访问具有集成安全集的不同域中的站点时所做的方式非常相似。

目前,我正在尝试通过在为我的服务创建 ClientBase 实例时设置 DisplayInitializationUI() 来获取客户端凭据。

ClientCredentialsEx 类。

ShowCredentialUI 类实现 IInteractiveChannelInitializer。类的业务端是BeginDisplayInitializationUI方法;

问题是当我调查 iis 日志时,从未发送过凭据。我怀疑我遗漏了一些重要的东西。有没有人成功实施过类似的场景?有没有更简单的方法来实现这一点?

谢谢阅读!

0 投票
1 回答
4100 浏览

wcf - WebHttpBinding 安全问题

我创建了一个 RESTful 服务并实现了身份验证。它接受用户名和密码,然后授予对所请求服务的访问权限。它工作正常。现在我想在我的服务之上使用 SSL。为此我创建了证书,然后在 IIS 中我提供了所需的设置。但是我的服务不起作用。我正在使用 webHttpBinding。

我在服务端的 Web.Config 是:

在我的客户端 app.config 我有

当我尝试运行客户端时,它说提供的 URI 方案 Https 无效,需要 http。

此外,当我尝试从 VS2008 调用 Web 服务时,它显示“找不到与具有绑定 WebHttpBinding 的端点的方案 https 匹配的基地址。注册的基地址方案是 [http]。”

如果我尝试从 IIS 运行 Web 服务,它会显示“找不到与绑定 WebHttpBinding 的端点的方案 http 匹配的基地址。注册的基地址方案是 [https]。”

我试过谷歌搜索并尝试了所有建议的东西,但没有成功。请帮忙。

提前致谢, 塔拉·辛格

0 投票
1 回答
7178 浏览

wcf - 如何以编程方式关闭 WCF 中的安全性

过去两天我一直在使用 WCF,并且在我的开发机器上的服务器和客户端都运行良好。现在我正在尝试在网络上的另一台机器上对客户端进行一些分布式测试,我开始遇到问题。现在我得到的错误是:

由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action ' http://tempuri.org/IWindowUpdateContract/UpdateWindowFrames ' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。

由于这已经是一个巨大的学习经验(我之前没有做过任何远程处理、RPC 等)我想继续开发学习工具并在我完成后重新审视安全性(我无意构建任何实际上会在没有适当的安全最佳实践的情况下使用)。

笔记:

  • 我没有为 WCF 设置配置文件 - 我正在以编程方式进行所有操作。
  • 我的网络不是域的一部分,因此默认安全设置对我不起作用(使用 net.tcp)。
  • 我正在使用“.Net 3.5”。

我的服务器是这样创建的:

我的客户是这样创建的:

我的合同(只是在作为对客户端和服务器的引用添加的类库中)是:

我觉得我所做的绑定和合同设置应该使它们相同并且我不应该有这个问题(并且应该关闭安全性)。我只是不知道现在该去哪里。

0 投票
1 回答
1300 浏览

wcf - 将 IAuthorizationPolicy 与 WCF 和 Castle-Windsor 一起使用时遇到问题

我目前正在使用 Castle-Windsor 和 WCF 设施来注入我所有的 WCF 服务。我刚刚开始使用 custom 添加权限要求IAuthorizationPolicy,这在服务上按方法完成时似乎可以工作,但是当服务类本身被标记为要求时,我会抛出异常。

我已经根据How To – Use Username Authentication with Transport Security in WCF from Windows Forms 中的示例进行了设置。我没有设置自定义 HTTP 模块类,因为我使用的是现有Membership实现。我的IAuthorizationPolicy实现 ( HttpContextPrincipalPolicy) 基本相同。

我的重要部分Web.config是:

当我对方法提出要求时,一切似乎都正常。这样做是这样的:

如果这是在一个OperationContract方法上,事情会按预期工作。但是,如果它被移动到类本身(实现ServiceContract)我得到以下异常(大部分额外的东西被删掉了):

我已经调试并发现构造函数 onHttpContextPrincipalPolicy被调用但Evaluate()不是当需求附加到类时。当它附加到正在调用的方法Evaluate() 时。所以在这一点上,我已经达到了我的新手 .NET/WCF/Castle-Windsor 技能的水平。

有没有办法告诉 Castle-Windsor 在尊重IAuthorizationPolicy? 或者告诉 WCFEvaluate()需要调用来创建类?或者是否有其他方法可以围绕 WCF 做同样的事情?我不想用完全相同的属性声明位标记每个方法。