我检查了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应用程序中。