Início
» Como fazer
»
Conecte o ownCloud Infinite Scale ao Keycloak com OIDC.
Conecte o ownCloud Infinite Scale ao Keycloak com OIDC.
Frequentemente, os usuários acessam a página de login do Keycloak, autenticam-se e, em seguida, são redirecionados para a tela de login do ownCloud Infinite Scale — ou veem um erro de "usuário desconhecido". As causas mais comuns são um emissor de domínio incompatível, um cliente web copiado de uma versão de exemplo diferente ou uma declaração de identidade que não corresponde a uma conta oCIS. Configure o Keycloak como o provedor OpenID Connect (OIDC) externo do oCIS, alinhe esses três valores e verifique se o navegador e os clientes conseguem acessar o provedor via HTTPS.
Este passo a passo utiliza hosts fictícios: cloud.example.compara oCIS e sso.example.compara Keycloak. A configuração faz referência à documentação do ownCloud Infinite Scale 8.2; compare os nomes com a documentação da sua versão instalada antes de aplicá-los. Este guia é para o Infinite Scale (oCIS), não para o ownCloud Server 10.
1. Verifique o domínio e o ponto de extremidade de descoberta.
Um provedor de identidade (IdP) autentica usuários para outro serviço. O OpenID Connect é o protocolo de login que permite ao oCIS confiar nas informações de login e identidade do Keycloak. Um realm é o conjunto separado de usuários, clientes e configurações do Keycloak. Escolha o realm que atenderá ao oCIS e, em seguida, identifique seu URL emissor: para o realm de exemplo ocis, é https://sso.example.com/realms/ocis.
Antes de editar o oCIS, abra-o https://sso.example.com/realms/ocis/.well-known/openid-configurationem um navegador. Este documento de descoberta OpenID Connect descreve os endpoints do provedor. Confirme se o issuervalor corresponde exatamente à URL do domínio, incluindo esquema, host, maiúsculas e minúsculas e caminho. O emissor não deve ser a página de administração nem a URL de descoberta mais longa. O certificado TLS do provedor deve ser confiável para os navegadores dos usuários e para o servidor/container do oCIS.
O documento de descoberta deve informar o emissor de domínio exato configurado no oCIS.
Se a URL de descoberta não carregar, resolva primeiro os problemas de DNS, roteamento de proxy reverso, firewall ou certificado. Uma resposta bem-sucedida do navegador por si só não comprova que o contêiner oCIS consegue acessar o Keycloak; verifique também o acesso à rede a partir da rede de implantação do servidor. As regras de descoberta do OpenID Connect exigem que o emissor retornado identifique o mesmo provedor. Consulte a especificação de descoberta do OpenID Connect .
2. Associe o cliente Keycloak ao aplicativo web oCIS.
Use o exemplo de implantação do Keycloak no ownCloud como ponto de partida e certifique-se de que o arquivo de domínio corresponda à sua versão do oCIS. Não misture versões: o exemplo de composição atual usa o ID do cliente web web, enquanto notas de configuração mais antigas mencionam ocis-web. O Keycloak e o oCIS devem usar o mesmo ID de cliente.
No Keycloak, abra o domínio e o cliente web selecionados. Associe o fluxo de login e o ID do cliente ao exemplo do ownCloud. Defina URIs de redirecionamento válidas para os endereços de retorno de chamada exatos exigidos por esse domínio, usando o host HTTPS público. Defina as origens da web apenas conforme exigido pelo modelo. O curinga abaixo é ilustrativo e não uma recomendação para produção: padrões de redirecionamento amplos podem permitir destinos não intencionais. Os rótulos variam de acordo com a versão do Keycloak.
Utilize o URI de redirecionamento e o ID do cliente do modelo de domínio que corresponde à sua versão do oCIS; os valores exibidos são exemplos.
Mantenha o nome de host público do Keycloak estável. Se o TLS terminar em um proxy reverso, configure o nome de host público e os cabeçalhos de proxy confiáveis desse proxy; caso contrário, os redirecionamentos podem usar o esquema ou host incorretos. Siga as orientações do Keycloak para proxy reverso . Substitua as credenciais de administrador de demonstração antes de expor o Keycloak.
3. Direcione oCIS para o mesmo emissor e cliente.
Adicione essas variáveis ao serviço oCIS na sua configuração de implantação, preservando as demais configurações e segredos. O exemplo utiliza URLs fictícios e o ID do cliente de exemplo atual:
OCIS_URLé o endereço público do oCIS; o ID do emissor e o ID do cliente devem corresponder exatamente ao Keycloak. A reescrita habilita o caminho de descoberta usado pelos clientes de desktop, Android e iOS. A exclusão idpinterrompe o provedor integrado em implantações de IdP externo; omita-a se sua configuração usar esse serviço intencionalmente.
Essas configurações do oCIS direcionam a autenticação para o Keycloak e encaminham a descoberta OIDC para o provedor externo.
Aplique as alterações com o processo normal de reinicialização da sua implantação. Com o Docker Compose, execute o comando docker compose up -da partir do diretório `compose` para recriar os serviços alterados e, em seguida, revise os logs do oCIS. Use certificados TLS confiáveis em produção. O exemplo do ownCloud marca INSECURE=trueuma opção de certificado autoassinado local; remova-a ou defina-a como `false` em um servidor voltado para a internet. O ownCloud também recomenda não usar essa opção PROXY_OIDC_INSECUREem produção.
4. Decida como oCIS deve identificar os usuários.
Uma declaração (claim) é um campo de identidade OIDC, como sub` username`, `mail` preferred_usernameou email`userID`. O oCIS usa esse campo para encontrar uma conta. Para usuários existentes, mapeie-o para o atributo que eles já utilizam — nome de usuário, e-mail ou ID do usuário. Uma incompatibilidade pode resultar na mensagem "usuário não encontrado" após o Keycloak aceitar o login.
Para criar contas no primeiro login, defina-as PROXY_AUTOPROVISION_ACCOUNTS=truesomente quando necessário e após habilitar as gravações no backend de usuários do oCIS Graph. O identificador deve ser único, estável e nunca reatribuído. O ownCloud o identifica subcomo adequado; use o e-mail ou o nome de usuário preferido somente se não puder ser alterado. Mantenha as declarações de criação e de consulta alinhadas.
Confirme se o Keycloak retorna a declaração escolhida no token ou na resposta de informações do usuário. Com o provisionamento automático desativado, um novo usuário não é criado no login; com um backend Graph somente leitura, o provisionamento pode falhar. Adicione o mapeamento de grupo ou função somente após o login funcionar. Consulte a documentação do ownCloud 8.2 sobre proxy e provisionamento automático antes de habilitar o acesso de gravação ou alterar os mapeamentos de identidade.
Verifique o fluxo completo de login.
Abra o oCIS em uma janela anônima do navegador e faça login. Você deverá acessar o domínio do Keycloak, autenticar-se e retornar ao mesmo host do oCIS da conta esperada. Teste primeiro com uma conta existente. Se o provisionamento estiver habilitado, teste com um novo usuário aprovado e confirme se ele foi criado com o nome de usuário desejado. Saia da conta e repita o login.
Após a autenticação bem-sucedida, o navegador deverá retornar à interface de arquivos na nuvem.
Para descoberta em desktop ou dispositivos móveis, abra https://cloud.example.com/.well-known/openid-configuration; a reescrita deve expor as informações do provedor do Keycloak. Um loop de login indica uma incompatibilidade de host ou esquema de redirecionamento. Um usuário rejeitado após um login bem-sucedido indica uma declaração ausente ou uma incompatibilidade entre PROXY_USER_OIDC_CLAIMe PROXY_USER_CS3_CLAIM.