【问题标题】:Create SecurityKey from signing certificate thumbprint从签名证书指纹创建 SecurityKey
【发布时间】:2016-03-18 02:52:08
【问题描述】:

我正在尝试从 FederationAuthenticationModule (WS FAM?) 迁移到 OWIN WsFederationAuthentication 中间件。到目前为止,一切都很好,只是对于某些客户,我们只有他们签名证书的指纹。

对于 WS FAM,这就足够了,因为 ConfigurationBasedIssuerNameRegistry.AddTrustedIssuer() 只需要签名证书的指纹。

然而,OWIN 中间件需要 WsFederationConfiguration.SigningKeys-collection 中的 SecurityKey-derived 类型。虽然我可以从证书创建 SecurityKey,但我找不到仅从指纹创建的方法。

有什么想法可以仅从证书指纹创建SecurityKey 或以任何其他方式让 WsFederationAuthentication 中间件仅使用指纹吗?

【问题讨论】:

    标签: c# owin wif ws-federation


    【解决方案1】:

    AFAIK,将 WIF 与 owin 一起使用的最简单方法是使用联合元数据(位于 FederationMetadata/2007-06/FederationMetadata.xml)。然后你根本不需要设置任何东西。这里有解释:http://blog.baslijten.com/configure-claims-based-web-applications-using-owin-wsfederation-middleware/。前提当然是您的 STS 发布了有意义的 FederationMetaData 文档。一个很好的优势是您的应用程序会自动获取验证所需的公钥(并且可以无缝地更新它们)。 这不是您问题的答案,但恕我直言,它比您采用的方法容易得多。

    【讨论】:

    • 根据他们如何配置它以及使用的令牌格式,您可能可以从安全令牌中提取证书。您应该知道,如果您为所有令牌自动执行此操作(例如,添加证书,如果尚不知道),那么您将创建一个安全漏洞,因为任何人都可以向您发送有效签名的 SAML2 令牌(或 JWT 令牌)。如果您以受控方式自己进行操作(“我现在要获取我知道并信任的身份提供者的公钥”),那么这可以帮助您。
    • 是的,我说的是在某个时间点手动提取。
    猜你喜欢
    • 2019-01-03
    • 2016-04-25
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多