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

wcf - 我可以为 WCF 服务设置 IP 过滤器吗?

我正在修改我的 WCF API 以包含一项仅应向内部 IP 地址公开的新服务。我的 API 中的所有服务都以 SOAP、POX 和 JSON 的形式提供。我正在寻找的是一种行为或某种东西,它允许我实现一个简单的 IP 地址过滤器,处理来自内部 IP 的请求并拒绝其他一切。我希望它在配置中工作,因为 API 中的所有其他服务都应该对 Internet 可用。我做了一些谷歌搜索,但在 WCF 中找不到类似的东西。我错过了什么吗?

0 投票
2 回答
4280 浏览

wcf - 使用 BasicHttpSecurityMode.Transport 自定义 X509CertificateValidator?

是否有一种简单的方法可以将自定义 X509 证书验证与 BasicHttpBinding(或 CustomHttpBinding 用于同一问题,这将实现仅传输安全性)联系起来?

EDIT1:我在代码中添加了一个 ServerCertificateValidationCallback 以显示它也不会启动

这是我正在尝试做的事情:

1)编写自定义 X509CertificateValidator:

2)创建主机:

3)创建WCF客户端:

身份验证工作正常,但MyX509Validator.Validate()永远不会被调用。我怀疑X509CertificateValidator这只适用于消息安全,而不适用于传输。那正确吗?我可以做些什么来覆盖传输级证书验证吗?

0 投票
1 回答
1650 浏览

wcf - 每个经过身份验证的 WCF 客户端连接是否都需要 CAL?

就像标题所说的那样。您开发的与 WCF 服务器的每个经过身份验证的 WCF 客户端连接是否都需要 Windows CAL?

http://www.microsoft.com/windowsserver2008/en/us/client-licensing.aspx

微软在该页面上的许可确实让它听起来很像,但我找不到任何可以证实甚至否认这一点的东西。

有人知道吗?

0 投票
1 回答
339 浏览

.net - 我应该如何为两个域之间的内部服务配置 WCF 安全性?

这是我的场景:

我计划在我们域之外的服务器上(在它自己的工作组中)运行 Windows 服务托管的 WCF 服务。我需要从我们域内的客户端安全地访问它。我们控制的两台机器之间有一个防火墙。

该服务不需要任何其他机器访问,实际上不应该接受来自指定机器以外的任何机器的连接。

通信需要加密。

我的问题是,为此目的最好的绑定、安全模式和身份验证方法是什么?我想使用 netTCPBinding 因为它是最有效的,但如果有另一个更适合这项工作,我愿意接受建议。

0 投票
1 回答
1329 浏览

wcf - WCF 架构

我正忙着设计一个 WCF 应用程序。该应用程序的目的是让保险会员通过网络访问他们的保险信息。

问题在于我们的网络架构,我不确定我必须使用哪种类型或组合的安全性。

在我们的内部网络中,我们有一个 UNIX 环境,我使用 EntireX .net 包装器访问它,我们有一个 Oracle 10g 数据存储,我通过企业库访问它。

我创建了一个包含业务对象的 BLL 和一个通过 Enterprise Library/EntireX 填充这些对象的 DAL。

我创建了一个带有 2 个 WCF 服务的 WCF 服务层,一个用于访问 oracle 存储,一个用于访问 unix,它们引用 BLL。

我将在防火墙内使用 SQL 2005 的生产服务器上的 IIS 中托管此服务。我们购买了一个我们正在为其创建 DMZ 的 Web 服务器,该 Web 服务器将仅通过端口 443 和/或端口 80 与生产服务器通信。我们公司的 Internet 将可以访问 DMZ 中的 Web 服务器。

表示层将是一个 ASP.Net 前端,它使用 Channelfactory 在代码中调用服务。我使用客户端必须向服务提供的 X509 客户端证书。该服务受 SSL 保护。前端将位于 DMZ 中的 Web 服务器上。

我正在使用带有传输安全性和 clientCredentialType="Certificate" 的 wsHttpBinding,它工作正常,但我想将登录信息传递给服务。我想把它添加到邮件标题中。

现在,我正处于怀疑我的设计可行性的阶段。有人可以给我一些关于在这种情况下我必须使用什么绑定和安全性、如何传递登录信息以及我必须在我的演示层中拥有什么才能最安全的提示。我们可以控制哪些端口将通过防火墙打开到内部生产服务器。我们将只有 1 个 ASP.Net 客户端托管在 DMZ 的 Web 服务器上,但只有 HTTPS 或 HTTP 访问生产服务器。

非常感谢瑞恩

谢谢

0 投票
1 回答
477 浏览

wcf-security - 基于 Web 服务调用的 DB 连接的安全上下文

如果我有一个在用户上下文(例如 DOMAIN\StandardUser)下运行的应用程序(在 C# 上)调用 Web 服务,该 Web 服务工作进程在不同的上下文(例如 DOMAIN\WebServiceUser)下运行,并且该 Web 服务连接到 SQL 数据库,数据库从哪个用户上下文连接,StandardUser 还是 WebServiceUser?

谢谢,

0 投票
1 回答
1406 浏览

.net - wsFederationHttpBinding,将自定义用户身份传递给 STS

我正在尝试实现以下场景:

  1. 客户将其凭证传递给 STS。
  2. STS 应用自定义 AuthorizationPolicy 来确定可供特定用户使用的声明集并颁发安全令牌。
  3. 客户端将令牌传递给业务服务,业务服务根据他们从令牌中获得的声明集来确定用户的权限。

看起来第一步是主要问题。正如MSDN建议的那样,wsFederationHttpBinding 的消息元素没有 clientCredentialsType。因此,每当我的 AuthorizationPolicy 检查 evaluationContext.Properties["Identities"] 时,它都会在其中看到 WindowsIdentity。我想针对自定义存储(DB)对用户进行身份验证。

有没有办法用 wsFederationHttpBinding 来完成它?

0 投票
3 回答
1732 浏览

wcf - WCF、安全和证书

我有一个客户端/服务器 WCF 应用程序,它需要对数据库进行某种用户身份验证。该应用程序(客户端和服务器一起)正在开发中,以出售给数十个客户,以在他们的 Intranet 上使用。我们不太担心加密通过网络传输的大部分数据,当然在身份验证期间除外。

考虑到 WCF 安全性,我不断回到我们应该使用 x509 证书的想法。但是,我们的客户肯定不想知道必须申请、购买和安装这些证书的任何细节。

我首先想知道在这种情况下实现用户名/密码身份验证的首选方法是什么。如果需要使用证书,客户必须向受信任的 CA 申请自己的证书,还是我们作为软件提供商可以生成证书供客户使用?

真的,我正在寻找一种最佳实践,对我们的客户的摩擦最小。

谢谢!

编辑: 我正在使用 NetTcpBinding,并且我的服务器作为 Windows 服务运行。

0 投票
3 回答
29613 浏览

wcf - 使用 WCF 连接到使用用户名/密码进行身份验证的 WebService

我使用 Visual Studio 2008 创建了一个 Web 服务代理,它在 app.config 中为我创建了以下条目:

该网络服务具有用户名/密码身份验证,因此我需要在此处添加它。

我有点迷失在 WCF 文档的海洋中,我想我必须从 basicHttpBinding 更改为 wsHttpBinding 或 customBinding 才能添加身份验证元素,但我不太了解。任何人都可以提供任何快速提示或任何有用的链接来说明如何这样做吗?

编辑:

我将安全部分更改为:

并在代码中添加:

现在看来它可能正在使用凭据,但它给了我错误:

提供的 URI 方案“http”是无效的 URI 应为“https”

我什至不知道这是否是正确的方法......

0 投票
3 回答
2742 浏览

.net - 使用传输安全和证书的 WCF 服务出现 SSL 错误。验证

我不知道这是否是更适合 Serverfault.com 的问题,真的取决于答案,但我已按照.NET C# 中的本教程在“wsHttpBinding”(传输安全和证书身份验证)下设置 WCF 服务,我已经使用此处描述的方法创建了一个测试开发证书,并且我还在 IIS 的绑定中配置了我的 HTTPS 443 端口。

每一步一切都运行得很好,但是我在创建的示例“Hello World”服务中收到一个错误(同样,所有内容都是通过我首先声明的 MSDN 教程链接进行的)点击https://vd1/WcfWsHttpBindingTest/Service.svc(VD1 是我的本地计算机名称) :

我已经按照说明安装了我的服务器证书客户端证书,并且已经在 IIS 中配置了这两个教程;此外,如果我否定“https”并仅使用“http”,我会收到 403.4 Forbidden,说明我正在尝试访问已使用 SSL 保护的页面,所以我很确定它的那一面正在工作。

有什么想法吗?
我没有偏离教程,我正在运行 IIS 7.0 和 Vista Business。

如果有人可以通过为我提供更好的教程链接来使用 wsHttpBinding 配置服务来从头开始,这甚至会有所帮助。

**如果有人看过我最初的帖子,您会注意到我关闭了我的答案,因为它已经演变为上述问题**