ASP.NET和WCF身份验证选项

使ASP.NET Web应用程序与WCF服务通信的身份验证选项有哪些?

场景:

  • 用户在ASP.NET表单中输入他们的用户名和密码。
  • ASP.NET需要将其传递给WCF以对用户进行身份验证。
  • 如果通过身份验证,用户可以在网站上执行操作。 每个操作都需要将数据发送到不同的WCF操作。 WCF需要知道用户在每次通话中的身份。
  • 最简单的解决方案是将用户名/密码存储在ASP.NET会话状态中。 但是,这是不安全的,因为密码存储在服务器的内存中。

    我宁愿不使用证书来认证服务的ASP.NET“客户端”,因为除了ASP.NET之外,这个WCF可能会被另一个客户端使用。

    目前为止我看到的最好的建议是使用Windows Identity Foundation(WIF)。 看来这需要一个STS。 据MSDN称,微软似乎不建议通过Visual Studio设置STS。 不能保证STS在部署环境中可用,因为某些环境可能使用Active Directory,而其他环境可能有自定义用户存储。 是否可以设置一个自定义的STS来对照自定义用户存储进行身份验证? 我在查找文档时遇到问题。

    除了使用WIF还有其他选择吗? 自定义WCF身份验证服务如何返回可用于对主WCF服务进行身份验证的令牌?


    这样做的标准方法是使用WIF与微软的STS viz。 Active Directory联合身份验证服务v2.0(ADFS)。

    有许多自定义的STS可用,例如Identity Server。 这使用SQL DB作为属性存储。 它是开源的,因此可以根据您的需要进行调整。

    您可以创建自己的自定义属性存储:AD FS 2.0属性存储概述。

    TechNet WIF / WCF:WIF和WCF。

    链接地址: http://www.djcxy.com/p/71779.html

    上一篇: ASP.NET and WCF Authentication Options

    下一篇: relying party session security token lifetime