Corrigir erro "Token inválido" na integração do ONLYOFFICE com o Nextcloud

A mensagem "Token inválido" do ONLYOFFICE geralmente significa que os dois lados da integração não estão validando o mesmo JSON Web Token (JWT). Em uma configuração do Nextcloud, o ponto importante é que existem vários caminhos de token: a configuração do editor enviada ao navegador, as solicitações recebidas pelo ONLYOFFICE Docs e as solicitações enviadas, como callbacks para o Nextcloud. Uma falha em qualquer um deles pode parecer semelhante para o usuário.

Um detalhe importante a considerar antes de começar a alterar as configurações: o JWT está habilitado por padrão no ONLYOFFICE Docs desde a versão 7.2 , e o Servidor de Documentos pode gerar um segredo automaticamente. Isso torna um tutorial antigo que dizia "deixe o JWT desabilitado" uma base inadequada para uma instalação moderna. A recomendação atual da ONLYOFFICE é configurar seu próprio segredo e usá-lo no conector. Consulte o guia de configuração de JWT da ONLYOFFICE .

Tela de administração do Nextcloud ONLYOFFICE mostrando a URL do servidor de documentos, o segredo JWT, o cabeçalho de autorização, URLs internas e um aviso de token inválido.
O erro é uma falha de validação, não uma prova de que o servidor de documentos esteja offline. Comece comparando o segredo e o cabeçalho JWT em ambas as extremidades.

Guia rápido: o que verificar primeiro

SintomaÁrea mais provávelPrimeira ação
O erro aparece imediatamente ao abrir um documento.Incompatibilidade entre segredo, token do navegador ou cabeçalho.Compare o Nextcloud jwt_secretcom jwt_headeras configurações ativas do Document Server.
Funcionou antes da reinicialização do contêiner, mas depois falhou.Segredo do Docker regenerado ou alterado automaticamenteInspecione o ambiente do contêiner em execução e recrie-o com um valor fixo JWT_SECRET.
A verificação de integridade do Direct Document Server funciona, mas o Nextcloud reporta um token inválido.Configuração do conector ou caminho do proxy/cabeçalhoExecute o teste do conector occ onlyoffice:documentserver --checke compare os cabeçalhos.
Apenas funções de retorno de chamada ou salvamentos falham.Validação de token de saída, caminho de retorno de chamada ou tratamento de cabeçalho no lado do armazenamentoVerifique os logs do servidor de documentos e confirme se a solicitação de retorno de chamada chega ao Nextcloud com o cabeçalho JWT esperado.
O erro aparece intermitentemente próximo aos limites de expiração.Desvio de relógio ou tempo de vida do tokenVerifique a sincronização de tempo em ambos os hosts antes de alterar a margem de tolerância do JWT.

1. Confirme se o segredo compartilhado é realmente o mesmo.

A validação de JWT depende de um segredo compartilhado. O ONLYOFFICE Docs assina os tokens com esse segredo, e o destinatário verifica a assinatura usando o mesmo valor. Uma diferença de um único caractere, um espaço em branco no final, uma variável de ambiente antiga ou um segredo do Docker regenerado são suficientes para fazer com que um token aparentemente válido falhe na verificação.

No Nextcloud, o conector suporta essa jwt_secretconfiguração. O conector oficial também fornece uma occinterface de configuração, permitindo que você verifique o valor que o Nextcloud está realmente usando, em vez de depender de um arquivo de configuração que você acredita estar ativo. As configurações atuais do conector estão documentadas no arquivo README do conector ONLYOFFICE para Nextcloud .

sudo -u www-data php occ config:app:get onlyoffice jwt_secret
sudo -u www-data php occ config:app:get onlyoffice jwt_header

Não cole a chave secreta em tickets de suporte, capturas de tela, histórico do shell compartilhado com outros ou relatórios de problemas públicos. Compare-a localmente.

Para uma instalação nativa do ONLYOFFICE Docs no Linux, o arquivo de configuração compatível é:

/etc/onlyoffice/documentserver/local.json

Documentos do ONLYOFFICE separam as configurações de tokens para navegador, caixa de entrada e caixa de saída. Os valores secretos usados ​​para validação devem ser consistentes com a configuração do seu conector. Não edite o arquivo default.json; o ONLYOFFICE avisa explicitamente que os valores padrão podem ser sobrescritos na reinicialização ou atualização. Use local.jsonpara instalações de pacotes.

Exemplo de local.json do ONLYOFFICE mostrando a validação de tokens do navegador, da caixa de entrada e da caixa de saída habilitada com um cabeçalho de Autorização e um segredo compartilhado.
Um servidor de documentos baseado em pacotes pode armazenar as configurações JWT em um arquivo local.json. O cabeçalho e o segredo do token devem ser compatíveis com o conector do Nextcloud.

Se você executar o ONLYOFFICE Docs no Docker

Use variáveis ​​de ambiente do Docker em vez de editá-las manualmente local.jsondentro do contêiner. A ONLYOFFICE afirma que o Docker pode regenerar a configuração JWT durante a inicialização; sua imagem oficial suporta `java.jwt` JWT_ENABLED, JWT_SECRET`java.jwt`, JWT_HEADER`java.jwt` e ` java.jwt` JWT_IN_BODY. A documentação atual da imagem do Docker lista `java.jwt` Authorizationcomo o cabeçalho JWT padrão. Consulte o repositório oficial do Docker DocumentServer .

environment:
  - JWT_ENABLED=true
  - JWT_SECRET=replace-with-a-long-random-secret
  - JWT_HEADER=Authorization

Após alterar as variáveis ​​de ambiente do Docker, recrie o contêiner para que o serviço em execução as receba. Editar um arquivo Compose sem recriar o contêiner não altera seu ambiente existente.

2. Certifique-se de que o cabeçalho JWT corresponda exatamente.

Um equívoco comum é achar que o nome do cabeçalho é apenas cosmético. Não é. O ONLYOFFICE Docs possui cabeçalhos de token de caixa de entrada e saída configuráveis, e o conector Nextcloud também possui uma jwt_headerconfiguração para isso. Ambos devem descrever o mesmo caminho de requisição.

A documentação atual da API do ONLYOFFICE lista Authorizationo Document Server como o padrão para solicitações JWT de entrada, e a documentação oficial de integração com o Nextcloud também o identifica Authorizationcomo o padrão normal do conector. Exemplos mais antigos e instalações existentes podem usar `<nome_do_servidor>` AuthorizationJWTou outro valor configurado explicitamente. Portanto, a regra de segurança não é "sempre usar uma string específica"; é garantir que a configuração ativa corresponda em ambas as extremidades .

O formato da requisição também é importante. A documentação da API da ONLYOFFICE mostra os tokens de cabeçalho enviados usando o esquema Bearer. Para detalhes sobre o protocolo subjacente, consulte a documentação de token no cabeçalho da ONLYOFFICE .

Terminal mostrando as configurações do Nextcloud ONLYOFFICE occ onde o AuthorizationJWT não corresponde ao cabeçalho de autorização do servidor de documentos.
Um cabeçalho JWT diferente pode fazer com que o segredo pareça incorreto, mesmo quando ambos os lados usam o mesmo segredo. Inspecione as configurações efetivas em vez de tentar adivinhar.

Se você usar um cabeçalho personalizado intencionalmente, configure o mesmo valor em ambos os produtos. Caso contrário, usar o valor padrão atual Authorizationreduz o número de componentes necessários.

3. Verifique se um proxy reverso está alterando o caminho do token.

Se as configurações do Nextcloud e do ONLYOFFICE coincidirem, mas o erro persistir, verifique o caminho entre eles. Um proxy reverso, gateway de autenticação, WAF ou controlador de entrada pode afetar os cabeçalhos de autorização. Isso depende da sua infraestrutura, portanto, não assuma que o proxy seja o culpado sem evidências.

Utilize esta sequência de testes práticos:

  • Confirme se o URL público do servidor de documentos está acessível a partir do host do Nextcloud.
  • Confirme se o URL do servidor de documentos interno, se configurado, é resolvido a partir do servidor ou contêiner Nextcloud.
  • Confirme se o URL interno do Nextcloud/armazenamento é resolvido a partir do host ou contêiner do ONLYOFFICE Docs.
  • Inspecione os registros de acesso/erro do proxy durante a execução da verificação do conector.
  • Se o seu proxy tiver regras explícitas para isso Authorization, confirme se ele encaminha o cabeçalho em vez de substituí-lo ou removê-lo.

Não desative o JWT apenas para fazer o erro desaparecer. Isso remove o mecanismo de validação em vez de corrigi-lo. Da mesma forma, não desative a verificação TLS como uma solução para o JWT: a verificação de certificado e a validação da assinatura JWT são controles separados. Se você tiver um problema com o certificado, corrija a cadeia de certificados ou a configuração de confiança separadamente.

4. Use a verificação de integridade do próprio conector.

O conector oficial ONLYOFFICE inclui um comando de diagnóstico específico:

sudo -u www-data php occ onlyoffice:documentserver --check

A documentação do conector afirma que essa verificação reporta uma conexão bem-sucedida ou a causa de um erro. Ela é mais útil do que testar apenas a página inicial do Servidor de Documentos, pois exercita a integração da perspectiva do Nextcloud.

Se a verificação indicar que o servidor de documentos está acessível, mas a validação do token falhar, retorne ao segredo e ao cabeçalho. Se não for possível acessar o servidor de forma alguma, resolva problemas de DNS, roteamento, firewall, TLS ou URLs internas antes de investir mais tempo no JWT.

5. Verifique o horário somente quando as evidências apontarem para isso.

Os JWTs podem incluir declarações relacionadas ao tempo, e o conector do Nextcloud expõe jwt_leewaye jwt_expirationconfigura isso. Isso não significa que você deva aumentar a margem de erro primeiro. Um relógio significativamente desajustado pode fazer com que tokens válidos falhem; aumentar a margem de erro pode mascarar o problema de infraestrutura.

Compare o horário UTC nos hosts ou contêineres do Nextcloud e do ONLYOFFICE:

date -u
timedatectl status

Certifique-se de que ambos os sistemas sincronizem o tempo de forma confiável. Somente após confirmar uma pequena diferença legítima entre os relógios, considere uma margem de tolerância estreita. As configurações JWT suportadas pelo conector estão listadas na referência oficial de configuração do conector .

Como funciona a validação JWT nesta integração

O ONLYOFFICE Docs usa JWT para proteger a inicialização do editor e as requisições entre servidores. Sua API separa os tokens do navegador dos tokens de requisição HTTP de entrada e saída. Para requisições de entrada, o token pode ser transportado em um cabeçalho ou, para requisições POST suportadas, no corpo da requisição. Para requisições GET, o ONLYOFFICE documenta o tratamento de tokens baseado em cabeçalho. Consulte a documentação oficial sobre assinatura de requisição .

Isso explica por que uma operação pode funcionar enquanto outra falha. Por exemplo, abrir o editor pode ser bem-sucedido, mas uma solicitação de retorno de chamada ou download posterior pode falhar se apenas uma das direções tiver as configurações de token corretas.

Conceitos errôneos comuns

“Se /healthcheck retornar verdadeiro, o JWT deve estar correto.”

Não. Um endpoint de saúde comprova que o serviço está respondendo; não comprova que o conector do Nextcloud e o Servidor de Documentos compartilham o mesmo segredo e cabeçalho JWT. Ação: execute occ onlyoffice:documentserver --checke inspecione as configurações efetivas do conector.

"Posso editar o arquivo local.json dentro de um contêiner Docker e pronto."

Isso é frágil para implantações do Docker. A ONLYOFFICE recomenda definir o JWT por meio de variáveis ​​de ambiente do Docker, pois a inicialização pode regenerar a configuração. Ação: defina JWT_ENABLED` JWT_SECRET<JWT_HOME>`, `<JWT_SERVER>` e, quando necessário, ` JWT_HEADER<JWT_SERVER>` na configuração do seu contêiner e recrie o contêiner.

“O cabeçalho AuthorizationJWT é sempre obrigatório.”

Não. A configuração oficial atual do Document Server lista Authorizationo cabeçalho padrão, embora implantações existentes e exemplos mais antigos possam usar outro cabeçalho configurado explicitamente. Ação: leia ambas as configurações ativas e torne-as idênticas.

“Desativar o JWT é a solução mais rápida.”

Isso pode corrigir o erro de validação imediato, mas também remove um controle de segurança e pode mascarar a incompatibilidade subjacente. Ação: corrija o segredo/cabeçalho compartilhado, a menos que você tenha um motivo deliberado e documentado para operar sem JWT.

Lista de verificação de validação final

  • O mesmo segredo JWT está configurado no Nextcloud e no ONLYOFFICE Docs.
  • O nome do cabeçalho JWT corresponde em ambas as extremidades.
  • As implementações do Docker usam variáveis ​​de ambiente persistentes, e não edições pontuais dentro do contêiner.
  • Os URLs dos servidores públicos e internos são acessíveis na direção em que são utilizados.
  • Nenhuma regra de proxy remove ou reescreve o cabeçalho JWT inesperadamente.
  • Os sistemas Nextcloud e ONLYOFFICE têm relógios sincronizados.
  • occ onlyoffice:documentserver --checkconsegue.
  • Um documento real abre, edita, salva automaticamente, fecha e reabre com as alterações salvas.
A página de administração do Nextcloud ONLYOFFICE mostra o cabeçalho de autorização correspondente e uma conexão bem-sucedida, além das verificações de integridade do terminal.
Não se limite a um teste de conexão verde: confirme se uma edição real pode ser salva e reaberta, pois isso exercita todo o fluxo de trabalho do documento.

Quando o erro de token persistir

Se os segredos e cabeçalhos coincidirem, os relógios estiverem sincronizados e a verificação do conector for bem-sucedida, mas uma operação específica ainda reportar um token inválido, capture a direção exata da solicitação com falha e os logs correspondentes antes de alterar mais configurações. O ONLYOFFICE distingue a validação do navegador, da caixa de entrada e da caixa de saída; portanto, a próxima questão é se a falha ocorre durante a inicialização do editor, um comando enviado ao Servidor de Documentos ou um retorno de chamada/download enviado de volta ao Nextcloud.

Utilize os logs do Servidor de Documentos juntamente com os logs do Nextcloud e do proxy para o mesmo registro de data e hora. Evite publicar JWTs ou segredos completos publicamente. Se precisar comparar a estrutura do token, oculte a assinatura e as declarações confidenciais. O comportamento de referência para assinatura e validação é descrito na documentação de assinatura do ONLYOFFICE .

Deixar um comentário

Como conectar os editores de desktop do ONLYOFFICE a um servidor ownCloud

Como conectar os editores de desktop do ONLYOFFICE a um servidor ownCloud

Conecte os editores de desktop ONLYOFFICE ao seu servidor ownCloud, faça login, abra arquivos na nuvem, gerencie a conexão e solucione problemas comuns de configuração.

Como corrigir o alto uso da CPU no Collabora Online causado pelo loolwsd / coolwsd

Como corrigir o alto uso da CPU no Collabora Online causado pelo loolwsd / coolwsd

Solucione problemas de alto uso da CPU no Collabora Online identificando processos de kit ocupados, verificando métricas e logs, ajustando a simultaneidade e a limpeza, e verificando as correções com segurança.

Como personalizar o ONLYOFFICE Docs com seu logotipo e cores.

Como personalizar o ONLYOFFICE Docs com seu logotipo e cores.

Aprenda como personalizar o ONLYOFFICE Docs com um logotipo de cabeçalho e cores de interface, incluindo limites de licença, configuração JSON do tema, caminhos do Docker e testes.

Fix Dark Mode Text Visibility Issues in LibreOffice Calc

Fix Dark Mode Text Visibility Issues in LibreOffice Calc

Fix hard-to-read text in LibreOffice Calc by checking the app theme, cell font and fill colors, styles, and conditional formatting—then verify print output.

Corrigir o erro “Documento bloqueado por usuário desconhecido” no LibreOffice

Corrigir o erro “Documento bloqueado por usuário desconhecido” no LibreOffice

Remova o aviso de bloqueio de usuário desconhecido do LibreOffice com segurança. Verifique as sessões ativas, proteja uma cópia, remova apenas bloqueios obsoletos verificados e teste o documento.

Corrigir texto árabe e hebraico da direita para a esquerda no LibreOffice Writer

Corrigir texto árabe e hebraico da direita para a esquerda no LibreOffice Writer

Corrija textos em árabe ou hebraico que fluem, se alinham ou se misturam incorretamente com o inglês no LibreOffice Writer. Ative o layout de texto complexo, defina a direção do parágrafo e verifique o resultado.

LibreOffice Calc VLOOKUP vs XLOOKUP: A Beginner-Friendly Functions Guide

LibreOffice Calc VLOOKUP vs XLOOKUP: A Beginner-Friendly Functions Guide

Learn VLOOKUP and XLOOKUP in LibreOffice Calc, including exact matches, left lookups, not-found results, reverse search, INDEX/MATCH alternatives, and common errors.

Como corrigir o erro “Falha na validação da prova WOPI” no Collabora Online

Como corrigir o erro “Falha na validação da prova WOPI” no Collabora Online

Solucione problemas de falhas na validação de provas WOPI do Collabora Online verificando chaves de descoberta, rotação de chaves, URLs de proxy, carimbos de data/hora e listas de permissões de hosts.

Como ativar o controle de alterações por padrão no ONLYOFFICE Docs

Como ativar o controle de alterações por padrão no ONLYOFFICE Docs

Ative o recurso "Controlar alterações" para todos em um documento do ONLYOFFICE, mantenha-o ativo após a reabertura e entenda as limitações de uma configuração padrão global.

Como configurar os tempos limite de inatividade para sessões de edição do Collabora

Como configurar os tempos limite de inatividade para sessões de edição do Collabora

Compare os tempos limite por visualização, fora de foco, ociosidade do documento, salvamento automático e proxy do Collabora Online e, em seguida, escolha e verifique as configurações para sua implementação.