查看the WIF SDK,有一些使用WIF与ASP.NET结合使用WSFederationAuthenticationModule(FAM)来重定向到用户用于验证的安全令牌服务(STS)之上的ASP.NET站点瘦身皮肤的示例(通过供应用户名和密码)。
如果我正确理解WIF和基于声明的访问,我希望我的应用程序提供自己的登录屏幕,用户提供用户名和密码,并将其委托给STS进行身份验证,并通过安全标准将登录详细信息发送到端点(WS- *),并期望返回一个SAML令牌。理想情况下,SessionAuthenticationModule将按照使用FAM结合SessionAuthenticationModule的示例工作,即负责从会话安全分块cookie重建IClaimsPrincipal,并在安全会话期满时重定向到我的应用程序登录页面。
我使用FAM和SessionAuthenticationModule描述可能使用适当的web.config设置,还是需要考虑自己编写一个HttpModule来处理?或者,正在重定向到用户在被动请求者场景中登录事实上的方法的瘦网站STS?
解决方法
http://msdn.microsoft.com/en-us/library/ff359105.aspx
我建议阅读前几章来了解所有基本原则。这篇博客文章涵盖了MVC WIF的细节:
http://blogs.msdn.com/b/eugeniop/archive/2010/04/03/wif-and-mvc-how-it-works.aspx
控制登录体验是非常好的。你应该只是部署你自己的STS(在你的领域,你的外观和感觉等)。您的应用程序只会依靠AuthN(这就是为什么一个应用程序通常被称为“依赖方”)。
该架构的优点是将authN委托给1个组件(STS),而不会在许多应用程序中传播。但另一个(巨大的)优势是您可以轻松地启用更复杂的场景。例如,您现在可以与其他组织的身份提供商联合。
希望它有帮助
尤金尼奥
@RisingStar:
令牌(包含权利要求)可以可选地加密(否则它们将以明文形式)。这就是为什么总是建议使用SSL来浏览器和STS之间的交互。
请注意,即使它们是明文,篡改是不可能的,因为令牌是数字签名的。