【发布时间】:2011-06-05 12:01:02
【问题描述】:
我们正在设计一个带有 Appfabric 缓存的系统。我们想知道安全性。
拥有缓存项的服务器如何知道对该项的请求来自缓存集群中的另一台服务器或授权服务器?
我们担心的是:任何可以访问 Appfabric 缓存端口的人都可以从缓存中读取项目吗?
【问题讨论】:
标签: security caching appfabric
我们正在设计一个带有 Appfabric 缓存的系统。我们想知道安全性。
拥有缓存项的服务器如何知道对该项的请求来自缓存集群中的另一台服务器或授权服务器?
我们担心的是:任何可以访问 Appfabric 缓存端口的人都可以从缓存中读取项目吗?
【问题讨论】:
标签: security caching appfabric
不,访问端口不足以读取缓存项。
AppFabric 缓存通过 net.tcp 在内部使用 WCF 通信。因此,默认情况下 Windows 安全性处于启用状态。当您的客户端代码访问缓存时,这会导致传递进程标识。在缓存集群上检查身份,如果您没有授予该身份的缓存访问权限,则请求被拒绝(您认为这很奇怪“暂时失败。请稍后重试”)。
通常会创建一个特殊帐户来运行您的进程/应用程序池。您可以使用缓存管理 Windows PowerShell 授予访问权限:
PS C:\Windows\system32> Grant-CacheAllowedClientAccount YOURDOMAIN\ProcessAccount
要检查访问权限,请使用以下命令:
PS C:\Windows\system32> Get-CacheAllowedClientAccounts
Administrators
NETWORKSERVICE
IIS APPPOOL\ASP.NET v4.0
YOURDOMAIN\ProcessAccount
希望这会有所帮助。
【讨论】:
可以配置 appfabric 缓存来加密和验证来自客户端的连接。
但是,我们使用加密算法将敏感数据存储在缓存和后端 SQL 中。这样,我们可以确保存储在两个系统中的所有数据都是安全的。
【讨论】: