학습 목표
이 모듈을 마치면 다음을 수행 할 수 있습니다.
- 보안 액세스 규칙에 XPath 적용
- 보안 요청 분석
- 유용성과 보안 제약 조건의 차이점 설명
- 제약 조건이 보안 또는 페이지에 적용되어야 하는 경우 파악
Xpath를 사용하여 규칙 적용
고객은 활성 상태의 제품만 볼 수 있어야 합니다. 이를 구성하려면 Product 엔터티로 이동하여 [Status = 'Active']와 같은 XPath 제약 조건을 추가할 수 있습니다.
이제 사용자가 제품을 주문하거나 보려고 하면 활성 상태의 제품만 볼 수 있습니다.
보안 제약조건
고객은 자신의 주문만 볼 수 있어야 한다.
페이지의 데이터 그리드에 제약조건을 적용하는 것 보다 엔터티 수준에서 제약을 거는 것이 더 안전합니다.
데이터 그리드 제약 조건은 해당 위젯 및 페이지에 대해서만 검색되고 표시되는 데이터에만 영향을 미치므로 데이터베이스 레벨에서 주문 데이터를 가져오는 고객의 기능을 반드시 제한하지는 않습니다.
결과적으로 고객은 다른 페이지를 통해 또는 Mendix 서버에 대한 요청을 악의적으로 해킹하여 다른 고객의 주문 데이터에 액세스할 수 있습니다. 따라서 여기서는 엔터티 수준 보안이 최상의 옵션입니다.
엔터티 수준 제약 조건을 추가하려면 다음 단계를 수행합니다.
Order 엔터티 클릭 -> Access Rules 탭 -> Customer 모듈 역할의 XPath에 제약조건을 겁니다.
예시)
[OrderManagement.Order_Customer/OrderManagement.Customer/OrderManagement.Customer_Account=’[%CurrentUser%]’]
보안 요청 분석
아래 다이어그램에서 볼 수 있듯이 알아야 할 세 가지 핵심 구성 요소가 있습니다.
Mendix 클라이언트
Mendix Client는 응용 프로그램의 프론트 엔드를 사용하여 멋진 디자인 페이지, 사용 가능한 데이터 및 실행 가능한 작업을 모두 볼 수 있는 곳입니다.
멘딕스 런타임
Mendix 런타임은 클라이언트의 데이터와 앱 메모리에 있는 데이터가 있는 위치입니다. 또한 데이터에 대한 액세스를 제어하여 사용자에게 프로비저닝된 항목만 볼 수 있습니다. 이는 데이터 세트와의 모든 상호 작용에 포함됩니다.
데이터베이스
Mendix의 데이터베이스에서 도메인 모델의 정의 된 스키마에 따라 생성 된 모든 객체를 찾을 수 있습니다. 관련 테이블의 행으로 표시됩니다. 현재 지원하는 데이터베이스는 다음과 같습니다.
탐색 및 데이터 액세스
Mendix 플랫폼은 애플리케이션의 여러 개별 순간에 보안 액세스를 적용합니다.
페이지 액세스
- 역할 기반 탐색: 사용자는 자신의 역할에 따라 다른 탐색 항목을 볼 수 있습니다.
- 탐색 구조: 앱의 탐색 구조는 팀과 논의한 와이어프레임과 유사해야 합니다.
- 페이지 액세스: 마이크로플로우로 열리는 페이지는 별도의 액세스 권한 설정이 필요 없습니다.
마이크로플로우 접근
- 마이크로플로우 액세스 제어: 사용자는 권한이 부여된 마이크로플로우만 실행할 수 있습니다.
- 클라이언트 작업 표시: 권한이 없는 사용자는 해당 마이크로플로우를 호출하는 메뉴 항목이나 버튼을 볼 수 없습니다.
- 실행 조건: 마이크로플로우는 Mendix Runtime에서 권한을 확인하며, 상위 플로우나 엔티티에 대한 액세스 권한이 있는 경우 실행이 허용됩니다.
Nanoflow 접근
- 나노플로우 용도: 클라이언트 측에서 logic을 실행하여 서버 연결 없이 빠르게 동작합니다.
- 마이크로플로우 호출: 나노플로우는 필요 시 마이크로플로우를 실행할 수 있습니다.
- 보안: 나노플로우는 현재 사용자의 권한에 따라 데이터베이스 접근을 제어합니다.
엔터티 액세스
- 엔터티 액세스 목적: 사용자가 조작할 수 있는 데이터 집합을 제어합니다.
- 권한 지정: 엔터티 유형에 대한 권한을 설정하여 데이터베이스 접근을 제한합니다.
- 데이터 하위 집합: 엔터티 액세스 규칙에 따라 전체 데이터의 하위 집합만 볼 수 있습니다.
Entity Access가 적용되는 경우
엔터티 액세스는 위젯을 통해 데이터를 검색하거나 상호 작용할 때 적용됩니다. Apply entity access(엔티티 액세스 적용) 설정을 사용하면 마이크로플로우에도 제한이 적용됩니다.
'LowCode (Mendix) Advanced > Configure Advanced Security' 카테고리의 다른 글
Account Access for Security (0) | 2024.10.17 |
---|---|
Entity Access for Security (0) | 2024.10.17 |