使ASP.NET Web应用程序与WCF服务进行通信有哪些身份验证选项?
情景:
最简单的解决方案是将用户名/密码存储在ASP.NET会话状态中。但是,这是不安全的,因为密码存储在服务器的内存中。
我宁愿不使用证书来验证服务的ASP.NET“客户端”,因为除了ASP.NET之外,这个WCF可能会被另一个客户端使用。
到目前为止,我看到的最佳建议是使用Windows Identity Foundation(WIF)。看来这需要STS。根据{{3}},Microsoft似乎不建议通过Visual Studio设置STS。由于某些环境可能使用Active Directory而其他环境可能具有自定义用户存储,因此无法保证部署环境中的STS可用。是否可以设置自定义STS以对自定义用户存储进行身份验证?我在找到这方面的文档时遇到了麻烦。
除了使用WIF之外还有其他选择吗?那些返回可用于对主WCF服务进行身份验证的令牌的自定义WCF身份验证服务呢?
答案 0 :(得分:1)
这样做的标准方法是使用WIF和Microsoft的STS即可。 Active Directory联合身份验证服务v2.0(ADFS)。
有许多自定义STS可用,例如Identity Server。这使用SQL DB作为属性存储。它是开源的,因此可以根据您的需要进行调整。
您可以创建自己的自定义属性商店:AD FS 2.0 Attribute Store Overview。
TechNet WIF / WCF:WIF and WCF。