问题标签 [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 投票
3 回答
52438 浏览

wcf - 无法使用 WCF 调用具有基本身份验证的 Web 服务

我得到了一个用 Java 编写的 Web 服务,但我无法对其进行任何更改。它要求用户使用基本身份验证进行身份验证才能访问任何方法。在 .NET 中与此服务交互的建议方法是使用安装了 WSE 3.0 的 Visual Studio 2005。

这是一个问题,因为该项目已经在使用 Visual Studio 2008(面向 .NET 2.0)。我可以在 VS2005 中做到这一点,但是我不想将项目绑定到 VS2005,或者通过在 VS2005 中创建程序集并将其包含在 VS2008 解决方案中来实现(无论如何,这基本上将项目与 2005 联系起来,以便将来对程序集进行任何更改)。我认为这些选项中的任何一个都会迫使新开发人员安装 WSE 3.0 并阻止项目在未来使用 2008 和 .NET 3.5 中的功能……也就是说,我真的相信使用 WCF是要走的路。

我一直在研究为此使用 WCF,但是我不确定如何让 WCF 服务了解它需要与每个请求一起发送身份验证标头。当我尝试对 Web 服务执行任何操作时出现 401 错误。

这就是我的代码的样子:

这将运行并抛出以下异常:

HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“基本领域=领域”。

这有一个内部例外:

远程服务器返回错误:(401) Unauthorized。

任何关于可能导致此问题的想法将不胜感激。

0 投票
2 回答
1575 浏览

wcf - 为什么没有将 Identities 属性传递给我的自定义 IAuthorisationPolicy?

我正在尝试设置一个自定义 IAuthorisationPolicy,我可以将其提供给 ServiceAuthorizationBehaviour 以安装我自己的 IPrincipal 实现。我已按照此处的说明进行操作,并编写了一个测试来验证这在使用 NetNamedPipes 绑定进行自托管时是否有效。

问题是,当我尝试在 IIS 下使用托管时,未在传递给我的 IAuthorisationPolicy 的评估上下文中设置 Identities 属性(而在自托管时是这样)。

以下是我的配置文件的摘录:

(请注意,我正在通过代码配置 ServiceAuthorisationBehavior,这就是它没有出现在这里的原因)

知道为什么我没有通过 Identities 属性吗?

我的 IAuthorisationPolicy 看起来像这样:

0 投票
1 回答
267 浏览

.net - WCF 安全 - 数据源安全

我在 WCF 中实现了一个 Web 服务。此服务只会被单个客户端调用,即具有静态 IP 地址的站点。我想实现简单的安全性,以验证对服务的所有调用仅在来自此特定静态 IP 时才有效。

做这个的最好方式是什么?

0 投票
1 回答
1327 浏览

wcf - 使用消息安全性时的 WS-Security 开销

以下是 Microsoft 服务跟踪查看器中记录的消息。我相信它代表了对 WCF 服务(使用 WsHttpBinding)具有整数返回值的无参数方法的一次调用。我正在使用消息级安全性(使用用户名凭据)并创建了一个开发服务器证书以使其正常工作。我对标题中的开销感到困惑。有没有人见过这个?我什至不确定我是否正在寻找正确的东西。我计划在每次调用时都使用它,我希望减少对同一服务的后续方法调用的开销,但似乎并非如此。

我很想Login()通过 SSL 创建一个方法,而不是验证用户并返回一个 GUID,该 GUID 将被传递以验证后续请求,每个 GUID 都有一个过期策略等。直觉上我认为这可能是一个坏主意,但我是安全的假的,所以我不确定。

任何建议表示赞赏。

0 投票
1 回答
3520 浏览

wcf-security - 从现有的 nettcpbinding 在 WCF 中创建自定义绑定

谁能告诉我如何创建一个自定义绑定,该绑定从 WCF 中的以下内容中重现完全相同的行为?

我发现的所有谷歌解决方案似乎都出于某种原因而不起作用。我找到了很多关于 httpTransport 的解决方案,但很少有关于 nettcptransport 的解决方案。

上面的配置目前正在运行,但我需要修改 maxClockSkew,而完成此操作的唯一方法是使用自定义绑定。

在此先感谢,布赖恩

0 投票
1 回答
1348 浏览

wcf - WCF 通过所有服务调用传递额外的安全数据

客户端我需要将一条信息(对于这个例子让我们说一个字符串)传递给我所做的每个服务调用。服务使用此字符串 (currentRole) 以及用户/通行证凭据来检索与其当前角色相关联的用户声明集。

到目前为止,我遇到的解决方案是:

1)修改从客户端发出的消息头,并验证消息头在服务端。

2)使用自定义凭据,据我了解,该凭据还需要自定义安全令牌来存储字符串。

我还缺少其他方法吗,例如将该信息添加到现有令牌/凭证中?上面提到的解决方案有什么优点/缺点吗?

谢谢。

0 投票
3 回答
4747 浏览

c# - 以编程方式安装证书吊销列表 C#

我正在使用 C#/WCF。我有一个应由客户端调用的 Web 服务。这是服务定义:

这是绑定:

如果我理解正确,从服务器发送到客户端的消息是用证书加密的。目前我仍在使用开发人员证书。我在服务器上创建了一个根证书、一个证书吊销列表和一个密钥。

我正在使用 Windows Installer 安装客户端,并且我有一个自定义安装操作来安装证书。

以下代码显示了如何将证书添加到存储区

我现在有两种行为:安装证书有效,但是当我调用 Web 服务时,我得到一个SecurityNegotiationException. 当我手动添加证书吊销列表时,与服务器的通信正常。当我尝试以编程方式执行此操作时(请参见上面的代码),它不起作用。我收到“找不到请求的对象”异常。

我尝试使用不同的商店但没有成功。

我有两个问题:a) 为什么我需要客户端上的 CRL?b)如果我需要它,如何以编程方式安装它?我上面的错误在哪里?

谢谢你的帮助,凯

0 投票
4 回答
18489 浏览

wcf - WCF - 在 net.tcp://..../Querier.svc 上没有可以接受消息的端点侦听

WCF - 在 net.tcp://myserver:9000/SearchQueryService/Querier.svc 上没有可以接受消息的端点侦听。

我在 IIS 应用程序上启用了 net.tcp 协议

Windows 防火墙已关闭

整个 IIS 应用程序的 net.tcp 绑定设置为端口 9000。

我的 web.config 非常标准:

而且这种设置适用于一台服务器,但不适用于另一台服务器......可能是什么问题?

两台服务器,工作和非工作的服务器都在运行 IIS7。唯一的区别是工作盒是 Vista64 Sp2 和非工作盒是 W2k864。

0 投票
2 回答
372 浏览

silverlight - 如何限制对启用 Silverlight 的数据服务的访问?

我们有一个我们编写的 Silverlight 应用程序,它调用启用了 Silverlight 的数据服务。Silverlight 应用程序不需要登录,因为它需要向未经身份验证的公众提供数据。

我们有一些 schmoe 花时间检查我们的 Silverlight 应用程序,以一种或另一种方式找出它正在调用的服务,然后编写他自己的客户来窃取数据,以便他可以将其发布到他的网站上并假装它是他的。我们需要防止这种情况。

如何以某种方式限制我的数据服务以仅接受来自我的 silverlight 应用程序的请求?我尝试使用 clientaccesspolicy.xml 文件中的allow-from 域 uri设置来限制仅从 silverlight 应用程序所在的域(例如 mydomain.com)访问服务。但这绝对没有做任何事情,并且该服务仍在为来自域外的客户端提供请求。(我通过将我的 SL 应用程序放在我们控制的不同域上来测试这一点)。

限制数据服务以使只有我们的应用程序可以使用它的正确/最佳/最有效的方法是什么?谢谢!!!

我正在使用 SL 3 和 .NET 3.5。

0 投票
1 回答
262 浏览

wcf - WCF 自定义 UserNameValidator - 这是在何时何地在通道模式下添加的?

在完成 UserNamePassword 验证之前,我需要访问服务上的 EndPoint。我有一个自定义的用户名密码验证器。在此身份验证之前,我需要访问端点。我尝试实现 messageinspector、iservicehbevaior 等,但它们似乎只有在 UserNamePassword 验证后才会被击中。在 UserNamePassword 验证之前是否有任何可扩展点允许我访问 EndPoint?