メインコンテンツにスキップ

Zentao

Zentaoはアジャイル(スクラム)プロジェクト管理システム/ツールですが、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をダウンロードして解凍することもできます。

このモジュールは、OpenIdのSSOにZentaoを統合するために使用されます。 使用方法は以下の通りです:

  1. Zentaoのモジュールとして使用するために、oidcディレクトリ全体を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()の最後の行のコードを変更します。

    //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";

module/oidc内のpublic function index()メソッドでリダイレクトURLを設定します。

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

ここでのURLは、'oidc'モジュール内の'index'メソッドを呼び出すことを指します。 変数セパレータも設定する必要があります。 デフォルトでは、フレームワークはダッシュ("-")を使用します。 詳細については、公式のZentaoフレームワークを参照してください。 "zentaoPHP框架"