2010-12-15 46 views
1

因此,在过去的几天里,我一直在抨击我的头,试图了解WCF的安全体系结构如何工作。我脑海中有一个目标,我不确定我会朝着正确的方向前进。需要帮助了解WCF安全体系结构

的系统

我们使用Active Directory和数据库的组合来管理我们的认证和授权。客户端应用程序通常使用他们的Windows凭据进行身份验证,并且应用程序会根据数据库表进行检查,以查看是否允许这些用户进行身份验证,以及他们是否有权使用他们请求的资源。当前的设置让每个客户端直接与数据库进行通信来完成这些检查。

我们想用一个安全令牌服务验证客户端,并提供顶级资源“高层”授权的目标。如果提供的SecurityToken有效,则提供数据或执行操作的服务将运行。此外,令牌(如果它不包含特定权限)将查询令牌服务,以查看用户是否拥有最初创建令牌时未加载的权限。 (我们已经在我们的数据库超过300个权利,这可能会导致相当沉重的令牌与许多权限的用户)

我不明白

1)我明白令牌创建过程,但我对客户如何获取,存储并将令牌发送给它打算使用的服务有点遗憾。每个“工人”服务是否都需要一个唯一的标记(即对CalculatorService的调用需要一个版本的标记,并且SaveResultService需要生成一个新的标记?)我可以手动请求,保存和发送标记吗?

2)在“worker”服务端,令牌被验证的过程是什么?我的“员工”服务是否必须联系令牌服务以验证令牌?还是它只是读取令牌并假设它是否正确签名,令牌是否真实并从该角度进行操作?

3)是否可以手动加密我的令牌并将它们存储在客户端以供其在有效期间使用(从而避免每次服务调用时都会进行认证尝试),以便Web客户端可以在页面加载之间保存令牌并在连续呼叫中重复使用它?

感谢您与我缺乏了解

回答

2

你应该去通过样本Windows标识基础帮助 - 它提供包,您可以使用或查询权威性和AuthZ的索赔所需的类和实现。

http://msdn.microsoft.com/en-us/library/ee517291.aspx

你所寻找的是一个持久的令牌缓存。 - 令牌有生命周期并且通常需要续约,WIF在大多数情况下都会进行更新。

您可以手动请求并附加令牌,并使用WIF来共享代理。