Проверка SAML Javascript на сервис-провайдере в узле Js - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь проанализировать и проверить ответ SAML, полученный от моего IP. Я могу добиться этого в C # с помощью кода, как показано ниже. Но когда дело доходит до библиотек узлов js и js, мне трудно реализовать решение.

Я пытался использовать xml-crypto и xml-Dom для анализа xm. Есть ли библиотека, которая делает это простым.

        ```this.xmlDoc // decoded SAML response xml
        X509Certificate2 cert;
        XmlNamespaceManager nsManage
        r = new XmlNamespaceManager(this.xmlDoc.NameTable);
        nsManager.AddNamespace("ds", "http://www.w3.org/2000/09/xmldsig#");
        XmlNode node = this.xmlDoc.SelectSingleNode("//ds:Signature", nsManager);

        // load meta data xml
        XmlDocument metaXml = new XmlDocument();
        metaXml.LoadXml(this.metaData);
        XmlNode certElement = metaXml.SelectSingleNode("//ds:X509Certificate", nsManager);

        if (certElement == null) {
            throw new CryptographicException("Verification failed: No Signature was found in the document.");
        }
        else {
            cert = new X509Certificate2(Convert.FromBase64String(certElement.InnerText));
        }

        SignedXml signedXml = new SignedXml(this.xmlDoc);
        signedXml.LoadXml((XmlElement)node);
        return signedXml.CheckSignature(cert, true);```
...