메인 콘텐츠로 건너뛰기

Zentao

Zentao는 애자일(scrum) 프로젝트 관리 시스템/도구이지만, 자체적으로 OIDC를 지원하지 않습니다. Zentao를 Casdoor SSO와 통합하려면, zentao-oidc라는 3rd-party 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.phppublic function checkPriv()에서 마지막 코드 줄을 수정합니다.

    //return print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
    return 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 = "<Your ClientId>";
$config->oidc->clientSecret = "<Your ClientSecret>";
$config->oidc->issuer = "http://localhost:8000";

public function index() 메소드의 module/oidc에서 리디렉션 URL을 설정합니다.

$oidc->setRedirectURL($path."/zentao/oidc-index.html");
노트

여기의 URL은 'oidc' 모듈의 'index' 메소드를 호출하는 것을 의미합니다. 또한 변수 구분자를 설정해야 합니다. 기본적으로 프레임워크는 대시("-")를 사용합니다. 자세한 내용은 공식 Zentao 프레임워크를 참조하십시오. "zentaoPHP框架"