SAP 권한 개념 및 조회전용 역할 생성__SAP Authorization Concept and View-Only Role Creation

감귤은탱귤·2024년 1월 22일
1

SAP BC - 기본 개념

목록 보기
5/22
post-thumbnail

해당 글에 추가적인 내용을 포함해 개편을 준비중입니다... (25.09.10 ~ )
◼ 추가될 내용 정리
◻ BC 모듈단의 권한 관리 포스트 신규 작성 예정
◻ 복합롤에 대한 기본적인 설명, 예시, 한계점 추가
◻ 조직레벨 값이 적용 안되는 케이스 설명 추가
◻ 조직레벨 값을 별도 마스터 롤로 관리하는 케이스 설명 추가
◻ EndUser 단 공통 롤 기본 설계 설명 추가
◻ 권한 관련 테이블을 활용한 백 데이터 추출 예시 추가
2. 사용자 및 롤 관리 구성 설정 삭제 및 이동 -> 권한 관리 포스트로 이동할 예정
◻ 조회 전용 뿐 아니라, 다양한 케이스 2~4개 예시 추가 예정
◻ PFCG Mass* Tool 설명 및 사용법에 대한 포스트 신규 작성 예정

SAP BC 수시업무 중 가장 많은 부분을 차지하는게 모니터링과 더불어 권한 관리다.

권한 관리만 전문으로 하는 BC 도 있을 만큼, 권한 관리에 대해서는 신경써야 할 부분이 많다.

여기서는 권한 개념에 대해서 간략하게 서술하고,
예시로 특정 티코드에 대한 조회전용 역할(Role) 생성에 대해서 서술한다.

권한 관리에 관한 부분은 아래 글을 참조하기 바란다.

  • 작성 예정


1. 권한 개념

1-1. 권한 컨셉

SAP 에서의 트랜잭션 및 프로그램 실행, 엑세스, 액션 등등의 모든 활동은 SAP 시스템에서 부여하는 권한이 있어야 가능하다.

각 오브젝트들은 모두 권한 객체로 보호되기 때문이며, 보통 사용자 계정의 활동 및 책임에 따라 정의한다.

다음은 SAP 에서 제공하는 권한 부여 구성 요소와 그 관계들에 대한 이미지이다.

출처 : SAP Help Portal - ABAP Authorization Concept


1-2. 단어 설명

◼ 권한 오브젝트(Authorization Object)
권한 제어의 가장 작은 단위.
권한 필드(Authorization Field) 에 따라 사용자의 액션이 제어되며, 각 권한 오브젝트마다 가지고 있는 필드가 다르다.
대표적으로, 권한 필드의 Activity(ACTVT) 값에 따라 생성/수정/조회와 같은 기본적인 액션이 구분된다.

Tcode : SU21, SU22, SU24, SU20

◼ 롤(역할)
권한 오브젝트들의 집합. (간단히 Tcode 들의 집합으로 이해해도 무방하다.)
작게는 하나의 업무 단위, 크게는 업무 프로세스에 따라 정의하며, 특수한 목적을 가지고도 생성할 수 있다.
롤은 복합 롤(Composite Role) 과 단일 롤(Single Role) 두개로 구분되며, 아래 1-3. 권한 기초 설명 에서 자세히 설명한다.

Tcode : PFCG

◼ 프로파일(Profile)
권한의 실체화 개념, 롤이 권한 오브젝트의 집합 정의였다면, 프로파일은 롤의 실체화 구현이다.
즉, 롤이 부여되어있어도 프로파일이 없다면, 시스템 상에서 권한은 부여되지 않은것이다. (롤 부여에 큰 문제가 없다면, 프로파일은 시스템적으로 자동으로 부여된다.)

직관적으로 이해가 어렵다면, SAP_ALL 을 생각해보면 된다.
SAP_ALL 은 Role 이 아닌 Profile 이며, 모든 권한을 가지게 된다.
즉, 실제 권한 객체는 Profile 이다.

Tcode : SU02, SU25


1-3. 권한 기초 설명

해당 포스트에서는 상세한 설명보다는 기본적 부분을 중심으로 설명한다.

상기 권한 설계 컨셉그림에서 보다시피, 권한은 크게 롤과 프로파일로 나눠지며, 각각 복합(Comp.) / 단일(Single)로 다시 나눠진다.

프로파일을 직접 부여하는 경우는 특수한 상황밖에 없으므로, 일반적으로 사용자에게 권한을 부여한다는 의미는 롤을 부여한다 라고 생각하면 된다.

롤은 앞서 설명했다시피 복합 롤과 단일 롤이 있으며, 각자 장단점이 있다. (개인적인 주관)


◼ 복합 롤 (Composite Role)
복합 롤의 경우, 간단하게 설명하자면 싱글 롤의 집합체이다.

◻ 장점
큰 단위의 권한도 매우 쉽게 관리 할 수 있다는 장점이 있다.
잘 설계된 복합 롤의 경우, 사용자들에게 소수 롤(복합+단일) 만으로도 요청한 필요 권한을 부여할 수 있다.

◻ 단점
유지보수가 어렵다.
운영을 하다보면 필수불가결하게 신규 롤을 생성하거나, 기존 롤에 권한 오브젝트를 추가하는 등 지속적으로 유지보수가 필요한데, 프로젝트 초기 설계부터 실제 운영 유지보수 이력까지 전부 알고 관리하는 사람이 없는 한, 권한 관리가 갈수록 복잡해지고 난해해진다.

◼ 단일 롤 (Single Role)

◻ 장점
설계가 간단하며, 매우 직관적이다.
잘 설계된 단일 롤의 경우, 롤에 부여된 Tcode 와 주요 권한 오브젝트만 보더라도, 해당 롤이 어떤 역할과 기능을 하는지, 왜 해당 롤을 만들었는지 등을 직관적으로 알 수 있다.

◻ 단점
단점으로는 싱글 롤에 담긴 권한이 커지면 커질수록, 단일 롤의 장점인 직관성이 떨어지므로, 작은 단위로 밖에 관리할 수 없다는 점이다.



이러한, 복합 롤과 단일 롤의 장단점 속에서, 이상적으로는 각 롤의
장점만을 쏙쏙 뽑아 최대한 효율적으로 유지보수하는 것이 좋지만,
단일 롤만을 활용해서도 잘만 관리된다면 충분히 효율적인 권한 관리가 가능하다.

이하, 아래 글에서는 단일 롤에 초점을 맞춰 설명하며, =단일 롤 을 뜻한다.


1-4. 권한 부여 프로세스

신규 권한 부여는 보통 다음과 같은 순서로 이루어진다.

(1) 설계 - 업무 단위, 프로세스 또는 사용자 책임에 따른 롤 설계

보통 해당 업무에 필요한 Tcode 와 목적, 책임(담당, 관리) 에 따른 액션을 조정한다.
초기 운영시스템이라면, SAP 역할 관리 모델에 따른 기본 롤도 필요하다.

◼ Common Level
일반적으로 사용되는 Tcode 와 그에 대한 엑세스는 시스템의 모든 사용자에게 부여된다. 보통 EndUser 단 공통 권한을 뜻한다.
대표적으로 Tcode SU53, SU3 / 인쇄(Spool), 도움말 확인, ALV 레이아웃 또는 관리툴, GUI, 백그라운드 잡 릴리즈 등등의 권한을 부여한다.

(2) 생성 - 설계에 따른 롤 생성

설계 사양에 따라 롤의 티코드 부여 및 목적에 따른 권한 오브젝트의 Activity 값을 설정한다.
롤을 생성할때는 필수적으로 프로파일도 같이 생성해야 한다.

(3) 부여 - 생성된 롤의 사용자 부여

요구되는 사용자에게 생성된 롤 부여.
롤을 부여하고, 사용자 비교(User Compare)를 수행하면 시스템은 자동적으로 해당 롤을 가진 사용자에게 프로파일을 부여한다.
프로젝트 후기 단계에서는 롤 매트릭스를 통해, 각 사용자가 어떤 롤을 받아야하는지 장표를 통해서 일괄 권한 부여를 한다.


1-5. 권한 관련 테이블

다수의 롤을 대상으로 특정 조건을 확인할 때, 테이블을 통해서 조회하면 편하다.

다음은 권한/롤에 관련된 테이블 리스트이다.

  • AGR_DEFINE : 롤 별 생성일, 변경일, 설명 테이블
  • AGR_PROF : 롤 별 생성된 프로파일 테이블
  • AGR_TEXTS : 롤 별 설명(Desc) 테이블
  • AGR_TCODES : 롤 별, Menu 에 등록된 티코드 리스트 테이블 (S_TCODE 에 직접 등록된 티코드는 나오지 않음)
  • AGR_USERS : 롤 별 부여된 유저 테이블
  • AGR_1251 : 롤 별 권한 오브젝트 테이블
  • AGR_1252 : 롤 별 조직 레벨 정의 테이블


2. 조직 레벨 설정

2-1. 조직 레벨(Organizational levels)

각 권한 오브젝트별로 공통으로 사용하는 필드가 있다.
이러한 필드에 대해서, 한번에 공통 설정하게 해주는 기능이 조직 레벨 정의다.

대표적으로 많이 사용되는 조직 레벨 값은 다음이 있으며, 이외에도 많은 값들이 있다.

  • Company Code ($BUKRS)
  • Controlling Area ($KOKRS)
  • Business Area ($GSBER)
  • Plant ($WERKS)
  • Sales Organization ($VKORG)
  • Purchasing Organization ($EKORG)

예를 들어 롤의 조직 레벨 Company Code 값을 AAA1 로 지정해두면, 해당 롤 하위 권한 오브젝트의 모든 Compnay Code 값은 AAA1 으로 자동 지정된다.

이러한 설정은 롤의 유지보수를 쉽게 해주니 반드시 조직 레벨 정의를 활용하는걸 추천한다.

Tcode SUPO 에서 롤 별 조직레벨 설정을 확인할 수 있다.

2-2. 조직 레벨 유지보수 상태

위와 같이 조직 레벨을 통해 공통 필드 값을 정의했다면,
하위 권한 오브젝트들에서는 조직 레벨 값이 자동으로 유지보수 된다.
그러나, 권한 오브젝트의 조직 레벨 필드 값을 수동으로 수정한 적이 있다면, 해당 값은 수동으로 설정 값으로 적용이 된다.

즉, 한번이라도 수동으로 변경한 적이 있다면, 조직 레벨 설정값이 아니라, 수동으로 설정된 값을 따라가기 때문에,
특수한 경우를 제외하고는 하위 필드값을 수동으로 수정하지 않는 것이 좋다.

2-3. 조직 마스터 롤 설계

이와 같이 많이 사용되거나, 공통적으로 사용되는 권한 오브젝트에 대해서, 별도의 마스터 롤을 활용하여, 공통으로 관리할 수 있다.

조직 레벨 값을 가지고 있는 권한 오브젝트만을 모아서 조직 마스터 롤을 생성하고, 여기 마스터 롤에서만 조직 레벨 값을 설정한다.
그리고, 이 외에 부여되는 모든 롤에서는 조직 레벨값을 사용하지 않는다.

사용자의 조직 관련 모든 설정은 조직 마스터 롤만으로 제어되고, 일반 롤들은 조직 레벨과 상관없이 공통적으로 사용이 가능하다.



3. 조회전용 롤 생성 예시

1-4. 권한 부여 프로세스 단계를 참고하여 여러 예시를 통해, 간단한 조회전용 롤을 생성하는 방법에 대해서 기록한다.

롤의 액션(생성/수정/조회 등등) 의 조정은 Activity 로 가능하다.
또는 Tcode 별로 액션이 생성/수정/조회가 나누어진 경우도 있다. (Tcode MM01 자재 생성, MM02 자재 변경, MM03 자재 조회 같은 경우)

각 Activity 는 Tcode SU21 에서 권한 오브젝트별로 Obj. Documentation 을 통해 상세하게 확인할 수 있다.

기본적으로 Activity 01 생성, 02 수정, 03 조회이며, 권한 오브젝트별로 Activity 값이 다르다.

프로파일은 롤의 권한 오브젝트 수정이 있을때마다, 재생성 해줘야 한다.
개별로 생성할 수도 있고, PFCG -> Utilites -> Mass Genertaion 을 통해 일괄 재생성할 수 있다.
(이 외, PFCG - Utilites 에는 다양한 기능들이 있다.)



3-1. 케이스1 - 특정 패키지 조회 롤

◼ 설계

패키지(개발클래스) ZMM_TEMP 의 모든 오브젝트에 대한 조회 권한 부여

◼ 생성

롤 ZROLE_ZMM_TEMP_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SE80(ABAP Object Navigator) 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 권한 오브젝트 S_DEVELOP 트리 열기
-> DEVCLASS : ZMM_TEMP
-> OBJTYPE : *
-> OBJNAME : *
-> P_GROUP : *
-> ACTVT : Display(03)

만약 Change Authorization Data 로 들어갔는데, 권한 오브젝트가 보이지 않는다면, Tcode SU25 에서 Profile Generator Installation 을 수행해야 한다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 롤 생성 완료

◼ 부여

롤 ZROLE_ZMM_TEMP_DISPLAY 조회
-> 하단 메뉴탭 User
-> 롤을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료



3-2. 케이스2 - PFCG 조회 롤

◼ 설계

Tcode PFCG 조회권한 부여

◼ 생성

롤 ZROLE_PFCG_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 PFCG(Role Maintenance) 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 다음 권한 오브젝트를 제외한 나머지 권한 오브젝트 삭제
-> S_USER_AGR, S_USER_AUT, S_USER_GRP, S_USER_PRO, S_USER_SAS
-> 위 5개 권한 오브젝트 ACTVT Diplay(03), 그 외 필드값 * 설정

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 롤 생성 완료

◼ 부여

롤 ZROLE_PFCG_DISPLAY 조회
-> 하단 메뉴탭 User
-> 롤을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료



3-3. 케이스3 - 특정 테이블 조회 롤

◼ 설계

특정 테이블 조회권한 부여 (예시 : SFLIGHT 테이블)

SFLIGHT 테이블은 SAP 교육용 스탠다드 테이블이다.

◼ 생성

롤 ZROLE_TABLE_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SE16 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 권한 오브젝트 S_TABU_DIS 삭제
-> 권한 오브젝트 S_TABU_NAM 트리 열기
-> ACTVT : Display(03)
-> TABLE : SFLIGHT

위 예시의 응용으로 CBO 모든 테이블 조회권한 은 TABLE 값에 Z* 를 입력하면 된다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 롤 생성 완료

◼ 부여

롤 ZROLE_TABLE_DISPLAY 조회
-> 하단 메뉴탭 User
-> 롤을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료



3-4. 케이스4 - 번호 범위(Number Range) 조회/수정 롤

◼ 설계

모든 번호 범위 오브젝트에 대해서 조회/수정권한 부여
(여기서는 단순수정과 함께 번호값 초기화, 오브젝트 유지보수 등등의 권한도 추가)

◼ 생성

롤 ZROLE_NUMBER_CHANGE 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SNRO 티코드 권한 추가

Tcode SNUMSNRO 는 동일하므로, SNUM 을 넣어도 상관없다.

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data

-> 권한 오브젝트 S_ABPLNGVS 트리 열기
-> ABP_LNG_VS : *
-> ACTVT : *

-> 권한 오브젝트 S_DEVELOP 트리 열기
-> DEVCLASS : *
-> OBJTYPE : NROB
-> OBJNAME : *
-> P_GROUP : *
-> ACTVT : Change(02), Display(03)

-> 권한 오브젝트 S_NUMBER 트리 열기
-> NROBJ : *
-> ACTVT : Change(02), Display(03), Change number range status(11), Initialize number levels(13), Maintain number range object(17)

위 예시의 응용으로 특정 번호범위 오브젝트의 조회/수정 권한 은 NROBJ 값에 <특정 번호범위 오브젝트> 를 입력하면 된다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 롤 생성 완료

◼ 부여

롤 ZROLE_NUMBER_CHANGE 조회
-> 하단 메뉴탭 User
-> 롤을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료


profile
SAP BC (2019 ~ )

0개의 댓글