Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Controler de perfis utilizando token

Parabéns pelo curso Daniel, ficou bem didático.

Eu gostaria de saber, como faríamos um controle de Perfis de usuário para acesso a API. No MVC temos a anotação Authorize que pode receber os papéis que tem acesso a Action ou o Controller.

No caso da API nós utilizamos a mesma anotação, que eventualmente poderia receber os perfis. Assim, só as pessoas com o perfil determinado poderiam acessar a API.

Esses perfis seriam colocados no token via claim ou no payload? Somente a adição da anotação seria o suficiente ou teríamos que criar algum tipo de validador para a verificação do perfil?

Att, Sérgio

3 respostas
solução!

Opa, Sérgio, agradeço o feedback.

Sendo direto:

Authorizing based on roles is available out-of-the-box with ASP.NET Identity. As long as the bearer token used for authentication contains a roles element, ASP.NET Core’s JWT bearer authentication middleware will use that data to populate roles for the user.

So, a roles-based authorization attribute (like [Authorize(Roles = "Manager,Administrator")] to limit access to managers and admins) can be added to APIs and work immediately.

Então, as roles que o usuário possui seriam colocadas no payload JWT com a propriedade JSON roles.

Exemplo:

"roles": ["Admin", "SuperUser"]

Daí no momento da autorização de seu endpoint basta fazer o mesmo que em uma aplicação MVC normal: anotar o controlador ou action com [Authorize (Roles = "Admin")].

Ainda não tive oportunidade de usar essa solução em uma aplicação, então faça os testes e me dá um feedback aqui caso dê algum galho, ok?

Outras Referências

  • Apesar de mais antigo, achei esse artigo mais didático.
  • esse é mais recente, de 2019.

Espero ter ajudado!

Oi, Sérgio, bom dia. Tudo bem?

Conseguiu esclarecer sua dúvida? Dá um feedback pra gente aqui. Se já houver resolvido peço a gentileza de fechar o tópico, ok?

Abraços!

Desculpe a demora Daniel, esclareceu sim. Obrigado