使用PHP在SAML2.0中进行DSA签名检查



我检查了SO并在谷歌上搜索了一下,但到目前为止还没有找到答案。我使用SAML2.0作为服务提供商,嵌入式php-SAML首先使用simplesamlph,但发现有点难以嵌入。

IdP的响应返回一个签名

<signaturemethod algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1">

看起来xmlseclibs不支持dsa签名。

问题A:有什么建议可以用来验证dsa签名吗?

问题B:只是好奇其他人在SAML中使用什么库。我刚刚花了大约20分钟在simplesamlphp上,发现它完全依赖于它自己的URL结构,并且是一个合适的Web服务器端点,而不仅仅是一个库。

干杯

PHP库中缺乏DSA支持的部分历史原因可能与此有关:

  • https://bugs.php.net/bug.php?id=41033

PingFederate(来自Ping Identity)为您提供DSA选项(作为IDP和SP)。尽管XML签名要求使用DSAwithSHA1签名算法,但SAML V2.0不需要它,但建议使用它。

虽然PF不是一个代码库(它是一个完整的内部部署SSO解决方案),但它支持云计算所需的所有各种身份协议(SAML 1.0/1.1/2.0/WS-Federation),并且可以通过RESTful Web Services或PHP库轻松地连接到PHP应用程序中。

最新更新