我有几个 Silverlight、WP7 和 ASP.NET MVC 客户端应用程序 大多数允许匿名访问应用程序,但在登录时根据用户凭据保护各种功能。所有客户端都使用通用后端服务应用程序进行数据访问和业务需要用户凭据进行身份验证和授权的处理。
我们目前在所有客户端应用程序中使用表单身份验证,我想迁移我们的架构以使用联合身份和基于声明的模型。被动联合不是一种选择。
我正在寻找以下流程:
- 用户触发登录对话框,输入他们的用户名和密码,然后单击“确定”。
- 在幕后,应用程序调用我们现有服务应用程序中的活动 STS 服务进行身份验证。
- 该服务实际上是一个联合 STS,并将调用传递到(活动的)IP_STS,它可能是也可能不是 ADFS。
- 当 IP 将令牌返回给 FP 时,FP 在将令牌返回给客户端应用程序之前使用来自服务器数据存储的附加声明修改令牌。
- 客户端应用程序在内存中维护令牌以进行授权检查(例如,在 Thread.CurrentPrincipal 中)。
- 客户端在向我们的服务应用程序中的其他服务操作发出请求时也会传递令牌。
- 这些服务操作将使用令牌对请求进行身份验证/授权。
这是一个与我能够找到的任何文章和示例非常不同的用例。任何人都可以提供一些指导和/或指出我正确的方向吗?