Como configurar o login via SSO com o Keycloak no ONLYOFFICE Apps
Introdução
Single Sign-On (SSO) é uma tecnologia que permite aos usuários fazer login apenas uma vez e, em seguida, obter acesso a múltiplas aplicações/serviços sem a necessidade de nova autenticação.
Se um portal web incluir várias seções independentes grandes (fórum, chat, blogs etc.), um usuário pode passar pelo procedimento de autenticação em um dos serviços e automaticamente obter acesso a todos os outros serviços sem inserir credenciais várias vezes.
O SSO é sempre garantido pela operação conjunta de duas aplicações: um Provedor de Identidade e um Provedor de Serviço (também chamados de IdP e SP). O SSO do ONLYOFFICE implementa apenas o SP. Muitos provedores diferentes podem atuar como IdP, mas este artigo considera a implementação do Keycloak.
Criando um IdP no Keycloak
-
Faça login no Keycloak como administrador;
-
Vá para Gerenciar domínios e selecione o domínio onde a conexão será configurada;
-
Vá para Clientes e clique no botão Criar cliente;
-
Na página que se abre, configure o seguinte: No campo Tipo de cliente, selecione SAML. No campo ID do cliente, insira
https://meuportal-endereco.com/sso/metadata, substituindo meuportal-endereco.com pelo nome de domínio do seu espaço de trabalho. Nos campos Nome e Descrição, insira qualquer nome e descrição para o cliente.
-
Clique no botão Próximo;
-
Preencha os seguintes campos:
observaçãoSubstitua
meuportal-endereco.compelo nome de domínio do seu espaço de trabalho.Detalhes da Aplicação URL Raiz https://meuportal-endereco.com/ssoURL Inicial https://meuportal-endereco.com/ssoURIs de redirecionamento válidos https://meuportal-endereco.com/sso/slo/callbackhttps://meuportal-endereco.com/sso/acsURIs de redirecionamento pós logout válidos https://meuportal-endereco.com/sso/slo/callbackURL de Processamento SAML Mestre https://meuportal-endereco.com/sso/acs
Preencha os seguintes campos na aba Avançado:
URL de Binding POST do Serviço de Consumidor de Asserção https://meuportal-endereco.com/sso/acsURL de Binding de Redirecionamento do Serviço de Consumidor de Asserção https://meuportal-endereco.com/sso/acsURL de Binding POST do Serviço de Logout https://meuportal-endereco.com/sso/slo/callbackURL de Binding de Redirecionamento do Serviço de Logout https://meuportal-endereco.com/sso/slo/callback
-
Clique no botão Salvar;
-
Na seção Capacidades SAML, defina Formato de ID de Nome como email;
-
Na seção Assinatura e Criptografia, habilite a opção Assinar Asserções e selecione um algoritmo de assinatura: RSA_SHA1, RSA_SHA256 ou RSA_SHA512.
-
Clique no botão Salvar;
-
Vá para a seção Escopos do Cliente e clique no link com o nome do seu espaço de trabalho
https://meuportal-endereco.com/sso/metadata-dedicated.Clique no botão Adicionar mapeadores predefinidos e, na janela pop-up, selecione os seguintes mapeadores:
- X500 email;
- X500 givenName;
- X500 surname.
Em seguida, clique no botão Adicionar.

Configurando ONLYOFFICE SP
-
Certifique-se de que você está logado como Administrador no seu espaço de trabalho do ONLYOFFICE Apps e vá para o menu Configurações, selecione a seção Integração e abra a aba Single Sign-On;
-
Habilite o SSO usando o interruptor Habilitar Autenticação Single Sign-on e cole
https://<keycloakurl>/realms/<realm_name>/protocol/saml/descriptorno campo URL para o XML de Metadados do IdP. Substitua<keycloakurl>e<realm_name>pelo endereço do seu servidor Keycloak e o nome do domínio onde a conexão foi criada. O link final deve ser acessível a partir de um navegador.
-
Pressione o botão com a seta para cima para carregar os metadados do IdP. O formulário de configurações do provedor de serviços do ONLYOFFICE será automaticamente preenchido com seus dados do Keycloak IdP;
-
Selecione o mesmo Algoritmo de Verificação de Assinatura Padrão que o especificado no Keycloak.
-
Altere o Formato de NameId para emailAddress.
-
Agora você precisa criar um certificado na seção Certificados SP. Para isso, clique no botão Adicionar certificado;
-
Na janela modal aberta, clique no link Gerar Novo Certificado Autoassinado e escolha a opção assinar e criptografar na lista Usar para. Antes de salvar o certificado, copie o texto do Certificado Público para a área de transferência e salve-o em um arquivo (será necessário para o Keycloak), em seguida, clique no botão OK.

-
Vá para a seção Mapeamento de Atributos e atribua os seguintes valores aos atributos:
- Primeiro nome: urn:oid:2.5.4.42
- Sobrenome: urn:oid:2.5.4.4
- Email: urn:oid:1.2.840.113549.1.9.1
Na seção Configurações Avançadas, você pode marcar a opção Ocultar página de autenticação para ocultar a página de autenticação padrão e redirecionar automaticamente para o serviço SSO.
Se precisar restaurar a página de autenticação padrão (para poder acessar o espaço de trabalho caso seu servidor IdP falhe), você pode adicionar a chave /login?skipssoredirect=true após o nome de domínio do seu espaço de trabalho na barra de endereços do navegador.
-
Clique no botão Salvar;
-
Retorne ao Keycloak para configurar a criptografia, abra seu cliente e vá para a seção Chaves. Desative a opção Assinatura do cliente necessária e ative Criptografar asserções. Na janela pop-up, selecione Importar, defina o Formato do arquivo para Certificado PEM e clique no botão Procurar. Especifique o caminho para o arquivo de certificado do passo 7 e clique em Confirmar.
Verificando o funcionamento do ONLYOFFICE SP com o Keycloak IdP
-
Vá para a página de autenticação do ONLYOFFICE Apps (por exemplo,
https://meuportal-endereco.com/login); -
Clique no botão Single Sign-On. Se o botão estiver ausente, isso significa que o SSO não está habilitado.
-
Se todos os parâmetros do SP e IdP estiverem configurados corretamente, você será redirecionado para o formulário de login do Keycloak IdP:

-
Insira o login e a senha do usuário do Keycloak e clique no botão Entrar;
-
Se as credenciais estiverem corretas, você será redirecionado para a página principal do espaço de trabalho (o usuário será criado automaticamente se estiver ausente, ou os dados serão atualizados se alterados no IdP).
