wcf - 如何将 SAML 身份验证集成到 WCF Web 服务应用程序中

标签 wcf saml saml-2.0

我有一个在 IIS7 上构建和测试的 WCF Web 服务应用程序。关于身份验证,我想为访问 Web 服务中的操作的消费者实现一个 sql server 托管的用户 ID 和密码身份验证。但是有人告诉我,我的公司政策规定我将 SAML 实现到我的 Web 服务中。这意味着任何访问我的 Web 服务操作的客户端都需要使用 SAML 2.0 进行身份验证。我不熟悉 SAML,但想知道并开始了解如何在我的 Web 服务中实现它。我一直听到两个术语 - 服务提供者和身份提供者,根据网络上的定义,我假设服务提供者是我的网络服务。身份提供者是用户进行身份验证的地方,身份提供者向我的 Web 服务提供断言,然后我让客户端访问操作。我了解理论但不确定如何付诸实践。访问我的 Web 服务的客户端不是内部的,即它们是外部的(外网客户端),那么在这种情况下,身份提供者将是什么,我如何将代码添加到我的 Web 服务中以使其成为服务提供者?

我希望您理解我的困境,任何人都可以解释我需要采取的方法,并且非常感谢任何帮助我完成 Web 服务的示例或教程。

最佳答案

我认为标准 WCF 不提供 SAML 2.0。要使其工作,您必须将 WCF 与 WIF 结合使用(Windows 身份基础)。给你 very complex example使用 WCF 与 WIF 和基于声明的授权。该示例使用 SAML 1.1,但它只是配置更改以使其适用于 SAML 2.0。

您的问题通常称为联合身份验证或联合身份,其中用户针对 STS(服务 token 服务)进行身份验证并接收安全 token (例如 SAML token )。比客户端调用真正的服务(RP - 中继方),它传递它的安全 token 。那么你要 build 什么?如果您的公司政策要求使用 SAML,他们很可能已经拥有 STS,您只需要按照文章中提到的 SAML token 对客户端进行身份验证。

关于wcf - 如何将 SAML 身份验证集成到 WCF Web 服务应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297476/

相关文章:

c# - DTO从客户端传输到服务端后变为null

c# - WCF wsHttpBinding 和 XML 签名

spring-security - Spring Security 中的多个预认证过滤器?

active-directory - SAML(安全断言标记语言)——这可以通过网络基础设施来实现吗

spring saml - IDP 发起的 SSO

java - SAML 身份验证后,用户似乎未分配给该角色

C# Json.NET WCF Rest 日期时间格式

jquery - WCF 4、JSONP 和 jQuery 导致解析器错误

java.lang.ClassNotFoundException : org. opensaml.DefaultBootstrap

使用 SAML 在单点注销中终止 session