禅道
禅道 是一款敏捷项目管理工具。它原生不支持 OIDC,可以用 zentao-oidc 模块集成 Casdoor SSO。
步骤1:部署Casdoor和Zentao
部署 Casdoor 和 禅道。确认两者都在运行,并且都能登录。
步骤2:集成Zentao OIDC第三方模块
通过运行以下命令安装 zentao-oidc:
git clone https://github.com/casdoor/zentao-oidc.git
也可以下载 ZIP 包后解压。
此模块用于将Zentao与OpenId的SSO进行集成。以下是如何使用它:
-
将整个
oidc目录复制到Zentao的模块中,并将其作为Zentao的一个模块使用。将下载的包重命名为“oidc”。 -
配置过滤器。
由于禅道框架会过滤 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 ' 模块中。您还需要设置一个变量分隔符。默认情况下,框架使用破折号("-")。更多细节见禅道框架官方文档。 "zentaoPHP框架"