Zentao
Zentao é um sistema/ferramenta de gerenciamento de projetos ágil (scrum), mas não suporta OIDC por si só. Para integrar o Zentao com o SSO do Casdoor, precisamos usar um módulo OIDC de terceiros chamado zentao-oidc, e este documento mostrará como fazer isso.
Etapa 1: Implementar Casdoor e Zentao
Primeiramente, implemente Casdoor e Zentao. Após uma implementação bem-sucedida, certifique-se de:
- Casdoor pode ser acessado e usado com sucesso.
- Você pode acessar e usar o Zentao com sucesso.
Etapa 2: Integrar o módulo OIDC de terceiros do Zentao
Instale zentao-oidc executando o seguinte comando:
git clone https://github.com/casdoor/zentao-oidc.git
Alternativamente, você pode baixar o ZIP e descompactá-lo.
Este módulo é usado para integrar o Zentao com SSO para OpenId. Eis como usá-lo:
Copie o diretório inteiro
oidc
para o módulo do Zentao e use-o como um módulo do Zentao. Renomeie o pacote baixado para 'oidc'.Configure o filtro.
Como o framework do Zentao filtra os parâmetros na URL e não permite espaços, você precisa colocar o seguinte código no final de
/config/my.php
.$filter->oidc = new stdclass();
$filter->oidc->index = new stdclass();
$filter->oidc->index->paramValue['scope'] = 'reg::any';Modifique
/module/commom/model.php
.Adicione 'oidc' à lista de acesso anônimo e adicione uma linha ao método
isOpenMethod
demodel.php
.public function isOpenMethod($module, $method)
{
if ($module == 'oidc' and $method == 'index') {
return true;
}
}Se você não quer que a tela de login do Zentao apareça, vá diretamente para a tela de login do Casdoor.
Modifique a última linha de código em
public function checkPriv()
em/module/common/model.php
.//return print(js::locate(helper::createLink('user', 'login', "referer=$referer")));
return print(js::locate(helper::createLink('oidc', 'index', "referer=$referer")));Modifique o método
setSuperVars()
dentro deframework/base/router.class.php
e comente as seguintes declarações.public function setSuperVars()
// unset($_REQUEST);
Etapa 3: Configurar Aplicativo Casdoor
- Crie um novo aplicativo Casdoor ou use um existente.
- Adicione sua URL de redirecionamento.
- Adicione o provedor que você deseja e preencha outras configurações necessárias.
Etapa 4: Configurar Zentao
Configure o arquivo config.php
no diretório oidc
.
$config->oidc->clientId = "<Your ClientId>";
$config->oidc->clientSecret = "<Your ClientSecret>";
$config->oidc->issuer = "http://localhost:8000";
Defina sua URL de redirecionamento em module/oidc
no método public function index()
.
$oidc->setRedirectURL($path."/zentao/oidc-index.html");
A URL aqui se refere a chamar o método 'index' no módulo 'oidc'. Você também precisa definir um separador de variáveis. Por padrão, o framework usa um traço ('-'). Por favor, consulte o framework oficial do Zentao para mais detalhes. "zentaoPHP框架"