Pular para o conteúdo principal

Login da organização nas aplicações

Com o login da organização ligado, as pessoas entram na sua aplicação com a conta que já têm na organização dona do projeto — a mesma com que entram no console do Zero. A plataforma faz o login, guarda a sessão, renova e encerra; a aplicação só lê quem entrou:

const user = await nn.auth.user(req) // a pessoa, ou null

A aplicação não configura OIDC, não guarda sessão e não recebe token do provedor de identidade, token de renovação nem segredo. Não há nada para copiar para variáveis ou secrets.

Para quem​

  • Aplicações da organização — painéis, ferramentas internas, portais — publicadas como aplicação web com o endereço público do Zero.
  • Quem precisa saber quem está usando para decidir o que mostrar, sem montar um login.

O que a aplicação recebe​

CampoO que é
ido identificador da pessoa no IAM da organização
username, name, email, emailVerifiedquando a conta os tem
organization{ id, slug } — a organização do projeto
sessionIdreferência da sessão na plataforma (não é o cookie)

Como funciona​

  1. A pessoa abre a aplicação. Sem sessão, a aplicação decide: mostrar a parte pública ou mandar para o login.
  2. O login acontece no IAM da organização — a tela de sempre, com as regras da organização (senha, segundo fator).
  3. A plataforma guarda a sessão e, a cada requisição, confere a sessão e entrega à aplicação uma identidade assinada, válida por 5 minutos e só para esta aplicação.
  4. O SDK confere a assinatura e devolve a pessoa.

Os caminhos em /.nnumbers/ são da plataforma, no endereço da própria aplicação:

CaminhoO que faz
/.nnumbers/auth/login?return_to=/painelentra e volta ao caminho pedido (só caminho da própria aplicação)
/.nnumbers/auth/logoutsai — POST a partir de um formulário da própria aplicação
/.nnumbers/auth/sessiono estado da sessão, para o navegador

O que a plataforma garante​

  • A identidade não se forja. A plataforma remove, na entrada, qualquer cabeçalho de identidade que venha do navegador; a identidade entregue é assinada, vale para uma aplicação só e por 5 minutos. Uma aplicação não aceita a identidade entregue a outra, nem a de outra organização.
  • Nenhuma credencial na aplicação. Não existe segredo de cliente; os tokens do IAM ficam cifrados na plataforma.
  • A organização manda. O login é o da organização do projeto — não há como apontar outro. Pessoa desativada ou sessão encerrada no IAM derrubam a sessão da aplicação no vencimento do acesso emitido pelo IAM, em minutos.
  • A sessão tem prazo. 30 minutos sem uso ou 12 horas no total; sair encerra a sessão também no IAM.
cuidado

O cookie de sessão da plataforma chega à aplicação, porque o endereço é o mesmo. Ele não serve para fabricar identidade, mas não o registre em log nem o repasse.

Limites​

  • Vale no endereço público que o Zero dá ao projeto; o domínio próprio ainda não tem o login da organização.
  • Só para aplicações web.
  • Cada organização precisa, uma vez, que a plataforma autorize o registro de aplicações no IAM dela. Até lá a capacidade fica em Falta configurar na plataforma, e segue sozinha depois.
  • O console ainda não tem a tela: ligue pela CLI ou pela API.
  • Para consultar dados da organização em nome da pessoa, ligue também o QueryMesh.

Próximos passos​