禅道
Zentao是一个敏捷(scrum)项目管理系统/工具,但它本身不支持OIDC。 要将Zentao与Casdoor SSO集成,我们需要使用一个名为zentao-oidc的第三方OIDC模块,本文档将向您展示如何操作。
步骤1:部署Casdoor和Zentao
首先,部署Casdoor和 Zentao。 成功部署后,请确保:
- Casdoor 可以正常登录使用。
- 您可以成功登录并使用Zentao。
步骤2:集成Zentao OIDC第三方模块
通过运行以下命令安装 zentao-oidc:
git clone https://github.com/casdoor/zentao-oidc.git
或者,您可以下载ZIP文件并解压它。
此模块用于将Zentao与OpenId的SSO进行集成。 以下是如何使用它:
将整个
oidc
目录复制到Zentao的模块中,并将其作为Zentao的一个模块使用。 将下载的包重命名为“oidc”。配置过滤器。
由于Zentao框架会过滤URL中的参数并且不允许有空格, 您需要将以下代码放在
/config/my.php
的末尾。$filter->oidc = new stdclass();
$filter->oidc->index = new stdclass();
$filter->oidc->index->paramValue['scope'] = 'reg::any';修改
/module/commom/model.php
。将 'oidc' 添加到匿名访问列表中,并在
model.php
的isOpenMethod
方法中添加一行。public function isOpenMethod($module, $method)
{
if ($module == 'oidc' and $method == 'index') {
return true;
}
}如果你不希望看到Zentao的登录界面,可以直接前往Casdoor的登录界面。
修改
/module/common/model.php
中的public function checkPriv()
的最后一行代码。//返回 print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
返回 print(js::locate(helper::createLink('oidc', 'index', "referer=$referer")));修改
framework/base/router.class.php
中的setSuperVars()
方法,并注释掉以下语句。public function setSuperVars()
// unset($_REQUEST);
步骤3:配置Casdoor应用程序
- 创建一个新的Casdoor应用程序,或使用一个已经存在的。
- 添加您的重定向URL。
- 添加您想要的提供商并填写其他所需设置。
步骤4:配置Zentao
在oidc
目录中配置config.php
文件。
$config->oidc->clientId = "<您的ClientId>";
$config->oidc->clientSecret = "<您的ClientSecret>";
$config->oidc->issuer = "http://localhost:8000";
在module/oidc
中设置你的重定向URL,在public function index()
方法中。
$oidc->setRedirectURL($path."/zentao/oidc-index.html");
这里的URL是指调用 'index' 方法在 'oidc ' 模块中。 您还需要设置一个变量分隔符。 默认情况下,框架使用破折号("-")。 请参考官方的Zentao框架以获取更多详情。 "zentaoPHP框架"