首页 文章

Adfs:令牌解密证书与依赖方签名验证证书之间的区别

提问于
浏览
2

我正在尝试使用ADFS Build 一个依赖方(SP) . ADFS识别并响应没有签名的请求 . 但是ADFS无法验证签名的AuthRequest . 我将证书导入依赖方的“签名验证证书”部分,但此证书似乎不用于依赖方请求的签名验证 .

相反,它似乎使用'令牌解密'证书 . 我不明白这个证书的目的 . 有人可以解释一下这两个证书之间的区别,以及如何用另一个自签名证书(DER或pem格式)替换'token-decrypting'证书?谢谢

Fyi:将样本AuthnRequest发送到ADFS

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://adfs-sj1.sjlab.local/adfs/ls/" ID="_422d0bb72b1120db737695464793dedf4ea8ddd2" IssueInstant="2012-07-30T21:52:47.501Z" Version="2.0">
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">spid</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
            <ds:Reference URI="#_422d0bb72b1120db737695464793dedf4ea8ddd2">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>S5b7PCF8WscoOX++EcpyjQNW4q0=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>g1PXYERi48Q/vGXNBPwZlteyihQmt3eo9+MIQlBdC8MqTsm8GdvE1Nq4osszEyprAK5Q6Uv5QV/UgctUWGV2hUxLc5bpXVwpaYaoywH0XPXArROR1EyGVz2g5YAjgGxpU0YbxJIk+2A1DblE0alYSK/88oHHcmpwp6dmgwmvfXcRA83DnVCeIZoKSPuNTqSLb6UKk+QxUABieuAb1ecsQmJsEjUXcrPq+RPL1+goNhC4/vbPatuK90ZyZe5CljwAtWXmqoBzWexxgWdzs4E9zIc/aQi/HFioGz0EnPiipgBjHRlV+Gv0iFV1dS++a24+F7H2NG6aZSGipcyj2kJMDg==</ds:SignatureValue>
    </ds:Signature>
</saml2p:AuthnRequest>

3 回答

  • 0

    好文章:AD FS 2.0: How to Replace the SSL, Service Communications, Token-Signing, and Token-Decrypting Certificates .

    服务通信证书本质上是IIS SSL证书,用于相同的目的 .

    Token-Decrypting证书用于与其他声明提供者进行通信 . 它们使用此证书的公钥加密令牌,ADFS使用私钥解密 .

    令牌签名证书用于签署发送给RP的令牌,以证明它确实来自ADFS .

    另外,当您在使用FedUtil时选择加密选项时,您可以在RP端使用另一个证书来加密令牌 . 在这种情况下,它是双重加密 - SSL加RP证书 .

    你的问题有些令人困惑 . ADFS始终签署RP令牌 . 这不是可选的 . 你能澄清一下吗?

  • 1
    • Service Communications - 此 SSL 证书用于加密与 AD FS 服务器的所有客户端连接 .

    • Token-Signing - 此 x.509 证书用于签署发送给中继方的令牌,以证明它确实来自 AD FS .

    • Token-Decrypting - 此 x.509 证书用于加密 SAML 令牌的有效负载,然后再在 SSL 传输层加密 . 它很少使用 .

    希望这能回答你原来的问题

  • 7

    仅当请求与依赖方签名而不是直接转到Idp时,才会使用依赖签名证书 . 在大多数情况下很少使用它 .

    但是,当通过metadata-xml创建依赖方时,它始终具有配置的签名证书,因为cert是metadata-xml的一部分 .

    简而言之,与ADFS签名和解密证书相比,依赖方签名证书并不总是在纯ADFS场景中使用 . 你必须了解用户场景 .

    有很好的幻灯片https://www.slideshare.net/musre/understanding-claim-based-authentication来解释IDP和RP

相关问题