Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
Flujo de autenticación de múltiples inquilinos

¿Cómo gestionan las empresas la autenticación en sus aplicaciones web multiusuario?

Esencialmente, tengo una sola instancia de base de datos PostgreSQL con muchas tablas. Cada tabla tiene una columna workspace_id que usaré para otorgar/denegar acceso. Puede pensar en un espacio de trabajo como un cliente y un solo usuario puede asociarse con varios espacios de trabajo.

Mi pensamiento inicial fue:

  1. Use la aplicación frontend y permita que el usuario envíe el correo electrónico y la contraseña al backend.
  2. El backend valida los detalles y devuelve todos los espacios de trabajo a los que pertenece el usuario.
  3. La aplicación frontend muestra los espacios de trabajo.
  4. El usuario selecciona el espacio de trabajo en el que desea iniciar sesión. La identificación del espacio de trabajo y los detalles del usuario que se pasaron en el paso 1 están nuevamente en el backend.
  5. El backend valida nuevamente todos los detalles y emite un token jwt que contiene los detalles del usuario y la identificación del espacio de trabajo.
  6. Más tarde, cuando el usuario intente acceder a cualquier recurso, extraeré la identificación del espacio de trabajo del token para verificar si el usuario tiene acceso a un recurso o no.

Estoy a la mitad de la implementación de lo que describí anteriormente, pero no estoy seguro de si ese es el mejor enfoque. ¿Qué piensas?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No estoy seguro de llamar a esto multiusuario; en realidad, es solo un caso de diferentes usuarios con diferentes claims :

  • Los usuarios deben iniciar sesión una vez, luego tener acceso a los datos a los que su identidad de usuario tiene derecho

Cuando su interfaz de usuario llama a las API, el back-end debe recibir un token de acceso JWT con cualquiera de estas cargas útiles. Se prefiere el segundo de estos, pero no todos los sistemas lo admiten:

  • Solo el ID de usuario
  • El ID de usuario más una matriz de ID de espacio de trabajo

LA OPCIÓN MÁS SENCILLA

Esto podría ser solo para buscar las ID del espacio de trabajo del usuario cada vez que se recibe una solicitud de API, según la ID de usuario en el token de acceso JWT, como en el comentario de Joe anterior.

PRINCIPAL DE RECLAMACIONES

Si los Id. de espacio de trabajo se utilizan con frecuencia para la autorización en muchas solicitudes de API, entonces una mejor opción es diseñar un objeto Claims Principal que contenga datos que la API suele utilizar para la autorización y que contenga los Id. importantes. Podría verse así para un usuario en particular:

 { sub: "wdvohjkerwt8", userID: 234, workspaceIDs: [2, 7, 19] }

Este objeto generalmente debe estar compuesto por datos de identidad (almacenados por el servidor de autorización) y también datos específicos del dominio. El ID de usuario anterior puede ser una clave de base de datos, mientras que la notificación del asunto suele ser un valor generado.

Cuando se recibe una solicitud de API, puede leer todos los reclamos del token de acceso de JWT o combinar datos específicos del dominio con los datos de JWT.

Luego, Claims Principal se inyecta donde sea necesario, de modo que su lógica de autorización de API se pueda codificar de una manera simple. En su caso, esto implicará filtrar espacios de trabajo cuando trabaje con colecciones, o denegar el acceso si el usuario intenta acceder específicamente a un espacio de trabajo al que no tiene derecho.

Aquí hay un ejemplo de código mío de Node.js que hace esto, usando un region array claim :

  • Código Principal de Reclamos
  • Código de autorización
  • Doc
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda