Zentao
Zentaoはアジャイル(スクラム)プロジェクト管理システム/ツールですが、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をダウンロードして解凍することもできます。
このモジュールは、OpenIdのSSOにZentaoを統合するために使用されます。 使用方法は以下の通りです:
Zentaoのモジュールとして使用するために、
oidc
ディレクトリ全体を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()
の最後の行のコードを変更します。//return print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
return 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 = "<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框架"