Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

A estrutura para utilização de autorização de autenticação está contida no pacote Tnf.App.AspNet.Security disponível via nuget em nosso package souce: https://www.myget.org/F/tnf/api/v3/index.json

Configurando integração com RAC

Para que a sua aplicação consiga conversar com o serviço de RAC precisa parametrizar no arquivo de configuração o endereço onde o serviço do RAC se encontra:

Bloco de código
languagejs
firstline1
titleappsettings.json
linenumberstrue
{
  "RACUrl": "http://127.0.0.1:10315/",
  "ConnectionStrings": {
    "Default": "Server=(localdb)\\MSSQLLocalDB;Database=Tnf;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}


Dependências de módulo

Para ter o nosso projeto de segurança no projeto web é necessário criar um módulo que dependa do módulo TnfAppAspNetCoreSecurityModule:

...

Dessa forma quando o modulo for carregado ao startup da aplicação suas dependências serão carregadas com ele, e ao carregar esse módulo ele vai fazer uma pesquisa por todos os controllers da aplicação que herdem de TnfAppController e procurar neles métodos que possuem o atributo TnfAuthorize para popular o serviço de RAC com as permissões expostas nos métodos.

Atributo de Autorização

Para vincular um endpoint a uma permissão, é necessário decorar ele com o atributo de segurança disponibilizado pelo Tnf.App.AspnetCore.Security:

Bloco de código
languagec#
firstline1
titleDependências de um módulo
linenumberstrue
public class BlogController : TnfAppController
{
    [HttpGet]
    [TnfAuthorize(Permissions.CanGet)]
    public IActionResult Get()
        => CreateResponseOnGet(new ResponseDto());
}

Esse atributo comunicará com o serviço de RAC para ver se o usuário logado na aplicação tem permissão para acessar esse método, se não possuir permissão ele não irá acessar o método e retornará um erro 401 padronizado com o padrão de api da TOTVS.