标签: simplesamlphp

"收到了一个在将来有效的断言.检查IdP和SP上的时钟同步"

我在我的应用中使用https://simplesamlphp.org/.大部分时间都很好,没有问题.其他时候我得到这个:

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 ssoclient/www/module.php:180 (N/A)
Caused by: SimpleSAML_Error_Exception: Received an assertion that is valid in the future. Check clock synchronization on IdP and SP. 
Backtrace:
3 ssoclient/modules/saml/lib/Message.php:565 (sspmod_saml_Message::processAssertion)
2 ssoclient/modules/saml/lib/Message.php:523 (sspmod_saml_Message::processResponse)
1 ssoclient/modules/saml/www/sp/saml2-acs.php:75 (require)
0 ssoclient/www/module.php:135 (N/A)
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?我需要更改系统时间吗?(我在Debian上).

php simplesamlphp

12
推荐指数
1
解决办法
4025
查看次数

SimpleSAMLphp状态信息丢失

我在https://biz.dev.originsystems.co.za上设置了服务提供商.我在http://stage.originsystems.co.za上设置了IdP .

使用https://biz.dev.originsystems.co.za/simplesaml/module.php/core/authenticate.php上的工具测试身份验证时,一切正常.它回到Dev网站,具有所需的属性,一切都快乐和快乐.

但是,当我尝试在https://biz.dev.originsystems.co.za上的代码中实际点击IdP时,我被重定向到舞台登录页面但登录后我收到"状态信息丢失"错误.我得到以下调试信息:

SimpleSAML_Error_NoState: NOSTATE

Backtrace:
2 /webdevroot/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState)
1 /webdevroot/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require)
0 /webdevroot/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A)
Run Code Online (Sandbox Code Playgroud)

我已经完成了页面要求我做的所有故障排除,但情况仍然存在.

我在浏览器上打开了开发工具并观看了cookie信息.biz.dev.originsystems.co.za的cookies包含一个SimpleAMLAuthToken,因此我认为cookie正在运行.我用来点击IdP的代码是:

$as = new SimpleSAML_Auth_Simple("stage-sso-sp");
$as->requireAuth();
$attributes = $as->getAttributes();
print_r($attributes);
Run Code Online (Sandbox Code Playgroud)

更新:

这里有更多信息......

我想确定问题是否与我如何设置IdP有关,所以我开始使用SSO Circle作为IdP.在SSO Circle上进行身份验证后,状态信息也会丢失.我认为这意味着问题出在我的SimpleSAML服务提供商设置的某个地方.这是发生了什么......

当我访问https://biz.stage.originsystems.co.za/simplesaml上的SimpleSAML测试认证来源页面时,我有以下cookie值...

Name                                       Value
SimpleSAMLAuthToken                        _a53569c0701dd02832532df14cf10cd0b2d9fcd6b6
biz.stage.originsystems.co.za              10fc356e0bfbf707af5fa5854c378755
ccof                                       RGN002
xbrF                                       84aadc624fc51c0c9340d45645c08643
Run Code Online (Sandbox Code Playgroud)

除SimpleSAMLAuthToken之外的所有内容都来自我们的应用程序,不应影响SimpleSAML.一旦我被重定向到SSO Circle并进行身份验证,我将返回到我的SimpleSAML页面,并且Auth Token现在具有值,_39679e07cb1911e08b2bff3580a9929faddd07e9b6并且正确返回所有相关信息.日志文件显示以下活动.

Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Received SAML2 Response from 'http://idp.ssocircle.com'.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] No certificate in message when …
Run Code Online (Sandbox Code Playgroud)

php saml simplesamlphp

12
推荐指数
1
解决办法
2784
查看次数

使用SimpleSAMLPHP SP和ADFS IDP的请求者/ InvalidNameIDPolicy错误

特别是在浏览了整个互联网之后

我尝试了对authsource.php和元数据php的所有建议修改.没有任何效果.

这是我的authsource.php

'default-sp' => array(
    'saml:SP',
    'privatekey' => 'saml.pem',
    'certificate' => 'saml.crt',
    'idp' => 'http://domain.com/adfs/services/trust',
Run Code Online (Sandbox Code Playgroud)

我用它XML to simpleSAMLphp metadata converter来生成saml20-idp-remote.php

因此,当我访问该页面时,SimpleSAMLPHP正确地将我重定向到IDP登录页面.我解码了SAML请求:

<samlp:AuthnRequest 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
    ID="_4e03333c7aa76314d965e05f8fcdd3e1f4c5be96c8" 
    Version="2.0" 
    IssueInstant="2014-12-11T19:41:50Z" 
    Destination="https://domain.com/adfs/ls/" 
    AssertionConsumerServiceURL="https://sub.domain.com/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp" 
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">

    <saml:Issuer>
        https://su.bdomain.com/simplesaml/module.php/saml/sp/metadata.php/default-sp
    </saml:Issuer>
    <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>

</samlp:AuthnRequest>
Run Code Online (Sandbox Code Playgroud)

使用有效的测试帐户登录后,我将重定向回到我的网站并显示错误.

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 /var/www/html/igt_s3k/web/simplesamlphp/www/module.php:179 (N/A)
Caused by: sspmod_saml_Error: Requester/InvalidNameIDPolicy
Backtrace:
3 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/lib/Message.php:385 (sspmod_saml_Message::getResponseError)
2 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/lib/Message.php:495 (sspmod_saml_Message::processResponse)
1 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/www/sp/saml2-acs.php:96 (require)
0 /var/www/html/igt_s3k/web/simplesamlphp/www/module.php:134 (N/A)
Run Code Online (Sandbox Code Playgroud)

我尝试设置不同的NameIDPolicy,但没有一个工作.

    //'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
    //'NameIDPolicy' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient', …
Run Code Online (Sandbox Code Playgroud)

php saml adfs2.0 simplesamlphp

10
推荐指数
3
解决办法
1万
查看次数

与Laravel护照的SSO

我正在考虑使用Passport在Laravel 5中开发一个完整的身份系统.

以下是我的要求:

  1. 我应该有一个主要的身份管理应用程序,如identity.mysite.com,我的所有用户都存储在那里.
  2. 我有2个其他应用程序APP1,APP2.
  3. 当用户在APP1上请求受限资源时,他应该通过identity.mysite.com进行身份验证
  4. 经过身份验证后,让用户访问APP1上的资源
  5. 同时,如果用户决定访问APP2上的受限资源,则不应要求他再次输入凭据.

我试过的事情:

  1. simpleSAMLphp - SAML是一个为我做这些事情的选项.但它并不像OneLogin那样成熟,我不打算在这个阶段进入SaaS模式,除非它是必要的.
  2. Laravel Passport - oAuth 2.0似乎很诱人.我甚至可以使用Passport Grant Tokens,但我不确定它对SAML的可靠程度.此外,Laravel Passport被广泛用于验证API.在验证传统的基于会话的应用程序时它会有用吗?我没有看到任何使用多个应用程序和laravel护照实施适当SSO的示例.

我知道OAuth 2.0不是身份验证协议.相反,它使用称为授权的东西,但我们可能会使其工作以支持此处提到的身份验证协议.这是Laravel护照支持的吗?

oauth-2.0 saml-2.0 laravel simplesamlphp laravel-5

9
推荐指数
1
解决办法
3004
查看次数

SSOCircle保持重定向到Consent页面SAML2.0

我正在使用SSOCircle来测试我的SAML实现与Codeigniter.目前的步骤是:

  1. 访问website.com
  2. 重定向到SSOCircle同意页面
  3. 验证身份
  4. 将用户数据传回website.com

但是,在步骤3之后,它立即进入步骤4并返回步骤3.

这是我的代码:

public function index()
    {
        $data['languages']= get_all_languages();
        $sp_auth = 'default-sp';
        try {
            $auth = new SimpleSAML_Auth_Simple($sp_auth);
            $auth->requireAuth(array(
            'ReturnTo' => $this->data['controller'],
            'KeepPost' => FALSE,
            ));
            $attributes = $auth->getAttributes();
            var_dump($attributes);
        } catch (Error $e) {
            print_r($e);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我认为我的重定向可能是它继续调用同意页面的原因.但是当添加另一个url以便使用此功能进行访问时

public function auth(){
        $attributes = $auth->getAttributes();
        var_dump($attributes);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION

Backtrace:
1 www/_include.php:45 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: SimpleSAML_Error_Exception: No authentication source with id 'Login/Auth' found.
Backtrace:
2 lib/SimpleSAML/Auth/Source.php:335 (SimpleSAML_Auth_Source::getById)
1 modules/saml/www/sp/saml2-acs.php:12 (require)
0 www/module.php:135 …
Run Code Online (Sandbox Code Playgroud)

php codeigniter saml saml-2.0 simplesamlphp

9
推荐指数
1
解决办法
571
查看次数

SimpleSAMLphp无法验证签名错误

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION

Backtrace:
0 simplesamlphp/www/module.php:189 (N/A)
Caused by: Exception: Unable to validate Signature

    Backtrace:
    6 simplesamlphp/lib/SAML2/Utils.php:149 (SAML2_Utils::validateSignature)
    5 simplesamlphp/lib/SAML2/Assertion.php:494 (SAML2_Assertion::validate)
    4 simplesamlphp/modules/saml/lib/Message.php:185 (sspmod_saml_Message::checkSign)
    3 simplesamlphp/modules/saml/lib/Message.php:560 (sspmod_saml_Message::processAssertion)
    2 simplesamlphp/modules/saml/lib/Message.php:532 (sspmod_saml_Message::processResponse)
    1 simplesamlphp/modules/saml/www/sp/saml2-acs.php:81 (require)
    0 simplesamlphp/www/module.php:144 (N/A)
Run Code Online (Sandbox Code Playgroud)

登录运行SimpleSAMLphp的站点时出现错误.这在服务器上的SSL证书过期时启动,但此后已更新为新的有效证书.我认为这会纠正错误,但正如你所看到的,它没有.

我一直无法找到其他人遇到同样的问题所以我一定错过了一些明显的东西.

php ssl saml single-sign-on simplesamlphp

8
推荐指数
1
解决办法
8213
查看次数

从PHP Web应用程序连接到Azure Active Directory

为了获得关于这个主题的指导,因为我真的坚持这个,我有一个PHP的应用程序的内部URL,我想连接到Azure Active Directory.

到目前为止,我已经回顾了微软使用SimpleSAML的一个例子,但它确实已经过时了,我在为新的SimpleSAMl代码调整它时遇到了麻烦.

有没有更好的方法将Web应用程序与Azure AD集成?我在某个地方读到了我可以使用移动服务入门但我想听听以前的经验,了解使用Azure AD登录PHP的最佳/最新方法是什么?

- 编辑 -

通过集成,我的意思是允许人们从Azure AD中验证和检索电子邮件地址或EmployeeID以提供SSO支持.

php active-directory azure simplesamlphp

7
推荐指数
2
解决办法
1万
查看次数

如何在yii框架中使用SimpleSAMLphp?

我在yii框架中有两个项目,我想使用SimpleSAMLphp和SSO两个项目.我需要的条件是,如果我从第一个项目登录,我想访问第二个项目.先感谢您.

yii yii-components simplesamlphp

6
推荐指数
1
解决办法
2286
查看次数

在Windows Apache中安装SimpleSAMLphp

我想在Windows Apache/Xampp中安装SimpleSAMLphp.让我告诉你到目前为止做了什么:1.我从https://simplesamlphp.org/download下载了最新的稳定版本,并将解压缩的文件放在Apache文件夹中,即C:\ Apache24\simplesamlphp目录包含composer.json.我也下载了依赖项.2.现在,当我要在站点中显示vhost时6.将Apache部分配置为

<VirtualHost *:80>
        ServerName localhost
        DocumentRoot C:/Apache24/htdocs
</VirtualHost>

<VirtualHost *:80>
        ServerName service.example.com
        DocumentRoot C:/Apache24/service.example.com

        Alias /simplesaml C:/Apache24/simplesamlphp/www
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
  1. 更改了配置文件.

现在问题是:我无法在浏览器中打开Alias.并在浏览器中运行httpd.exe显示有关example.com不存在的错误.

如果有人在Windows中设置SimpleSAMLphp需要帮助,请分享您的步骤和虚拟主机配置.这会帮助我思考很多人.

提前致谢.

php windows apache simplesamlphp

6
推荐指数
1
解决办法
3994
查看次数

SimpleSAMLphp不在注销时重定向

SimpleSAMLphp不会在第一次将我重定向到我的ReturnTo地址,而是将我带到我的IdP登出页面。如果我再次单击注销链接,它将带我到正确的ReturnTo页面。为什么会这样呢?

我正在$as->logout("http://myurl.com");处理注销。

php simplesamlphp

6
推荐指数
1
解决办法
247
查看次数