Objetivo
Este documento tem como objetivo auxiliar na definição de segurança de acesso aos serviços da WebAPI de acordo com as permissões concedidas na linha RM.
Atributo
Foi definido o seguinte atributo para decoração dos controllers e actions: RMApiAuthorize
Propriedade | Descrição |
---|
SecurityId | Id de Segurança do Controller. Deverá ser gerado pelo RM Especifica, da mesma forma que é gerado para Actions do RM. |
ExecuteId | Id de Permissão para operações (actions). Mesmo que é utilizado para Processos e Anexos na Linha RM. |
Module | Identificador do Módulo da Linha RM. Ex.: Serviços Globais - G |
Por padrão, o SecurityId e ExecuteId tem o valor zero.
Controllers com o SecurityId com o valor zero não tem sua autorização validada, da mesma forma que nas Actions e DataServers da linha RM.
Exemplos
No controller e/ou actions (métodos) deverá ser informado o atributo com as devidas configurações:
Bloco de código |
---|
language | c# |
---|
firstline | 1 |
---|
title | ExemploController |
---|
linenumbers | true |
---|
|
[RMApiAuthorize("G", 810000000)]
public class ExemploController : ApiController
{
public dynamic Values()
{
return { "Value1", "Value2" }
}
[RMApiAuthorize("G", 810000000, 1)]
public dynamic Show(int value)
{
return value;
}
} |
Note o uso do atributos nas Linhas 1 e 9. Os métodos que não tiverem atributos definidos, herdarão a permissão definida no Controller.
Definição na Árvore de Permissões
Deverá ser definido no Menu Profile do Módulo, por exemplo GlbProfileController, de acordo com a hierarquia habitual (pages, groups, itensitems, policies) a estrutura para definir a permissão e exibição na árvore de perfil.
As Pages e Groups devem ser definidos somente por questão de organização da árvore. No exemplo abaixo, foi criada uma página "Controllers (WebAPI)" e um grupo "Exemplo".
Informações |
---|
|
Lembrando que itens com Tag vazia ou igual a zero, |
não NÃO são mostrados na árvore de permissão. O Ids de Segurança devem ser gerados pelo RM Especifica, do mesmo modo que é feito para Actions do RM. As permissões são validadas independente de Coligada do RM, visto que temos APIs independente de contexto. |