我正在尝试验证由REST Web服务中基于WIF的自定义STS创建的SAML令牌。
有几个功能可以进行验证。一个是 SecurityTokenHandlerCollection.ValidateToken(),另一个是 SamlSecurityTokenAuthenticator.ValidateToken()。
不幸的是,这些类和函数的在线Microsoft MSDN帮助毫无价值,并且根本没有描述这些函数正在做什么。
这些功能验证了什么?它们是如何做到的?它们之间有什么区别?他们是否自动在Windows证书存储区中查找证书以检查令牌的签名,并验证加密的凭证对象?因为我没有在任何地方传递证书名称。或者我是否需要自己进行其他手动操作来验证令牌?
我意识到一个返回 ClaimsIdentityCollection ,另一个返回 IAuthorizationPolicy 对象的集合。但这是唯一的区别吗?我不知道。
我可以在网上找到关于STS和声明甚至验证声明的大量信息,我正在成功地做,但我几乎找不到有关验证令牌本身的任何信息,以确保它是我创建的。
答案 0 :(得分:2)
在大多数情况下,您无需担心令牌验证详细信息。所有这一切都由WIF照顾。
但如果你真的想知道,最好的信息来源是维托里奥的书:http://www.amazon.com/Programming-Windows%C2%AE-Identity-Foundation-Dev/dp/0735627185
这里有一些细节:http://msdn.microsoft.com/en-us/library/ff359114.aspx
另一种学习方法是查看为处理非SAML令牌而构建的扩展(例如SWT)。下载示例here并查找REST服务。