Pular para o conteúdo
Moovi — página inicial
SAP → ABAP

Global e Instance Authorization RAP

Por Gabriel Dias2 min de leitura

Introdução

O ABAP RESTful Application Programming Model (RAP) é uma poderosa abordagem da SAP para desenvolver aplicações Fiori e serviços OData com base em tecnologia moderna. Um dos aspectos essenciais para garantir a segurança e conformidade das aplicações é a implementação de autorizações, que no RAP pode ser realizada em dois níveis principais: Global e Instance Authorizations.

Código:

authorization master ( global, instance )

image

Autorizações Globais (Global Authorizations)

As autorizações globais são verificadas no nível da aplicação e geralmente determinam se um usuário tem permissão para acessar o serviço como um todo.

Elas funcionam como um controle de acesso inicial e podem ser configuradas para validar se o usuário possui as credenciais necessárias antes mesmo de permitir qualquer operação no sistema.

Método:

METHODS get_global_authorizations FOR GLOBAL AUTHORIZATION IMPORTING REQUEST requested_authorizations FOR document RESULT result.

Exemplo:

DATA(ls_auth) = zcl_auth=>get_auth_user( ).
 
    IF ls_auth IS NOT INITIAL.
      result-%create = if_abap_behv=>auth-allowed.
      result-%update = if_abap_behv=>auth-allowed.
      result-%delete = if_abap_behv=>auth-allowed.
      result-%action-executefile = if_abap_behv=>auth-allowed.
    ELSE.
      result-%create = if_abap_behv=>auth-unauthorized.
      result-%update = if_abap_behv=>auth-unauthorized.
      result-%delete = if_abap_behv=>auth-unauthorized.
      result-%action-executefile = if_abap_behv=>auth-unauthorized.
    ENDIF.

Autorizações por Instância (Instance Authorizations)

As autorizações por instância são mais detalhadas e avaliam se um usuário tem permissão para executar uma ação em um registro ou instância específica de um objeto de negócio. Esse tipo de verificação é crucial para garantir que os dados sejam protegidos de forma granular.

Método:

METHODS get_instance_authorizations FOR INSTANCE AUTHORIZATION IMPORTING keys REQUEST requested_authorizations FOR document RESULT result.

Exemplo:

READ ENTITIES OF zr_cds IN LOCAL MODE
      ENTITY document
        ALL FIELDS WITH CORRESPONDING #( keys )
      RESULT DATA(lt_result)
      FAILED failed.
 
result = VALUE #( FOR ls_result IN lt_result
                  ( %tky = ls_result-%tky
                    %update = COND #( 
                      WHEN ls_result-status = 4 
                        THEN if_abap_behv=>fc-o-disabled
                      ELSE if_abap_behv=>fc-o-enabled ) 
                    %action-executefile = COND #( 
                      WHEN ls_result-status = 2 OR 
                           ls_result-status = 3 
                       THEN if_abap_behv=>fc-o-enabled                        
                      ELSE if_abap_behv=>fc-o-disabled ) ) ).
Todos os artigos

Aprenda na prática

Do artigo ao projeto entregue

Os cursos da Moovi têm ambiente SAP de prática e acompanham você do primeiro passo à especialização.

Conhecer os cursos
Fale no WhatsApp