Nar*_*raj 4 php digital-signature saml-2.0 okta
我的应用程序(PHP)从具有签名值的OKTA获取SAML响应,并且我还拥有具有公钥的OKTA证书.我的申请做了以下,
我的代码,
$pubkeyid = openssl_pkey_get_details(openssl_pkey_get_public(file_get_contents("okta.cert")));
$pubkeyid = $pubkeyid["key"];
$signature = "<get it form SAML Response>";
$data = ???? (what should be provided)
$ok = openssl_verify($data, $signature, $pubkeyid,"sha1WithRSAEncryption");
Run Code Online (Sandbox Code Playgroud)
当我将数据值分配给发送给应用程序的SAML响应时,我总是得到0.我错过了什么吗?
小智 5
SAML签名验证远不止是调用openssl_verify()函数.我建议为此目的使用一些库,如https://github.com/lightSAML/lightSAML.
在这种情况下,使用LightSAML-Core,签名验证可以像他们的食谱页面上所解释的那样完成http://www.lightsaml.com/LightSAML-Core/Cookbook/How-to-verify-signature-of-SAML-message/在以下步骤中
validate()响应签名属性的调用方法请注意,正确处理响应仍然只是验证签名.完整的SAML Web浏览器SSO配置文件解决了LightSAML也实现的其他验证.
如果您正在使用Symfony,则可以检查LightSAML/SpBundle,因为它实现了完整的SAML SSO配置文件,并与Symfony的安全性集成,使SAML SSO非常容易实现.
如果你真的是从头开始自己做,你可以检查xmlseclibs如何做到这一点,例如在https://github.com/robrichards/xmlseclibs上的一个维护叉中.
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |