如何在node.js中创建SAML断言签名

如何在node.js中创建SAML断言签名,node.js,hash,saml,digital-signature,x509certificate,Node.js,Hash,Saml,Digital Signature,X509certificate,我正在使用一个外部api,它要求我为相互tls身份验证创建saml断言。我正在构建的与api通信的客户端是用nodejs编写的。我找不到任何可以为我创建saml断言的库,因此我最终模板化了从xml文件导入的saml断言,并使用Handlebar填充了必要的字段。我现在唯一缺少的是签名,我很难找到生成签名的文档 以下是我试图完成的一个示例: <ds:Signature> <ds:SignedInfo> <ds:CanonicalizationM

我正在使用一个外部api,它要求我为相互tls身份验证创建saml断言。我正在构建的与api通信的客户端是用nodejs编写的。我找不到任何可以为我创建saml断言的库,因此我最终模板化了从xml文件导入的saml断言,并使用Handlebar填充了必要的字段。我现在唯一缺少的是签名,我很难找到生成签名的文档

以下是我试图完成的一个示例:

<ds:Signature>
    <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="#_df0cbca2-3511-4586-b5f3-0211b1700413">
            <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>{{fillMeIn}}</ds:DigestValue>
        </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>{{MeToo!}}</ds:SignatureValue>
    <ds:KeyInfo>
        <ds:X509Data>
            <ds:X509Certificate>...secret...certificate...</ds:X509Certificate>
        </ds:X509Data>
    </ds:KeyInfo>
</ds:Signature>

{{fillMeIn}
{{MeToo!}}
…秘密…证书。。。
在前面的示例中,我需要签名和摘要的值,如果您能深入了解如何生成这些值,我们将不胜感激。动态(编程)生成它们的能力将是理想的。我们正在使用自签名X509证书。提前谢谢

我找到了这个图书馆,它似乎正是我想要的