SaaS multi-tenant com permissões por cargos (RBAC)
HTML-код
- Опубликовано: 5 окт 2024
- Autorização é uma parte muito importante pra diversos tipos de aplicações. O RBAC (Role-Based Access Control) é uma estratégia de controles de acesso baseada em cargos e foi ideal para o projeto novo que eu adicionei recentemente na formação Node.js, lá dentro da plataforma da Rocketseat.
Aqui eu te mostro um pouco como funciona o RBAC especificamente nesse caso, dentro de um código back-end de um SaaS multi-tenant.
-----
Conecte-se a 500mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com...
Cadastre-se na nossa plataforma: app.rocketseat...
Junte-se a mais de 392mil devs em nossa comunidade no Discord: / discord
Acompanhe a Rocketseat nas redes sociais:
Twitter: @rocketseat
Facebook: @rocketseat
Instagram: @rocketseat
Isso é legal, mas eu recomendo uso do Keycloak ou alguma ferramente do tipo.
Escovar bit com todo esse desenvolvimento é contraproducente.
Melhor focar no negócio.
cuspiu fatos
Realmente o uso do keycloak facilita demais, principalmente quando entra na parte de user federation. Mas às vezes criar um do "zero" é bom para entender como funciona pelo menos o básico, muita gente não sabe nem a diferença de autenticação/autorização.
mano eu fico mt chateado que a parada do front é muito volátil, mal fico atualizado e já tem milhões de coisas novas e diferentes. Qualquer backend baseado em JS é igualzinho também. Eu sou dev fullstack mas precisei focar mais em projetos do back em java, aprendi muito mas agora quando volto a me atualizar em front, inventaram uma maneira nova de programar, apenas isso.
Isso que é fod4 tenho a mesma visão. Muito volátil.
Por isso que eu deixei o front para lá e foco no back. Se precisar mexer no front vou fazer do bom e velho jeito que sempre atendeu e vida que segue
Cara o problema de vocês é achar que tem que ja saber todas as atualizações que saem, como se as empresas ja estivesse usando. Cara, não! Independente da atualização que surgem como frameworks e bliotecas, as empresas demoram para aderir as novidades, então tenta tirar da tua cabeça que "saiu uma atualização e eu ja tenho que mudar".
Esse projeto ta animal, sem dúvida farei esse curso.
as aulas estão muito boas, só estou no aguardo das aulas do nextjs deste Saas
Não uso js, nem ts, mas fiz algo parecido no meu projeto em spring, só que no caso lá também tenho além do cargo,os cargos são criado dentro da aplicação pelo adm e tenho permissões adicionais para aquele usuario naquele tenant, pra caso o admin daquele tenant não queira criar um cargo a mais só para adicionar uma permissão
3:35 Na verdade mesmo, "RBAC" significa "Role Based Access Control", e não tem a ver com o cargo do usuário dentro da organização, é simplesmente se o usuário tem permissão para fazer algo. Mas enfim, é um parada muito da hora, eu to mexendo com isso exatamente agora e é bem da hora mesmo
Opa mano, acho que você se confundiu. O conceito de RBAC é um usuário possuir de um cargo/grupo que contem um conjunto de permissões e uma das traduções de "Role" é literalmente grupo. Que bom que esteja se aventurando nisso, é algo que realmente pode agregar em um sistema que esteja desenvolvendo. Sucesso!
@@Athods Foi exatamente isso que eu falei. A questão é que essa role não está relacionada ao cargo do usuário na organização, e um usuário pode ter várias roles também, dois usuários podem ter uma mesma role, mas um deles tem outra role que diferencia do outro.
Claro que é totalmente customizável, se o dev quiser ele pode atrelar a role do RBAC ao cargo do usuário na organização, sem problema, mas não é a essência do RBAC, é apenas uma possibilidade pela forma que o sistema funciona.
@@DanielRios549 Role é o mesmo que o cargo na organização
@@Athods Mano, não vou ficar tentando te explicar a forma que o RBAC funciona, veja como é no Google Cloud e vc vai entender
As roles (admin, manager, client) são uma forma de agrupar permissões (repository:read, project:write) no RBAC. Atribuir roles aos usuários ao invés de permissões diretamente é bem comum. Já a autorização de acesso normalmente é feita com base na permissão e não na role. Se você observar direito, é assim que o Diego está fazendo.
brabíssimo, quando são essas lives na twitch que ele analisa essas parada?
Estou curtindo muito o curso, e estou no aguardo da parte do frontend.
Sobre a parte de billing do prejeto, vai ter alguma regra de negocio de contagem de acessos por mês ou coisa do tipo e integração com algum gateway tipo o stripe?
Qual falam que libero, onde exatamente libera o projeto?
As mensagens no chat são um filme de terror
Cara não seria melhor um middleware antes de bater em cada rota e nele verificar se o usuário tem permissão ou não? E aí em cada rota apenas passar um decorador com as permissões que aquela rota tem? A única coisa chata nesse tipo de autenticação que não consegui uma solução boa é a grade de relacionamento / permissão, dependendo da regra algumas pessoas podem ou não ver alguns relacionamentos, no orm que uso faço uns gatilhos meio loucos nele que funciona, mas é chato...
Muito massa essa lib de roles, clerk tem uma componentes massa de gerenciamento de orgs
O que vai usar de frontend ? E o que tá usando no backend ? Eu tô curtindo usar HonoJS 😊
Monstro
Se passar essa regra de negócio para um middleware estaria fugindo do padrão RBAC?
Olá Diego tudo bem? Por que não estão postando mais vídeos de React Native?
Ele tá se aprofundando em outros assuntos como esse enquanto outra pessoa faz vídeo de RN, infelizmente não dá pra focar em tudo.
Nós separamos os canais por educador então o Rodrigo está postando de React Native num canal separado: www.youtube.com/@orodrigogo/videos
Muito bom
como que tem acesso a essas aulas?
Qual módulo está sendo esse la dentro da plataforma?
também gostaria de saber
Esse é um curso a parte, ou seja, não está dentro de uma formação específica.
@@dieegosf eu estou construindo um SaaS por conta. Mas nunca fiz isso, essas aulas aí seriam uma ajuda sem tamanho. Como que posso ver?
@@allancassio6674se tiver assinatura na plataforma, só entrar e filtrar pelo curso que disseram aqui em cima nas respostas.
Algum motivo em específico pra não usar framework no back? Quando começaram com Nest js achei que continuariam a usá-lo em outros projetos.
Está usando Fastfy
@@kevinferreira6279 mas o Nest também dá suporte a Fastify
nunca considerou o casbin? eu gosto bastante
É uma lib incrível também, mas estava procurando algo mais no ecossistema JS que assim já facilita a integração com frameworks e libs front-end. Por exemplo, o CASL tem integração nativa no Nest para back-end e pacotes para as principais ferramentas como React, Prisma, etc...
@@dieegosf interessante... com go eu só uso casbin, agora estou em um projeto nest, vou verificar o casl. obrigado Diego
como faço para acompanhar este curso e este app?
Está na plataforma da Rocketseat, só procurar por SaaS ou RBAC
Como que faz pra usar o Zod assim direto no body e no response das rotas?
só instalar e usar o Fastify Type Provider Zod
@@TheBraziliansGames Tem algo do tipo pro Express?
quando sai esse frontend?
Só estou esperando passar a dor de garganta e já vou gravar as aulas de front-end.
@@dieegosf melhoras mentor
@@dieegosf o frontend sera em nextjs 14?