如何使用 WIF 实施主动联合提供商
我有几个 Silverlight、WP7 和 ASP.NET MVC 客户端应用程序 大多数允许匿名访问应用程序,但在登录时根据用户凭据保护各种功能。所有客户端都使用通用后端服务应用程序进行数据访问和业务需要用户凭据进行身份验证和授权的处理。
目前,我们在所有客户端应用程序中使用表单身份验证,我想迁移我们的架构以使用联合身份和基于声明的模型。被动联合不是一种选择。
我正在寻找以下流程:
- 用户触发登录对话框,输入他们的用户名并 密码,然后单击“确定”。
- 在幕后,应用程序调用活动的 STS 服务 我们现有的身份验证服务应用程序。
- 该服务实际上是一个联合的 STS,并通过 到(活动)IP_STS,它可能是也可能不是 ADFS。
- 当IP将token返回给FP时,FP修改token 在返回之前从服务器数据存储中获取额外的声明 客户端应用程序的令牌。
- 客户端应用程序在内存中维护令牌 授权检查(例如,在 Thread.CurrentPrincipal 中)。
- 客户端向其他客户端发出请求时也会传递令牌 我们的服务应用程序中的服务操作。
- 这些服务操作将使用令牌来 验证/授权请求。
这是一个与我能够找到的任何文章和示例都非常不同的用例。任何人都可以提供一些指导和/或为我指出正确的方向吗?
I have several Silverlight, WP7 and ASP.NET MVC client applications Most allow anonymous access to the application but secure various features based on a user's credentials when logged in. All of the clients use a common back-end service application for data access and business processing which require the user's credentials for authentication and authorization.
We currently use Forms Authentication in all client applications and I'd like to migrate our architecture to use federated identity and a claims-based model. Passive federation is not an option.
I am looking for the following flow:
- The user triggers the login dialog, enters their username and
password then clicks "OK". - Behind-the-scenes, the application calls an active STS service in
our existing service application for authentication. - The service is actually a federated STS and passes the call through
to the (active) IP_STS which may or may not be ADFS. - When the IP returns the token to the FP, the FP modifies the token
with additional claims from the server data store before returning
the token to the client application. - The client application maintains the token in memory for
authorization checks (in Thread.CurrentPrincipal, for example). - The client also passes the token when making requests to other
service operations in our service application. - These service operations will use the token to
authenticate/authorize the request.
This is a very different use-case from any of the articles and samples I've been able to locate. Can anyone provide some guidance and/or point me in the right direction?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我从 Dominic Baier 处了解到,WIF 目前不支持我们正在采取的方法。我们采纳了他的建议并创建了我们自己的自定义 STS,该 STS 使用提供者模型来调节身份验证。
不幸的是,我们研究得越深入,就越意识到 WIF 不够灵活,无法满足我们目前的需求。我们坚持使用自定义 STS 方法,但使用我们自己的传输和凭证,而不是 WIF 工具。希望未来的版本能够给我们带来我们想要的东西。
It is my understanding from Dominic Baier that WIF doesn't currently support the approach we are taking. We've taken his suggestion and created our own custom STS that moderates authentication using the Provider model.
Unfortunately, the farther we got into this, the more we realized that WIF isn't flexible enough to satisfy our needs at this point. We stuck with the custom STS approach but are using our own transport and credentialling rather than the WIF tooling. Hopefully a future release will give us what we want.