问题标签 [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.
php - 从 PHP Soap 客户端验证 IIS 托管的 WCF 服务?
我有一个托管在 IIS 7 中的 wcf 服务。我有一个 php soap 客户端,我想用它来访问这个服务。它工作正常,没有安全性,但我希望能够将用户名和密码从 php 客户端传递到 wcf 服务,并通过我的自定义用户名验证器对其进行身份验证。我不是 php 开发人员,所以我不知道如何将用户名和密码实际发送到服务并让自定义用户名和密码验证器检索用户名和密码并进行验证。这是php客户端的代码:
这是我的 wcf web.config 中的 basicHttpBinding 配置。同样,我不确定这是否正确,以便从 php 客户端获取用户名/密码到 wcf 服务。
请注意,如果我输入 clientCredentialType="Basic",IIS 希望我启用基本身份验证,但我不希望通过 IIS 进行身份验证,我希望通过服务进行身份验证,具体由自定义用户名和密码验证器处理。
c# - 从 SOAP 请求正文节点读取 ClientCredentials 并根据自定义验证器对其进行验证?
我有一个GetColors
将 aGetColorIdsRQ
作为参数并返回 a 的方法GetColorIdsRS
。 GetColorIdsRQ
是 SOAP 请求并且GetColorIdsRS
是 SOAP 响应。下面是每一个的实现细节:
GetColorIdsRQ:
用户凭据:
GetColorIdsRS:
颜色:
这是方法在接口中声明的方式:
这是 GetColorIds 的实现:
当我从 WCF 测试客户端调用 GetColors 时,请求正文是:
上面的问题是我想将Username
和Password
节点用于CustomUserNameValidator
. 我不知道如何让CustomUserNameValidator
识别GetColorIdsRQ
用户名和密码节点,以便它可以验证。如果您在GetColors
方法中注意到上述内容,我正在设置:
但这显然没有得到验证。这是我的实现CustomUserNamePasswordValidator
:
所以基本上如果我通过:
CustomUserNameValidator 应该抛出 FaultException。
还要注意在 GetColors 方法中,我有一个注释“//验证用户名和密码”,我知道我可以这样做:
上面会调用 Validate 方法,但我知道它应该是自动的,然后我必须在每个方法中都这样做。
是否真的要调用 CustomUserNameValidator 的唯一方法是在代理代码中设置 ClientCredentials,例如:
以上将导致调用 Validate 方法,但如果我无法执行上述操作并且我将 Username 和 Password 设置为 Request 对象的属性,那么 Validate 将不会被调用,所以我的另一个选择是在每个需要它的操作中我自己的 Validate 方法。如果 ClientCredentials 失败,则不会调用操作,但在我的情况下,我需要调用一个操作,然后让它返回一个带有错误节点的 SOAP 响应,其中包含“无效的用户名和/或密码”而不是抛出故障异常。
基于上述情况,在我的情况下最好避免使用 CustomUserNamePasswordValidator 吗?
如果无法通过代理的客户端凭据设置用户名和密码,而是通过soap请求的主体发送,那么处理此问题的方法似乎是在操作基础上处理验证并且确实这会影响安全设置(例如,是否需要设置 clientCredentialType="Username")
wcf - WCF 类型“System.CodeDom.Compiler.GeneratedCodeAttribute”未定义
我正在关注本教程,该教程展示了如何实现 WCF 身份验证服务。我已经按照详细的步骤一步一步地完成了。但是在我尝试构建项目时添加所有代理类后,它给了我一些 68 错误,下面列出了一些错误。我不知道我在这里做错了什么。显然,我认为我的课程中缺少一些 Imports 或 app.config 文件中的某些属性。我可能错了。
如演练文章中所示,所有三个应用程序服务(身份验证、角色、配置文件服务)都可以正确编译。我试图通过 WCF 身份验证服务构建单点登录机制。
提前致谢。
wcf - 如何在不使用 WCF 委派的情况下传播 Windows 标识?
我需要在两个服务调用中传播当前用户的 Windows 身份。
服务 A(在集成身份验证下运行)调用服务 B(也在集成身份验证下运行)。我需要识别用于在服务 B 的代码中调用服务 A 的用户身份。
我知道这可以使用委托来实现,方法是在服务 A 代码中模拟用户,然后从模拟代码中调用服务 B。
但是,我只想流动身份而不是冒充用户。没有冒名顶替可以吗?
.net - wcf 身份验证令牌实现 - 怎么做
我需要在我的 wcf 服务的用户和我的服务器之间实现令牌身份验证。
1- 用户将使用他的用户名、昵称和密码从服务器请求一个令牌,如果凭据正确,服务器将用一个令牌响应?
问题 1
- 我应该为每个请求创建令牌,还是可以将其存储在特定时间段内使用相同的令牌。最好的方法是什么?这个实现在网上有什么例子吗?
- 创建令牌后,我应该将令牌存储在哪里?在数据库表中还是在内存中?或任何其他方式?
- 如果凭据错误,我应该返回什么?
- 如何防止用户在短时间内发送这么多令牌请求?
2- 然后用户将使用该令牌来使用我的服务。
问题 2
- 客户端如何将令牌传递给服务器?连同查询字符串?这样做的最佳方法是什么?
任何示例或建议都会很棒。
silverlight-4.0 - N-Tier App 中的 WCF 和 Silverlight 4.0:验证对服务的调用
我有一个构建如下的 N 层应用程序:
在 IIS7 的服务器端,有一个 ASP.Net 应用程序,它公开 WCF 服务上的方法。这些方法使用 EF4 与数据库通信。用 Silverlight 4.0 编写的客户端正在调用 WCF 服务上的方法。
WCF 服务公开了这个方法:
我是安全 WCF 服务的新手,但我认为接下来的这些观察是正确的(如果我错了,请纠正我):
1)如果我保留此方法/服务,任何知道我的服务位于http://www.mysite.com/myservice.svc的人都可以打开 VisualStudio,打开“添加服务引用”并开始拨打电话删除项目()。
2) 如果我尝试通过删除 MEX 端点来解决上述问题,仍然可以使用一些手动编码来调用服务。
因此,为了解决这两个问题,我开始学习 WCF 中的一些内置安全功能。快速浏览后,我想我可以使用以下绑定配置,以便调用服务需要用户名和密码:
尝试采用这种解决方案时,我首先想到的是:当用户登录客户端时,客户端使用用户名和密码作为 WCF 调用的凭据。在服务器端,这些凭据会根据数据库进行验证。
现在的问题是,用户当然知道这些凭据(用户名和密码),因此他可以使用它们以我已经提到的方式调用 DeleteItem()。
从这里我想出了两个解决方案:
1) 我将在客户端使用硬编码密钥,而不是使用用户名和密码作为凭据。对 XAP 中的 Dll 进行加扰可能会阻止某人获得此密钥。
2)当用户登录客户端时,服务器会发送某种临时令牌(GUID 或其他东西),客户端可以在此通信会话期间使用它来验证它的调用(假设,直到用户关闭客户端) .
我的问题是:
第一个解决方案提供的安全级别是多少?您需要付出多大的努力才能破解它?
如果第一个解决方案很难破解,WCF 中是否有内置方法来管理我在第二个解决方案中提到的令牌系统?
欢迎其他可以适应范围的解决方案。
wcf - WSHttpBinding 绑定,客户端认证
我是 wcf 的新手并使用 wshttpbinding,但我想从服务客户端(我必须通过)中删除用户名和密码,我的客户端代码是
我不想传递这个用户名和密码。
我的客户端 app.config 是:
rite now 服务托管在网络中。service.config 或客户端应用程序 .config 是否有任何更改。谷歌搜索后我的薄弱知识是改变应该是客户端,但我无法做到这一点。:-(
注意:我的合同也需要会话。提前谢谢。
wcf - WCf 中的自定义令牌管理
我有一个使用 WCF 中的 Message 传递原始消息的 Web 服务,我创建了标头 MessageHeader.CreateHeader ,现在我想实现一个自定义令牌管理系统,这样我将第一次传递用户名和密码,然后读取标头身份验证后我的服务将向用户提供一个令牌,该令牌将在一段时间后过期,我的网络服务可以由匿名用户访问,并且他们的访问权限有限。
我正在使用自定义绑定...知道如何完成此操作或任何示例...
wcf - 在 Silverlight 平台中为自定义 WCF 消息头添加安全性
我们如何在 Silverlight 服务中为 WCF 服务的自定义消息头添加安全性。
例如,我想通过 WCF 消息头传递一个重要的(经过身份验证的)字符串值(凭据)。
是否有可能通过消息头传递受保护的字符串数据?
asp.net - 从 ASP.NET 将 Windows 标识传递给 WCF
我有一个托管在 IIS 中的 WCF 服务,启用了集成的 Windows 身份验证并禁用了匿名身份验证。当我尝试从 ASP.NET 调用此服务时,我收到以下 MessageSecurityException:
“HTTP 请求未经客户端身份验证方案‘协商’未经授权。从服务器收到的身份验证标头为‘协商,NTLM’。]”
有任何想法吗?
这是我的服务配置:
这就是我调用服务的方式: