gpt4 book ai didi

cakephp - cakephp 应用程序中的 SAML SSO

转载 作者:行者123 更新时间:2023-12-02 20:56:19 24 4
gpt4 key购买 nike

我有一个 cakephp 应用程序,需要通过 SAML 登录对用户进行身份验证。为此,我点击了链接“https://github.com/zl4bv/CakePHP-simpleSAMLphp-Plugin”。

根据其文档,我已经下载了 cakephp 和 simpleSAMLphp 的新副本。现在,我的工作区中有一个 cakephp 文件夹和 simpleSAMLphp 文件夹。我已经按照链接“https://simplesamlphp.org/docs/stable/”中的描述安装了 simpleSAMLphp。我按照以下步骤操作:(1)我在apache配置中配置了simpleSAML如下:

<VirtualHost *>
ServerName service.local-saml.com
DocumentRoot /var/www/simplesamlphp/www/

<Directory "/var/www/simplesamlphp/www/">
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

(2) 现在,在 simplesamlphp 应用程序文件夹中,我更改了 /config/config.php 文件中“auth.adminpassword”、“secretsalt”、“technicalcontact_name”、“technicalcontact_email”的值。

(3) 我使用了默认启用的 SAML:sp 模块。

(4) 首先,我从 SAML 作为身份提供者开始。

(5) 我在 /config/config.php 文件中启用了 'enable.saml20-idp' => true。

(6)通过终端命令创建ssl自签名证书

sudo openssl req -new -x509 -days 3652 -nodes -out /etc/ssl/certs/simplesamlphp.crt -keyout /etc/ssl/certs/simplesamlphp.pem

(7) 将上述证书移至simplesamlphp/cert。(8)在config/authsources.php

中添加私钥和证书
'default-sp' => array(
'saml:SP',
'privatekey' => 'simplesamlphp.pem',
'certificate' => 'simplesamlphp.crt',

)

(9) 还向“metadata/saml20-idp-hosted.php”文件添加了私钥和证书。

(10) 更改了“metadata/saml20-sp-remote.php”中的元数据

$metadata['http://service.local-saml.com'] = array(
'AssertionConsumerService' => 'http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
'SingleLogoutService' => 'http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
);

(11) 我在链接“https://openidp.feide.no/simplesaml/module.php/core/loginuserpass.php?AuthState=_36266db92ac88d2d66ae8ede39dd1264a39243f08e%3Ahttps%3A%2F%2Fopenidp.feide.no%2Fsimplesaml%2Fmodule.php%2Fcore%2Fas_login.php%3FAuthId%3Dopenidp-ldap%26ReturnTo%3Dhttps%253A%252F%252Fopenidp.feide.no%252Fsimplesaml%252Fmodule.php%252Fmetaedit%252Findex.php”上添加了元数据。

(12) 我在浏览器上输入了 url“http://service.local-saml.com/simplesaml ”,它工作正常。我尝试使用 default-sp 选项登录,它工作正常。

现在,我想在我的 cakephp 应用程序中使用这个 simplesamlphp。(13)为此,如“https://github.com/zl4bv/CakePHP-simpleSAMLphp-Plugin”中提到的,我将saml文件夹放在Cakephp的/app/plugin文件夹中

(14) 我在 core.php 和 bootstrap.php 文件上添加了行。

(15) 我制作了一个 usersController 并与链接的示例文件中给出的内容相同。

(16)我添加了以下内容

'sp1' => array(
'saml:SP',
'privatekey' => 'simplesamlphp.pem',
'certificate' => 'simplesamlphp.crt',
'entityID' => 'http://localhost/cakephp1',
),

在 simplesamlphp 的 config/authsources.php 中。

(17)我在metadata/saml20-sp-remote.php中添加了元数据

$metadata['http://localhost/cakephp'] = array(
'AssertionConsumerService' => 'http://localhost/cakephp',
'SingleLogoutService' => 'http://localhost/cakephp',
);

当我在浏览器上输入localhost/cakephp时,链接重定向到“https://openidp.feide.no/simplesaml/module.php/core/loginuserpass.php”,用户输入了他的用户名和密码,但是“状态信息丢失了”错误显示在“ http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/sp1 ”处,并且用户未返回到“localhost/cakephp”。我希望当用户输入登录凭据时用户返回到 cakephp url。

请帮助我哪里错了以及我错过了什么?

最佳答案

cakephp 和 simpleSAMLphp 似乎存在 session 冲突。一种可行的解决方案是安装 memcache 并使用 memcache 为 simpleSAMLphp 提供 session 处理程序。 https://simplesamlphp.org/docs/stable/simplesamlphp-maintenance#section_2_1

但是还有更多方法,检查一下: https://simplesamlphp.org/docs/development/simplesamlphp-nostate

关于cakephp - cakephp 应用程序中的 SAML SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34036346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com