我想验证来自SAML断言的证书(由AZURE AD发布)
他们可以随时翻转公钥。我假设它意味着我无法在受信任的根存储库中手动管理它们。
我正在使用X509Certificate2.Verify()
,如果证书不在受信任的根存储中,则返回False
。我应该使用X509Certificate2.Build()
并将其设置为忽略它是否可信?
答案 0 :(得分:0)
SAML2使用证书作为使用标准文件格式表示加密/签名密钥的便捷方式。证书的内容不相关,因为证书应在相关各方之间直接交换。因此,无需验证证书的有效性,在许多部署中甚至无法验证。
使用定期执行密钥翻转的Idp,您应该加载并信任Idp的元数据,而不是直接配置证书。
如果您自己实施所有这些,我建议您花一些时间寻找现有的实施方案。制作支持加载元数据的完整SAML2实现非常重要,并且需要花费大量时间。