我想知道如何将x509证书与WIF安全令牌一起使用。你能提供一个典型的场景吗?例如,我想使用一个或多个证书对安全令牌进行签名和加密。我怎么能那样做?我会得到什么好处?我应该以何种方式在生产环境中部署证书?
"我该怎么做"这个问题除了"使用WIF API"没有其他简洁的答案。API可以很好地使用X509证书,因此加密和签名都只需要X509Certificate2类实例(换句话说:证书)。
另一个问题是:什么是好处?令牌签名是执行协议的基本方式。如果SAML令牌没有签名,就无法验证它是否真的来自令牌服务。另一方面,加密是可选的,如果相同的令牌可以安全地传递到不同的应用程序,那么可能不需要加密令牌。如果不同的令牌被传递到不同的应用程序(例如,用户可以在站点a中担任管理员角色,而不是在站点B中,并且令牌服务为a和B传递不同的令牌),则加密可以防止用户滥用令牌。
最后一个问题:如何部署证书?好吧,这取决于你。X509Certificate2类非常灵活,允许您将字节数组作为参数进行传递。然后,您可以从文件、web服务和嵌入式资源加载证书。然而,在实践中,最方便的方法是使用其中一个系统证书存储,例如LocalMachine的My存储。首先,您使用mmc管理单元将证书导入存储,然后授予某些用户(例如应用程序池)访问私钥的权限,然后您的代码只从存储加载证书。