본문 바로가기
Mendix

[Mendix] 멘딕스 Security 설계에 대한 방법 (개인적인 생각)

by WaterPunch 2023. 8. 26.

멘딕스에서는 Security를 지원하고 있다.

 

https://docs.mendix.com/refguide/security/

 

Security

 

docs.mendix.com

 

근데 이게 여간 골치 아픈게 아니다.

한번 알아보자

 

멘딕스 앱을 만들게되면 기본적으로 Setting, Security, Navigation 등등이 기본적으로 주어지게된다.

그중에서 Security를 열어보면

App Security 팝업이 열리게 되는데

Security 레벨(보안 단계)이 기본으로는 off로 되어있는데, 뭐 다들 Production으로 설정할거라 생각된다.

그럼 그 다음단계에 User roles (사용자 권한)을 설정해야하는데, 여기부터 꼬이기 시작한다. 

 

왜냐하면 여기서 추가적으로 App Role과 Module Role들을 이어줘야하는 작업을 해야하는데

이 부분에서 많이 꼬이게 된다.

 

권한부분을 잘 못 그리게 되면

멘딕스 권한 예시

이렇게 되기 딱 좋겠다

위 그림에서는 앱 권한이이 4개, 모듈이 4개, 모듈 권한도 몇개 없어서 그래도 이렇게라도 파악이 가능하지...

 

앱이 점점 커지면서 모듈도 많아지고 권한도 많아지면

어떤 권한이 어떤 기능을 쓸 수 있는지 파악하기도 어려울 수도 있겠다.

 

 

 

그래서 개인적으로 생각한 방법은

조금 번거롭지만 App Role은 많이 들고가되,

모든 모듈의 권한은 Admin, User 로 통일을 해서 가는게 제일 나은거 같다 생각이 든다.

(참고로 필자는 초급개발자에 멘딕스 Rapid 자격증 밖에 없으니 거를건 걸러 듣는게 낫겠다)

 

그래서 그려본 그림으로는

처음에 주어지는 MyFirstModule을 공통모듈로 설정하고

해당 모듈에서 공통기능 (로그인, 홈화면 등등) 을 처리를 해주도록 한다. 

비로그인 유저도 로그인 화면엔 접근을 해야하니 CommonModule엔 Annoymous 권한 추가

 

유저가 회원가입을 하면 기본적으로 CommonModuleUser 권한을 부여하고

나머지 권한은 관리자에게 신청을 하면 권한을 부여받는 방식

(멘딕스는 산업쪽에서 많이 쓰이니깐 이 편이 더 낫지 않을까라는 생각이 든다)

 

이외에 다른 모듈에는 Admin, User 권한만 들고가고

App Role에서 1:1로 맞춰주어 최대한 관리하기 쉽게가는게 좋다고 생각이 든다.

(System Admin 권한은 모든 모듈권한을 부여)

 

그래서 나오게된 결과물

 

여기서 조금더 상세권한을 들고 가고 싶다는 생각이 들 수 있다.

Admin, User에 상세 권한을 추가할 수 있도록 Entity 생성

그럼 이런 식으로 공통 모듈에 권한 Entity를 따로 생성해주고 Account와 연관관계를 맺어준뒤 관리를 해주면

마이크로플로우에서 우선순위를 비교할 수 있어 어떠한 권한 이상으로 프로세스 접근이 가능한지 설정이 가능하겠다

 

개인적으로 혼자 구상해본 방법인데

다른 좋은 방법이 있다면 피드백 좀 주시면 감사하겠다

반응형

댓글