it-swarm-korea.com

RBAC 모델 : 두 역할의 사용자 액세스 딜레마

RBAC (역할 기반 액세스 제어) 모델 보안 시스템을 구현하고 있는데 딜레마가 있습니다. 한 명의 User1이 Role1에 있고 Role2에 있습니다. Role1은 Resource1에 대한 액세스를 허용하고 Role2는 동일한 항목에 대한 액세스를 거부합니다. 잘 알려진 문제입니다. 누군가 나를 도울 수 있고, 그것을 해결하는 방법, 아마도 설명을 할 수 있습니다. User1이 일부 리소스에 액세스 할 수없는 이유를 설명하는 방법. 그것을 현명하게 극복하는 방법은 어떤 솔루션입니다.

감사.

10
garik

RBAC와 DAC (Discretionary Access Control)를 혼동하고있는 것 같습니다. Deny Access 일반적으로 RBAC에서 사용되지 않고 DAC 세계에서 온 것입니다. F.e. DENY가있는 NTFS ACL (액세스 제어 목록)을 보는 것이 일반적입니다.

병합 된 모델을 구현하려고 할 수 있습니다 (제 응답의 예 참조 여기 )-예 : 역할을 가리키는 ACE (액세스 제어 항목)를 사용하여 ACL을 작성합니다. 예 : 그룹을 사용하여 폴더에 대한 액세스 권한 부여 ...

사용할 수있는 두 가지 가능한 솔루션이 있습니다. 아마도 mix'n'match는 시스템에 맞는 것이 무엇인지에 따라 다릅니다 (다른 컨텍스트에서 두 가지를 모두 구축하고 사용했습니다).

  • 정렬 된 ACL-즉, ACL은 ACE의 큰 더미는 아니지만 특정 순서에 있습니다. 목록에서 더 높은 순위가 우선권을 가지며 PERMIT ACE를 찾을 때까지 ACE를 계속 평가합니다. 또는 해당 사용자에 대한 DENY ACE. 목록에서 첫 번째가 승리합니다.
  • DENY ACE는 다른 모든 ACE보다 우선합니다. 즉, 사용자에게 Role1을 통해 액세스 권한이 부여 된 경우 ACL에서 해당 사용자에게 적용되는 DENY를 검색하면 Role2가 어떠한 경우에도 액세스를 차단합니다.

표준 ACL 모델로 이것을 구현하지 않을 수도 있지만 실제로는 사용자 역할 만 확인합니다. 그래도 괜찮습니다. 위의 내용이 여전히 적용됩니다 (시각화하고 설명하기가 더 어렵습니다).

당신이 알아 내야 할 진짜 질문은 무엇이 당신의 시스템에 적합한가? SoD (업무 분리/분리)를 구현하려고합니까? 그렇다면 DENY가 모든 PERMIT를 무시해야한다는 것이 분명합니다. 사용자가이를 구성하도록하려면 (이 경우 RBAC가 아닌 DAC) 첫 번째 옵션이 가장 유연합니다. 왜냐하면 IS 해결 방법이 있기 때문입니다.

7
AviD

이것이 잘 알려진 문제인지 잘 모르겠습니다. 기본 위치가 모두 거부이고 그래야하는 경우 규칙은 각 역할 can 수행 할 작업 만 명시해야합니다. 사용자/역할이 어떤 규칙에 따라 리소스에 액세스 할 수 있다면 허용되어야한다고 생각합니다.

역할이 배치되는 방식을 다시 생각해야 할 수도 있습니다. 나는 갈등에서 가장 높은 priv가 이길 것이라고 생각합니다. 도구는이를 다른 방식으로 처리 할 수 ​​있습니다. 반드시 작동 방식이 아니라 환경 does 작동 방식을 정확히 이해하는 것이 중요합니다.

4
pboin

내가 뭔가를 놓치고 있을지도 모르지만 "능동적 역할"과 같은 개념을 사용하는 것은 상당히 간단한 해결책이 아닙니까?

즉, 사용자는 할당 된 역할 목록에서 활성 역할을 선택한 다음 해당 단일 역할에 대한 ACL 만 확인합니다.

2
Van Gale

내가 들었던 하이브리드 클레임 기반 액세스 보안을 사용하는 것이 좋습니다. 이 모델에서는 기본적으로 각 작업을 세분화하여 프로필로 사용하여 보안을보다 쉽게 ​​관리 할 수 ​​있습니다 (초기 구현하기는 더 어렵지만).

기본적으로 다음과 유사한 테이블을 설정합니다.

Users --> Groups --> Profiles --> Rights
 |         |_______________________^
 |____________________^
 |_________________________________^

사용자 테이블, 각 사용자는 하나 이상의 그룹을 가질 수 있음 사용자는 하나 이상의 프로필 (일명 작업에 대한 권한의 하위 그룹)을 가질 수도 있습니다. 권한 프로필에는 하나 이상의 권한이있을 수 있습니다.


단점은 작업 지향적 인 그룹의 추가 계층에서 비롯되지만 대부분의 개발자가 아닌 사람들이이 디자인을 개념화하는 것이 더 쉽습니다.

또한 순수한 클레임 기반 시스템을 사용할 수 있지만 장기 IMO와 같은 것을 유지하기가 어렵습니다. 표준 RBAC (RB-RBAC 아님)를 사용하고 충돌 = 액세스 거부와 같은 일관된 규칙 세트를 사용하는 것이 더 나을 것입니다.

1
Dave