Skip to content

[BUG] Login com conta pessoal Microsoft trava em loop — API não resolve identidade do tenant "consumers" #253

Description

@elson-vinicius-lopes

Esperado

Usuário autentica via OAuth Microsoft com conta pessoal e acessa /workspace normalmente,
com /api/workspaces/me resolvendo o workspace vinculado à identidade autenticada.

Observado

Após login OK com conta pessoal Microsoft (não enterprise/corporativa), a aplicação entra em
loop de login em produção (https://layoutparser.duckdns.org/workspace). A chamada
/api/workspaces/me retorna 401 com corpo {"error":"Identidade não resolvida."}.

Reprodução

  1. Login com conta pessoal Microsoft (tenant "consumers", GUID padrão
    9188040d-6c67-4c5b-b112-36a304b66dad).
  2. Cookie de sessão do BFF é emitido corretamente — confirmado que /api/session retorna
    {"authenticated":true,...,"isAdmin":true} para essa conta.
  3. Front chama /api/workspaces/me → API .NET responde 401 "Identidade não resolvida." →
    aplicação redireciona de volta para login → loop.

Ambiente

Produção, https://layoutparser.duckdns.org, testado ao vivo via SSH (curl.exe direto no
processo Node e via IIS).

Impacto

Bloqueia totalmente o acesso ao workspace para qualquer usuário que só possua conta pessoal
Microsoft (sem conta enterprise/corporativa). Usuários enterprise não são afetados.

Causa raiz (investigação já concluída)

Front (LayoutParserReact) e BFF (server/) estão corretos:

  • O BFF emite e valida o cookie de sessão corretamente para a conta pessoal.
  • O BFF encaminha a identidade para a API via headers confiáveis
    (x-iis-user, x-layoutparser-identity-provider, x-layoutparser-identity-subject,
    x-layoutparser-identity-tenant).
  • A mensagem de erro "Identidade não resolvida." não existe neste repositório
    (confirmado: string ausente em server/src) — ela é emitida pela API .NET
    (LayoutParserApi)
    .
  • Conclusão: a API .NET não resolve/provisiona identidades do tenant "consumers" (contas
    pessoais Microsoft) em /api/workspaces/me.

Correção esperada

100% no repositório LayoutParserApi — este bug é uma dependência cross-repo explícita
e não é resolvido por nenhum agente deste repositório (LayoutParserReact). A API precisa
provisionar/resolver identidade também para o tenant "consumers", ou documentar
explicitamente que contas pessoais não são suportadas (decisão de produto pendente).

Evidência técnica (sem dado sensível)

  • Endpoint afetado: GET /api/workspaces/me
  • Resposta: 401 {"error":"Identidade não resolvida."}
  • Headers confiáveis enviados pelo BFF: x-iis-user, x-layoutparser-identity-provider,
    x-layoutparser-identity-subject, x-layoutparser-identity-tenant
  • Tenant GUID observado: 9188040d-6c67-4c5b-b112-36a304b66dad (tenant "consumers" padrão
    Microsoft para contas pessoais)
  • /api/session local confirma sessão válida (authenticated: true, isAdmin: true)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: bffBFF Node/Fastifyarea: integrationContrato e dependências entre repositóriosblockedImpedido por dependência ou autorização externapriority: p1Alta prioridadetype: bugComportamento diferente do esperado

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions