SaaS multi-tenant com permissões por cargos (RBAC)

Поделиться
HTML-код
  • Опубликовано: 12 май 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.br/
    Cadastre-se na nossa plataforma: app.rocketseat.com.br/signup
    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

Комментарии • 50

  • @Hugo.Digital
    @Hugo.Digital Месяц назад +16

    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.

    • @gilbertoj.3507
      @gilbertoj.3507 Месяц назад +5

      cuspiu fatos

    • @crsmv1742
      @crsmv1742 Месяц назад +1

      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.

  • @FredBCavalheiro
    @FredBCavalheiro Месяц назад +3

    Esse projeto ta animal, sem dúvida farei esse curso.

  • @leonardooliveira4984
    @leonardooliveira4984 Месяц назад +12

    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.

    • @Brendonjkl174
      @Brendonjkl174 Месяц назад +1

      Isso que é fod4 tenho a mesma visão. Muito volátil.

    • @-lotosuy
      @-lotosuy Месяц назад

      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

    • @viniciusvirtuoso7459
      @viniciusvirtuoso7459 Месяц назад +2

      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".

  • @matheusserafim758
    @matheusserafim758 Месяц назад

    as aulas estão muito boas, só estou no aguardo das aulas do nextjs deste Saas

  • @DevN0T
    @DevN0T Месяц назад +1

    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

  • @wiliamtaesunglee
    @wiliamtaesunglee Месяц назад

    Monstro

  • @baianofinancas
    @baianofinancas Месяц назад

    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?

  • @JoseBarbosaa
    @JoseBarbosaa Месяц назад

    Muito bom

  • @k4zludk3
    @k4zludk3 Месяц назад

    brabíssimo, quando são essas lives na twitch que ele analisa essas parada?

  • @DanielRios549
    @DanielRios549 Месяц назад +5

    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

    • @Athods
      @Athods Месяц назад

      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!

    • @DanielRios549
      @DanielRios549 Месяц назад

      @@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.

    • @Athods
      @Athods Месяц назад

      @@DanielRios549 Role é o mesmo que o cargo na organização

    • @DanielRios549
      @DanielRios549 Месяц назад

      @@Athods Mano, não vou ficar tentando te explicar a forma que o RBAC funciona, veja como é no Google Cloud e vc vai entender

    • @mateusferraz1468
      @mateusferraz1468 Месяц назад

      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.

  • @verquo
    @verquo Месяц назад

    As mensagens no chat são um filme de terror

  • @shift564
    @shift564 Месяц назад +1

    Qual falam que libero, onde exatamente libera o projeto?

  • @carlosricardoziegler2650
    @carlosricardoziegler2650 Месяц назад +1

    Muito massa essa lib de roles, clerk tem uma componentes massa de gerenciamento de orgs

    • @carlosricardoziegler2650
      @carlosricardoziegler2650 Месяц назад

      O que vai usar de frontend ? E o que tá usando no backend ? Eu tô curtindo usar HonoJS 😊

  • @lucasdeandradeoficial
    @lucasdeandradeoficial Месяц назад

    Se passar essa regra de negócio para um middleware estaria fugindo do padrão RBAC?

  • @felipesilveiram
    @felipesilveiram Месяц назад +1

    Olá Diego tudo bem? Por que não estão postando mais vídeos de React Native?

    • @seoky6
      @seoky6 Месяц назад

      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.

    • @dieegosf
      @dieegosf Месяц назад +1

      Nós separamos os canais por educador então o Rodrigo está postando de React Native num canal separado: www.youtube.com/@orodrigogo/videos

  • @CarlosEduardo-nt8pm
    @CarlosEduardo-nt8pm Месяц назад

    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...

  • @R6videos6R
    @R6videos6R Месяц назад

    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.

    • @kevinferreira6279
      @kevinferreira6279 Месяц назад

      Está usando Fastfy

    • @R6videos6R
      @R6videos6R Месяц назад

      @@kevinferreira6279 mas o Nest também dá suporte a Fastify

  • @DanielRios549
    @DanielRios549 Месяц назад

    Como que faz pra usar o Zod assim direto no body e no response das rotas?

    • @TheBraziliansGames
      @TheBraziliansGames Месяц назад

      só instalar e usar o Fastify Type Provider Zod

    • @DanielRios549
      @DanielRios549 Месяц назад

      @@TheBraziliansGames Tem algo do tipo pro Express?

  • @lucianoseibel
    @lucianoseibel Месяц назад

    como faço para acompanhar este curso e este app?

    • @dieegosf
      @dieegosf Месяц назад

      Está na plataforma da Rocketseat, só procurar por SaaS ou RBAC

  • @viniciusrangel544
    @viniciusrangel544 Месяц назад

    nunca considerou o casbin? eu gosto bastante

    • @dieegosf
      @dieegosf Месяц назад

      É 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...

    • @viniciusrangel544
      @viniciusrangel544 Месяц назад

      @@dieegosf interessante... com go eu só uso casbin, agora estou em um projeto nest, vou verificar o casl. obrigado Diego

  • @natanfoleto8233
    @natanfoleto8233 Месяц назад +2

    Qual módulo está sendo esse la dentro da plataforma?

    • @eurico_dev
      @eurico_dev Месяц назад

      também gostaria de saber

    • @dieegosf
      @dieegosf Месяц назад +1

      Esse é um curso a parte, ou seja, não está dentro de uma formação específica.

    • @allancassio6674
      @allancassio6674 Месяц назад

      ​@@dieegosf eu estou construindo um SaaS por conta. Mas nunca fiz isso, essas aulas aí seriam uma ajuda sem tamanho. Como que posso ver?

    • @JoseFernandes-rn8zq
      @JoseFernandes-rn8zq Месяц назад

      ​@@allancassio6674se tiver assinatura na plataforma, só entrar e filtrar pelo curso que disseram aqui em cima nas respostas.

  • @princehrb
    @princehrb Месяц назад

    quando sai esse frontend?

    • @dieegosf
      @dieegosf Месяц назад +1

      Só estou esperando passar a dor de garganta e já vou gravar as aulas de front-end.

    • @princehrb
      @princehrb Месяц назад

      @@dieegosf melhoras mentor

    • @princehrb
      @princehrb Месяц назад

      @@dieegosf o frontend sera em nextjs 14?