PHP SAML SP端

SAML2.0介绍

https://www.cnblogs.com/shuidao/p/3463947.html

https://www.jianshu.com/p/636c1ee16eba

php-saml 

https://github.com/onelogin/php-saml

①使用composer直接引入

composer require onelogin/php-saml

遇到问题:提示未找到方法 XMLSecurityKey

少了xmlseclibs

composer require robrichards/xmlseclibs

引入xmlseclibs后发现 还是找不到 定位原因 不识别命名空间 写全路径也无果(优先项目。。。放弃此方式)

②直接SSH 克隆 git@github.com:onelogin/php-saml.git

目录 /php-saml/extlib/ 下有xmlseclibs 无需引入 使用master时输出xml文件时提示有错误,排查无果可能和文件格式有关(优先项目。。。放弃此方式)

③ 切换到composer分支 git checkout composer

可以正确使用

④正式使用

1.进入目录php-saml
2.复制settings-example.php 改名为 settings.php
3.进入settings.php,做下面配置
4.settings.php会在new OneLogin_Saml2_Auth() 被解析成xml 发起请求时base_64加密后传给IDP

SP 的配置 entityId和 assertionConsumerService(ACS)回调地址 我对接的时候是给到IDP方他们也需要配置。

IDP 的配置 entityId、 singleSignOnServicex509cert 请求地址 由IDP方提供,x509cert 由IDP提供crt格式的文件。

⑤sp发起请求

   此处写自己的逻辑 用法就是这样

    session_start();
    require_once dirname(__DIR__) . '/repair/php-saml/_toolkit_loader.php';
    $auth = new OneLogin_Saml2_Auth();
    $auth->login();

⑥sp acs 回调

    IDP方会POST请求回调地址(SP ACS)带回加密的SAMLResponse

     此处写自己的逻辑 用法就是这样  方法 $auth->getAttributes(); 获取数据

    session_start();
    require_once dirname(__DIR__) . '/repair/php-saml/_toolkit_loader.php';
    $auth = new OneLogin_Saml2_Auth();
    // 解析$_POST['SAMLResponse'];
    $auth->processResponse();
    $errors = $auth->getErrors();
    // 验证是否出错
    if (!empty($errors)) {
        print_r('<p>' . implode(', ', $errors) . '</p>');
        exit();
    }
    // 验证用户是否登录成功
    if (!$auth->isAu
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值