跳到主内容

禅道

Zentao是一个敏捷(scrum)项目管理系统/工具,但它本身不支持OIDC。 要将Zentao与Casdoor SSO集成,我们需要使用一个名为zentao-oidc的第三方OIDC模块,本文档将向您展示如何操作。

步骤1:部署Casdoor和Zentao

首先,部署CasdoorZentao。 成功部署后,请确保:

  1. Casdoor 可以正常登录使用。
  2. 您可以成功登录并使用Zentao。

步骤2:集成Zentao OIDC第三方模块

通过运行以下命令安装 zentao-oidc

git clone https://github.com/casdoor/zentao-oidc.git

或者,您可以下载ZIP文件并解压它。

此模块用于将Zentao与OpenId的SSO进行集成。 以下是如何使用它:

  1. 将整个oidc目录复制到Zentao的模块中,并将其作为Zentao的一个模块使用。 将下载的包重命名为“oidc”。

  2. 配置过滤器。

    由于Zentao框架会过滤URL中的参数并且不允许有空格, 您需要将以下代码放在/config/my.php的末尾。

    $filter->oidc = new stdclass();
    $filter->oidc->index = new stdclass();
    $filter->oidc->index->paramValue['scope'] = 'reg::any';
  3. 修改/module/commom/model.php

    将 'oidc' 添加到匿名访问列表中,并在 model.phpisOpenMethod 方法中添加一行。

    public function isOpenMethod($module, $method)
    {
    if ($module == 'oidc' and $method == 'index') {
    return true;
    }
    }
  4. 如果你不希望看到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")));
  5. 修改framework/base/router.class.php中的setSuperVars()方法,并注释掉以下语句。

    public function setSuperVars()
    // unset($_REQUEST);

步骤3:配置Casdoor应用程序

  1. 创建一个新的Casdoor应用程序,或使用一个已经存在的。
  2. 添加您的重定向URL。Casdoor 应用设置
  3. 添加您想要的提供商并填写其他所需设置。

步骤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框架"