html Integração do keycloak | Nullcore
Pule para o conteúdo principal

Integração de keycloak

aviso

Este tutorial é uma contribuição da comunidade e não é suportado pela equipe Nullcore. Serve apenas como uma demonstração sobre como personalizar o Nullcore para o seu caso de uso específico. Quer contribuir? Confira o tutorial contribuinte.

Este guia explica como integrar o Nullcore com o keycloak para OIDC Single Sign-On (SSO).

1. Preparação do ambiente e mudança de porta

Porta do servidor Webui abre WebUi

  • Porta padrão8080

Keycloak porto em questão de conflito

Keycloak também usa porta8080Por padrão, o que causa um conflito. Altere a porta keycloak para9090

bin/kc.sh start-dev--http-port = 9090

2. Crie um reino keycloak

  1. Abra seu navegador e vá parahttp://localhost:9090. Crie uma conta de administrador.
  2. Faça login no console do administrador emhttp://localhost:9090/admin
  3. Do suspensão do reino no topo, cliqueAdicione o reino
  4. DigitarnullcoreComo oNome do reinoe cliqueCriar

create-realm

3. Crie um cliente OpenID Connect

informações

Certifique -se de selecionar onullcorereino. O padrão émaster

select-realm

  1. Garanta onullcoreReino que você acabou de criar é selecionado.
  2. No menu esquerdo, cliqueClientesCriar cliente
  3. DefinirID do clienteparaopen-webui
  4. ManterProtocolo do clientecomoopenid-connect
  5. DefinirTipo de acessoparaconfidentiale cliqueSalvar

access-setting-client

4. Habilite a autenticação do cliente e obtenha credenciais

Por padrão, o keycloak 26.x define a autenticação do cliente como "nenhum", por isso precisa ser configurado manualmente.

  1. Vá paraClientesOpen-WebuiConfigurações
  2. Verifique oAutenticador de clientesuspenso.
  3. Mudar "nenhum" paraID do cliente e segredoe cliqueSalvar
  4. Clique noAvançadoguia.
  5. NoAutenticação do clienteSeção, clique emRevelar segredoe copie o segredo.
  6. Cole este segredo noOAUTH_CLIENT_SECRETvariável em seu.envarquivo.

5. Crie um usuário de teste

  1. No menu esquerdo, vá paraUsuáriosAdicionar usuário
  2. Preencha oNome de usuário, Assim,E-mail, etc., e cliqueSalvar
  3. Clique no usuário recém -criado e depois vá para oCredenciaisguia.
  4. Digite uma nova senha, desmarqueTemporárioe cliqueDefina a senha
    • Exemplo: nome de usuáriotestuser, SenhaTest1234!

6. Configure o Nullcore .env

Adicione ou modifique as seguintes variáveis ​​em seu.envarquivo.

# Ativar login OAuth2/OIDC
Enable_oauth_signup = true

# Informações do cliente keycloak
OAuth_Client_Id = Open-Webui
Oauth_client_secret = <your_copied_secret>

# OIDC Discovery Document URL
OpenId_Provider_url = http: // localhost: 9090/realms/nullcore/.well-conhecida/OpenId-Configuration

# (Opcional) rótulo de botão SSO
Oauth_provider_name = keycloak

# (Opcional) URL de retorno de chamada OAuth
OpenId_redirect_uri = http: // localhost: 8080/oauth/oidc/retorno de chamada

Reinicie o servidor aberto da webui depois de modificar o.envarquivo.

7. HTTP vs. HTTPS

  • HTTP (Desenvolvimento/Teste)
    • Esquema:http://
    • Exemplo:http://localhost:9090
  • HTTPS (Produção recomendada)
    • Requer configuração KeyCLoak TLS ou um proxy reverso com terminação SSL.
    bin/kc.sh start--https-port = 9090 \
    --https-key store = keystore.jks \
    --https-key-store-password = <dasty>

8. Teste a integração

  1. Vá parahttp://localhost:8080. Você deve ver um botão "Continuar com keycloak".
  2. Clique no botão. Você deve ser redirecionado para a página de login do keycloak.
  3. Faça login comtestuserTest1234!. Você deve ser redirecionado com sucesso de volta para abrir o Webui.

9. Configurar o mapeamento do grupo KeyCloak

9.1. Visão geral

Por padrão, os clientes KeyCloak não incluem informações de grupo em tokens. Siga estas etapas para passar informações do grupo.

9.2. Localize a criação do mapeador

  1. Vá para o KeyCloak Admin Console:http://localhost:9090/admin

  2. Selecione onullcorereino.

  3. Navegar paraClientese selecione oopen-webuicliente.

  4. Vá para oEscopos de clientesguia.

  5. Selecione o escopo que conterá as informações do grupo (por exemplo,,profileouopen-webui-dedicated

    scope-client

  6. Nos detalhes do escopo selecionado, vá para oMappersguia.

9.3. Crie mapeador

CliqueCriarouAdicione embutidoPara começar a criar um novo mapeador.

9.4. Configurações de mapeador

Configure o mapeador com as configurações apropriadas para incluir a associação ao grupo.

mappers-setting-group-client

9.5. Salvar e aplicar

  • Salvara configuração do mapeador.
  • Reiniciaro servidor Nullcore para aplicar as alterações.

9.6. Configurar variáveis ​​de ambiente aberto webui

Adicione ou modifique essas variáveis ​​em seu.envarquivo:

# Ativar sincronização do grupo
Enable_oauth_group_management = true
# (Opcional) Ative a criação de grupo just-in-time
Enable_oauth_group_creation = true
# A chave de reivindicação para grupos no token
Oauth_group_claim = grupos