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

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

  • @Hugo.Digital
    @Hugo.Digital 4 месяца назад +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.

    • @userhsdjhdajtyrnvaye
      @userhsdjhdajtyrnvaye 4 месяца назад +5

      cuspiu fatos

    • @crsmv1742
      @crsmv1742 4 месяца назад +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.

  • @leonardooliveira4984
    @leonardooliveira4984 4 месяца назад +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 4 месяца назад +1

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

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

      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 4 месяца назад +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".

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

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

  • @matheusserafim758
    @matheusserafim758 4 месяца назад

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

  • @DevN0T
    @DevN0T 4 месяца назад +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

  • @DanielRios549
    @DanielRios549 4 месяца назад +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 4 месяца назад

      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 4 месяца назад

      @@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 4 месяца назад

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

    • @DanielRios549
      @DanielRios549 4 месяца назад

      @@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 4 месяца назад

      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.

  • @k4zludk3
    @k4zludk3 4 месяца назад

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

  • @baianofinancas
    @baianofinancas 4 месяца назад

    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?

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

    Qual falam que libero, onde exatamente libera o projeto?

  • @verquo
    @verquo 4 месяца назад

    As mensagens no chat são um filme de terror

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

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

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

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

    • @carlosricardoziegler2650
      @carlosricardoziegler2650 4 месяца назад

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

  • @wiliamtaesunglee
    @wiliamtaesunglee 4 месяца назад

    Monstro

  • @lucasdeandradeoficial
    @lucasdeandradeoficial 4 месяца назад

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

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

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

    • @seoky6
      @seoky6 4 месяца назад

      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 4 месяца назад +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

  • @JoseBarbosaa
    @JoseBarbosaa 4 месяца назад

    Muito bom

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

    como que tem acesso a essas aulas?

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

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

    • @eurico_dev
      @eurico_dev 4 месяца назад

      também gostaria de saber

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

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

    • @allancassio6674
      @allancassio6674 4 месяца назад

      ​@@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 4 месяца назад

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

  • @R6videos6R
    @R6videos6R 4 месяца назад

    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 4 месяца назад

      Está usando Fastfy

    • @R6videos6R
      @R6videos6R 4 месяца назад

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

  • @viniciusrangel544
    @viniciusrangel544 4 месяца назад

    nunca considerou o casbin? eu gosto bastante

    • @dieegosf
      @dieegosf 4 месяца назад

      É 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 4 месяца назад

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

  • @lucianoseibel
    @lucianoseibel 4 месяца назад

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

    • @dieegosf
      @dieegosf 4 месяца назад

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

  • @DanielRios549
    @DanielRios549 4 месяца назад

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

    • @TheBraziliansGames
      @TheBraziliansGames 4 месяца назад

      só instalar e usar o Fastify Type Provider Zod

    • @DanielRios549
      @DanielRios549 4 месяца назад

      @@TheBraziliansGames Tem algo do tipo pro Express?

  • @princehrb
    @princehrb 4 месяца назад

    quando sai esse frontend?

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

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

    • @princehrb
      @princehrb 4 месяца назад

      @@dieegosf melhoras mentor

    • @princehrb
      @princehrb 4 месяца назад

      @@dieegosf o frontend sera em nextjs 14?