Configuração de SSO via Azure Active Directory

Modificado em Ter, 17 Mar na (o) 9:49 PM

Configuração de SSO com Azure AD

1. Visão Geral

O MavenDoc suporta dois protocolos de SSO (Single Sign-On) com o Azure Active Directory: SAML 2.0 (recomendado) e OAuth 2.0 / OIDC (alternativo). Ambos permitem que os usuários da sua empresa entrem no MavenDoc usando as credenciais corporativas do Azure AD, sem necessidade de senha separada.

SAML 2.0 — Método recomendado
SAML é o padrão adotado pela maioria das integrações corporativas. Utiliza uma Enterprise Application no Azure AD, o que facilita a configuração e o controle de quais usuários têm acesso ao MavenDoc. Requer apenas um único campo de configuração no MavenDoc (a URL de metadados).
OAuth 2.0 / OIDC — Alternativo
Use OAuth quando a sua equipe já possui um App Registration configurado ou quando preferir o modelo de tokens OIDC. Veja as instruções na seção 3.

Como funciona o fluxo SAML

1. Usuário
digita e-mail
2. MavenDoc
detecta SAML
3. Azure AD
login corporativo
Azure posta SAMLResponse → /resources/auth/saml-acs
4. Validação
assinatura XML
5. Código
one-time 2 min
6. JWT
emitido
7. Acesso
autorizado

2. Configuração SAML 2.0 Recomendado

Pré-requisitos

  • Acesso de Administrador Global ou Administrador de Aplicativo no Azure AD.
  • O MavenDoc deve estar acessível via HTTPS público. O Azure posta o SAMLResponse diretamente no servidor.
  • Permissão de administrador no MavenDoc para editar a configuração da empresa.
  • Os usuários que farão SSO devem estar pré-cadastrados no MavenDoc com o mesmo e-mail corporativo.
URL HTTPS obrigatória
O Azure AD exige que a URL do ACS use HTTPS. Para testes locais sem certificado SSL, use um tunnel HTTPS (ex.: ngrok) e registre a URL pública no Azure.
URL do ACS (Assertion Consumer Service)
Esta é a URL onde o Azure enviará o SAMLResponse após autenticação:

{URL_DO_MAVENDOC}/resources/auth/saml-acs

Exemplo: https://mavendoc.maven.com.br/mavendoc/resources/auth/saml-acs

Configuração no Azure AD

1

Criar uma Enterprise Application

  1. Acesse portal.azure.com com conta de administrador.
  2. Navegue para Azure Active Directory → Enterprise applications.
  3. Clique em + New application.
  4. Clique em + Create your own application.
  5. Dê um nome (ex.: MavenDoc SSO) e selecione:
    "Integrate any other application you don't find in the gallery (Non-gallery)"
  6. Clique em Create.


2

Ativar o SAML SSO e configurar as URLs

  1. Na Enterprise Application criada, clique em Single sign-on no menu esquerdo.
  2. Selecione o método SAML.
  3. Na seção "Basic SAML Configuration", clique em Edit (ícone de lápis) e preencha:
CampoValorExemplo
Identifier (Entity ID){URL_DO_MAVENDOC}https://mavendoc.maven.com.br/mavendoc
Reply URL (ACS URL){URL_DO_MAVENDOC}/resources/auth/saml-acshttps://mavendoc.maven.com.br/mavendoc/resources/auth/saml-acs
Sign on URLDeixar em branco
Relay StateDeixar em branco
Logout URLOpcional — deixar em branco
  1. Clique em Save.
3

Configurar o NameID (e-mail do usuário)

Na seção "Attributes & Claims", clique em Edit. Configure o NameID para enviar o endereço de e-mail:

CampoValor recomendado
Name identifier formatEmail address
Source attributeuser.mail (e-mail real) ou user.userprincipalname (UPN)
O e-mail deve ser idêntico ao cadastro no MavenDoc
O endereço retornado pelo Azure no NameID deve ser exatamente igual ao e-mail cadastrado para o usuário no MavenDoc (comparação case-insensitive). Se os usuários têm UPN diferente do e-mail real, use user.mail.

Claims adicionais aceitos pelo MavenDoc (por prioridade)

  1. NameID (quando contém "@")
  2. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  3. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
  4. http://schemas.microsoft.com/identity/claims/userprincipalname
4

Adicionar usuários ao aplicativo

  1. Na Enterprise Application, clique em Users and groups.
  2. Clique em + Add user/group.
  3. Selecione os usuários ou grupos do Azure AD que podem usar o MavenDoc via SSO.
  4. Clique em Assign.
Somente usuários atribuídos poderão autenticar
Quando "Assignment required" está ativo na Enterprise Application, apenas os usuários adicionados nesta tela conseguem fazer login via SSO. Isso garante controle de acesso centralizado.
5

Copiar a URL de metadados do Azure AD

Na seção "SAML Certificates", copie o valor do campo App Federation Metadata Url.

?   SAML Certificates  →  App Federation Metadata Url

Exemplo:
https://login.microsoftonline.com/{tenant-id}/federationmetadata/2007-06/federationmetadata.xml?appid={app-id}
Guarde este URL — é o único campo que você precisará no MavenDoc
Esta URL aponta para o XML de metadados do Azure AD, que contém o certificado de assinatura e o endpoint SSO. O MavenDoc a busca automaticamente e a armazena em cache.

Configuração no MavenDoc

6

Ativar SAML na empresa

  1. Entre no MavenDoc como administrador.
  2. Acesse Configurações → Empresa.
  3. Localize a seção Autenticação SSO e preencha:
CampoValor
Tipo de autenticaçãoSAML
URL de metadados SAMLCole a App Federation Metadata Url copiada no Passo 5
  1. Clique em Salvar.
  2. Certifique-se de que todos os usuários SSO estão cadastrados no MavenDoc com o mesmo e-mail do Azure AD.
Pré-cadastro obrigatório
O MavenDoc não cria usuários automaticamente via SAML. O usuário deve existir previamente. Use o módulo Usuários para cadastrá-los.

Passo 7: Testar o login SAML

  1. Abra o MavenDoc em uma aba anônima (para garantir que não há sessão ativa).
  2. Na tela de login, digite o e-mail corporativo de um usuário atribuído ao app no Azure.
  3. Clique em Entrar.
  4. O MavenDoc detecta authType=SAML e redireciona para o Azure AD.
  5. O usuário faz login com as credenciais corporativas (se não estiver já logado).
  6. O Azure valida e posta o SAMLResponse de volta ao MavenDoc.
  7. O MavenDoc valida a assinatura, extrai o e-mail e redireciona para os documentos.
Login bem-sucedido
O usuário deve entrar diretamente no MavenDoc sem digitar senha. Se ocorrer algum erro, consulte a Seção 5 — Solução de Problemas.

3. Configuração OAuth 2.0 / OIDC Alternativo - DEPRECATED

Quando usar OAuth em vez de SAML?
  • Quando já existe um App Registration no Azure e a equipe prefere não criar uma Enterprise Application.
  • Quando o ambiente técnico já é baseado em OIDC.

Configuração no Azure AD

1

Criar um App Registration

  1. Acesse Azure Active Directory → App registrations → + New registration.
  2. Preencha:
    • Name: MavenDoc OAuth (ou similar)
    • Supported account types: Accounts in this organizational directory only
    • Redirect URI: Web → {URL_DO_MAVENDOC}/auth/oauth-callback
  3. Clique em Register.
2

Criar um Client Secret

  1. Acesse Certificates & secrets → + New client secret.
  2. Defina descrição e prazo de validade e clique em Add.
  3. Copie o valor imediatamente — ele não será exibido novamente.
3

Copiar os valores necessários

ValorOnde encontrar no Azure
Tenant IDAzure Active Directory → Overview → "Directory (tenant) ID"
Client IDApp registrations → seu app → Overview → "Application (client) ID"
Client SecretApp registrations → seu app → Certificates & secrets → coluna "Value"

Configuração no MavenDoc (OAuth)

CampoValor
Tipo de autenticaçãoOAUTH
OAuth Issuerhttps://login.microsoftonline.com/{Tenant ID}/v2.0
OAuth Client IDApplication (client) ID copiado do Azure
OAuth Client SecretValor do secret copiado do Azure

4. Comparativo SAML vs OAuth

CritérioSAML 2.0OAuth 2.0 / OIDC
Tipo de app no AzureEnterprise ApplicationApp Registration
Campos no MavenDoc1 (Metadata URL)3 (Issuer, Client ID, Client Secret)
Rotação de certificadoAutomática via metadataManual (renovar client secret)
Controle de usuáriosUsers & Groups na Enterprise AppAzure AD diretamente
Callback recebido porBackend (POST direto do Azure)Frontend (redirect com code)
Recomendação✓ RecomendadoAlternativo

5. Solução de Problemas

SAML

❌ "SAML não está configurado para esta empresa"
Causa: O campo Tipo de autenticação não está como SAML ou a URL de metadados SAML está vazia no MavenDoc.
Solução: Acesse Configurações → Empresa e preencha os dois campos corretamente.
❌ "Failed to fetch SAML metadata" — erro ao buscar metadados
Causa: O servidor MavenDoc não consegue acessar a URL de metadados do Azure.
Soluções:
  • Abra a URL de metadados no navegador — deve retornar um XML. Se não abrir, a URL está errada.
  • Verifique se o servidor MavenDoc tem acesso à internet (firewall/proxy).
❌ "SAML authentication failed" — assinatura inválida
Causa: O certificado de assinatura do Azure mudou (rotação) e está em cache desatualizado.
Solução: Reinicie a aplicação MavenDoc para limpar o cache de metadados. O certificado será buscado novamente automaticamente.
❌ "The response was received at X instead of Y" — URL do ACS incorreta
Causa: A Reply URL (ACS URL) no Azure não bate com a URL pública do servidor.
Soluções:
  • Corrija a Reply URL no Azure: {URL_PUBLICA_MAVENDOC}/resources/auth/saml-acs
  • Se o servidor está atrás de proxy reverso, configure-o para passar os cabeçalhos X-Forwarded-Proto e X-Forwarded-Host.
  • Verifique se a propriedade path.maven no environment.properties aponta para a URL pública correta.
❌ "Incompatibilidade de identidade" — e-mail não coincide
Causa: O e-mail no SAMLResponse do Azure difere do e-mail digitado no login.
Soluções:
  • Verifique o NameID: no Azure, defina Source attribute = user.mail.
  • Certifique-se que o usuário está cadastrado no MavenDoc com o mesmo e-mail que o Azure envia.
❌ "Usuário não encontrado" no MavenDoc
Causa: O usuário não está cadastrado no MavenDoc.
Solução: Cadastre o usuário em Usuários com o mesmo e-mail corporativo, antes de ativar o SSO para ele.
❌ "Sessão SAML inválida ou expirada"
Causa: O fluxo SAML demorou mais de 10 minutos ou o usuário acessou um link de callback já usado.
Solução: Tente fazer login novamente. Se persistir, verifique a sincronização de horário (NTP) no servidor.

OAuth

❌ AADSTS50011 — The redirect URI doesn't match
Causa: A Redirect URI no Azure não corresponde à URL do MavenDoc.
Solução: App Registration → Authentication → Redirect URIs → confirme que o valor é exatamente {URL_DO_MAVENDOC}/auth/oauth-callback.
❌ AADSTS7000215 — Invalid client secret
Causa: O Client Secret expirou ou está incorreto.
Solução: Gere um novo Client Secret no Azure e atualize nas configurações da empresa no MavenDoc.
❌ "Email not found in Azure ID token"
Causa: O ID token não contém claims de e-mail.
Solução: No App Registration → Token configuration, adicione o optional claim email para ID tokens.

6. Referência Rápida

Valores a cadastrar no Azure (SAML)

Campo AzureValor
Identifier (Entity ID){URL_DO_MAVENDOC} — ex.: https://app.empresa.com.br/mavendoc/
Reply URL (ACS URL){URL_DO_MAVENDOC}/resources/auth/saml-acs
NameID formatEmail address
NameID source attributeuser.mail

Campos no MavenDoc por protocolo

ProtocoloCampoValor
SAMLTipo de autenticaçãoSAML
URL de metadados SAMLApp Federation Metadata Url do Azure
OAuthTipo de autenticaçãoOAUTH
OAuth Issuerhttps://login.microsoftonline.com/{TenantID}/v2.0
OAuth Client IDApplication (client) ID
OAuth Client SecretValor do client secret

Endpoints do MavenDoc

ProtocoloEndpointDescrição
SAMLGET /resources/auth/saml-init?email=xxxInicia fluxo SAML, retorna ssoUrl
SAMLPOST /resources/auth/saml-acsACS — recebe SAMLResponse do Azure, redireciona ao SPA
SAMLPOST /resources/auth/saml-exchangeTroca samlCode por JWT
OAuthGET /resources/auth/oauth-init?email=xxx&redirectUri=xxxInicia fluxo OAuth, retorna authorizationUrl
OAuthPOST /resources/auth/oauth-callbackTroca code+state por JWT
AmbosGET /resources/auth/check-auth-type?email=xxxRetorna authType da empresa do usuário

MavenDoc © 2026 — Documentação interna para equipes de TI. Em caso de dúvidas, entre em contato pelo suporte Maven.

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo