脚本宝典收集整理的这篇文章主要介绍了OKTA SAML签名验证 – PHP,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
>从cert获取公钥.
>从发送给它的SamL中获取签名值.
>现在,它使用OPEnssl_verify函数($data,$signature,$pubkeykey,“sha1WIThrSAEncryption”);由于$data是OKTA用于签署saML响应的内容,因此我不确定$data必须设置什么.
我的代码,
$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,$pubkeyid,"sha1WithRSAEncryption");
当我将数据值分配给发送给应用程序的SAML响应时,我总是得到0.
我错过了什么吗?
在这种情况下,使用LightSAML-Core,可以按照以下步骤在其菜谱页面http://www.lightsaml.com/LightSAML-Core/Cookbook/How-to-verify-signature-of-SAML-message/上的说明进行签名验证
>将XML反序列化为数据模型对象 – 在您的情况下为Response类
>从其元数据的证书中加载IDP的公钥
>对响应签名属性调用validate()方法
请注意,正确处理响应仍然只是验证签名.完整的SAML Web浏览器SSO配置文件解决了LightSAML也实现的其他验证.
如果您使用的是Symfony,可以查看LightSAML/SpBundle,因为它实现了完整的SAML SSO配置文件,并与Symfony的安全性集成,使SAML SSO非常容易实现.
如果你真的是从头开始自己做,你可以检查xmlseclibs如何做到这一点,例如在https://github.com/robrichards/xmlseclibs的一个维护叉中.
以上是脚本宝典为你收集整理的OKTA SAML签名验证 – PHP全部内容,希望文章能够帮你解决OKTA SAML签名验证 – PHP所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。