본문 바로가기

SAP&ABAP

SAP BC [Tips] - Role, Profile, Authorization object 개념

728x90

참고 URL

https://community.sap.com/t5/technology-blogs-by-members/difference-between-role-authorization-object-s-and-profile/ba-p/13537880

참고 문서

Analysis of Authorizations in SAP R/3 Untersuchung des Berechtigungskonzepts im SAP R/3 System
by Manuel Lamotte(2008)

 

Role, Profile, Authorization object 각각의 개념에 대하여

 

Role이란?

 

- SAP를 사용하는 USER가 시스템에서 특정 업무를 하기 위해서는 필요한 Role을 할당 받아야 한다.

 

- Role은 Profile을 생성하고 그 Profile 안 에는 여러 Authorization object가 있다.

 

- Role은 유저에게 권한을 부여하는 수단이다. Role을 사용자에게 부여하면 자동으로 Profile도 할당하게 된다.

 

부여된 Roles
부여된 Profiles

 

Profile

Authorization 구조
Profile 구조

- Profile은 권한 데이터를 저장하는 Object이다. Standard와 Generated 2가지 형태의 타입이 있다.

- Standard Profile은 유저에게 직접 부여가 가능하다.(역할에 독립적이다.)

- Generated Profile은 유저에게 부여하기 위해서는 Profile을 가지고 있는 역할을 부여해야 한다. 

 

Profile 부여

A_ALL은 SAP에 미리 정의된 Standard 타입의 Profile이라 문제없이 독립적으로 부여되지만

T_BY690121 Profile은 SAP_AIO_COSTACC-S이라는 SAP가 가진 기본 Role에 딸린 Generated Profile이기 때문에 독립적으로 부여가 안된다.

 

 

Authorization(권한)이란?

- Authorization Object 에 의해 구별/식별된다( Authorization이 Authorization Object를 포함하고 있다.)

- Object class 는 권한 오브젝트 영역을 나타낸다.

- Authorization Object 는 최대 10개의 권한 필드로 이루어져 있다.

 

Profile이 여러 Authorization을 가질 수 있다. Authorization은 Authorization Object를 가진다.

Profile-Authorization- Authorization Object의 관계를 보는 테이블
한 profile에 여러 Authorization이 들어있다

 

- 위와 같이 한 profile에 여러 Authorization가 있는 경우에는 Union되어 권한 체크가 수행될 것이다. SAP의 권한 통제 방식은 access를 금지하는 것이 아니라 허용하는 것이기 때문이다. 

"Authorizations can only grant access to transactions/functions/data but they can’t forbid the access. Therefore, conflicts resulting from the union cannot occur because the union of access grants implies again access grants and never the denial to access something." - Analysis of Authorizations in SAP R/3 Untersuchung des Berechtigungskonzepts im SAP R/3 System
by Manuel Lamotte(2008)

 

- SU21 T-CODE에 들어가면 모든 Authorization Object를 볼 수 있다. 크게 Object class로 Authorization Object를 분류하고 있다. Authorization Object를 클릭하면 어떤 Authorization Field들이 들어있는 지 볼 수 있다.

SU21에서 SQL Editor 관련  Authorization Object 확인
S_TABU_SQL 조회

- 위와 같이 관련 권한 필드들을 조회할 수 있다.

 

- 추가로 아래와 같이 Authorization Object에 필드가 없는 경우도 있다. 

자재마스터 생성 권한 오브젝트

- 자재 마스터 생성 Authorization Object를 보면 권한 필드에 일반적인 필드가 아니라 Dummy가 있다.

- 이는 권한을 필드로 통제하는 것이 아니라 권한 오브젝트 자체로 컨트롤한다는 의미이다. 따라서 profile이 이 Authorization Object를 담고 있느냐 아니냐에 따라 자재 생성 권한이 있느냐 없느냐가 갈리는 것이다. 

 

 

- SU24에서는 T-CODE에 필요한 Authorization Object들을 관리할 수 있다. 단점은 CBO로 만든 프로그램들은 권한 체크가 없는 경우가 대부분이다. 이런 경우 SU24에서 Custom T-CODE에 권한 오브젝트를 넣고 해당 프로그램의 소스코드에  

authority-check object 'V_VBAK_VKO' 과 같이 권한 점검 함수를 넣어주어야 한다.

SU24 권한 오브젝트 추가
VA03의 예시

 

 

- 권한 통제 목적으로 T-CODE와 Authorization Object를 따로 관리하고 싶다면 접근가능한 T-CODE를 위한 ROLE과 Authorization Object들을 모아놓은 ROLE을 서로 다른 명명규칙을 사용해 관리하면 되지 않을까 한다.

 

TODO : SU22와 SU24의 차이는 무엇인가 

728x90