authentication) dentro de cada pod do Ayakaleaf Pro. Ele não tem tarefa em segundo plano nem pod separado. Configure o provedor de identidade (IdP) como em Autenticação SAML e, em seguida, coloque os valores e o certificado do IdP no Kubernetes conforme abaixo.
Onde cada coisa é executada
Configuração
1
Registre o Overleaf no IdP
O passo a passo do goauthentik mostra onde ficam essas configurações.
2
Coloque o certificado do IdP no Secret overleaf-certs
O Toolkit lê o certificado de Se o Secret já existir, adicione o arquivo a ele: exclua-o e recrie-o com todos os
data/overleaf/certs/. No Kubernetes, ele vem do Secret overleaf-certs, montado em /var/lib/overleaf/certs, conforme descrito em Certificados e outros arquivos:--from-file, ou use kubectl -n overleaf edit secret overleaf-certs.OVERLEAF_SAML_IDP_CERT aceita um caminho ou, durante uma rotação de certificados, uma lista JSON de caminhos. Ela não aceita o próprio texto PEM.3
Adicione as configurações ao ConfigMap
30-config.yaml (additions)
OVERLEAF_SAML_* estão listadas em Variáveis de ambiente. Todas vão para o ConfigMap: nenhuma delas é um segredo em si. Os arquivos de chave (OVERLEAF_SAML_PRIVATE_KEY, OVERLEAF_SAML_DECRYPTION_PVK) vão para overleaf-certs, e o ConfigMap contém os caminhos deles.4
Aplique e reinicie
overleaf-certs também exige essa reinicialização.Várias réplicas
O IdP devolve o usuário à URL do ACS com umPOST entre sites. Os navegadores não enviam cookies SameSite=Lax com ele, então a requisição não carrega o cookie de sessão do Overleaf nem, no Chrome e no Edge, o cookie de afinidade (sticky) do balanceador de carga, e pode chegar a qualquer réplica. Com as configurações padrão, isso não importa: a réplica que a recebe cria a sessão no Redis, e o balanceador de carga mantém o usuário nela a partir daí.
Testado no Kubernetes
Com o goauthentik como IdP (binding HTTP-POST, asserções e respostas assinadas), no Kubernetes 1.37 com três réplicas atrás do HAProxy, nossos testes de ponta a ponta para SAML passam (19 casos): o primeiro administrador do launchpad fazendo login via SAML, login com o certificado do IdP deoverleaf-certs, criação de conta e novo login, o mapeamento de administrador por grupo e sem mapeamento, nome e flag de administrador atualizados a cada login, logout por meio do IdP, regras de senha para contas SAML e contas suspensas. OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO foi mantida no padrão.
Q&A
O login via SAML mostra “Something went wrong” imediatamente
O login via SAML mostra “Something went wrong” imediatamente
Resposta: A estratégia SAML não foi carregada. O pod ainda assim fica pronto, então consulte o log do web de cada pod:Causas comuns:
OVERLEAF_SAML_IDP_CERT aponta para um arquivo que não está em overleaf-certs, um booleano que não é "true" nem "false", ou JSON inválido. Com EXTERNAL_AUTH listando vários métodos, um erro desse tipo também desativa os métodos posteriores ao SAML (ldap, depois saml, depois oidc).O IdP precisa alcançar o Overleaf, ou o Overleaf o IdP?
O IdP precisa alcançar o Overleaf, ou o Overleaf o IdP?
Resposta: Nenhum dos dois, para login e logout: o IdP e o Overleaf apenas trocam mensagens por meio do navegador do usuário. Somente se você configurar o IdP com uma URL de metadados ele baixará
${OVERLEAF_SITE_URL}/saml/meta.
