Gerenciamento de Permissões

Pessoal, aqui na empresa, estamos começando a trabalhar com uma arquitetura baseado em serviços rest(JAX-RS).

Com base nisso, resolvemos criar um web-service só para gerenciar a autenticação e autorização das operações de nossos serviços. Resolvemos adotar o JWT para gerenciar a autenticação.

Com relação a autorização, estamos pensando em criar o nosso próprio modelo de permissões. Para fazer isso, nosso web service terá uma base de dados que gerenciará as permissões. E os endpoints de cada serviço serão anotados com as permissões. Isso já sabemos como fazer.

A questão é o seguinte:

Vi que, basicamente, existem dois tipos de gerenciamento de permissões.

  1. Um tipo que se gerenia as permissões do usuário com base em roles que possuem em ações
  1. Há também uma outra implementação que se gerencia as permissões do usuário com base diretamente nas ações, sem a intermediação de roles.

http://conteudo.imasters.com.br/18327/1.jpg

Gostaria de saber a opinião de vocês sobre qual seria a melhor forma de gerenciar as permissões. Se precisarem de mais informações, posso acrescentar sem problemas.

Qualquer ajuda, será válida.