2011-04-26 4 views
1

내가 읽었던 것 this paper 역할 기반 액세스 제어 시스템은 사용자가 역할에 할당 할 수있는 역할을 이해합니다. 여기서 역할은 개체에서 작업을 수행 할 권한을 지정하는 역할을합니다. 그러나 asp.net에서는 "작업을 개체 ", 여기서 내가 의미하는 바는"역할 R의 모든 사용자가 개체 O에서 삭제를 수행 할 수 있습니다 "입니다.ASP.NET 역할 기반 보안이 실제 역할 기반 액세스 제어 시스템입니까?

답변

4

보안 모델은 매우 제한적입니다. 본질적으로 역할 수준 만 제어 할 수 있습니다. 즉, 어떤 작업에 대해서라도 사용자가 해당 작업을 수행 할 수 있도록 허용하려는 역할인지 여부를 확인해야합니다.

우리는 더 많은 세분성을 제공하는 자체 모델을 정의하는 길을 택했습니다. 기본적으로 작업을 정의하고 이러한 작업을 다양한 역할에 할당합니다. 이렇게하면 "계정 삭제"권한이 "Admin", "Account Admin"또는 기타 여러 가지 역할에 해당하는지 테스트 할 수 있는지 테스트 할 수 있습니다. Active Directory의 작동 방식과 매우 유사합니다. 또한 필요에 따라 역할을 재구성 할 수 있습니다.

windows와 함께 제공되는 Authorization Manager (AzMan) 조각이 있습니다. 회원 등급 제공자와 협력하여 운영 수준을 관리 할 수 ​​있습니다. 어떤 사람들은 성공했지만 다른 사람들은 일하기가 어렵다고 불평했습니다. 우리는 프로젝트에서 약 5 년 전에 그것을 사용했고 그 당시에는 약 95 %의 시간이 걸렸습니다. 나머지 5 %는 AD 컨트롤러와 통신 문제가있었습니다.

질문 : 우리는 ASP.Net 멤버십 제공자가 내장 된 액세스 제어 시스템을 진정한 역할 기반으로 삼고 있습니까? 아니요. 작업이 아닌 역할을 정의 할 수 있습니다.

+0

+1 for azman. 우리는 몇 년 동안 그것을 사용하고 있으며 매우 편리합니다.우리가 가진 유일한 문제는 AzMan이 독점적으로 xml 저장소를 열었습니다. 그러나 최신 버전은 SQL Server를 뛰어난 스토리지 옵션으로 지원합니다. (몇 가지 이유로 ADAM을 사용할 수 없습니다.) – Dmitry

+0

답변에 대한 조언이 충분하지만 ASP.Net 역할 기반 보안은 RBAC 시스템이라고 말하면 동의하지 않습니다. 앱에 대한 작업을 정의하거나 작업을 역할에 매핑하는 것을 지원하지 않습니다. 역할을 할당하고 역할 구성원을 테스트 할 수만 있습니다. 나머지는 개발자가 만들 수 있습니다. –

+0

@Brian Cauthon : 정확합니다. RBAC의 진정한 정의가 무엇인지 좀 더 자세히 살펴본 결과 내 대답이 그에 따라 업데이트되었습니다. – NotMe

-1

삭제 작업을 구현하고 있으므로 로그인 한 사용자가 개체를 삭제할 수있는 권한이 있는지 확인해야합니다. 예를 들어 "CanDeleteOs"역할을 만들 수 있습니다. 그러면 코드는 다음과 같습니다.

if (!Roles.IsUserInRole("CanDeleteOs")) 
    throw new Exception("User does not have permission to delete O's."); 
+0

역할은 권한/작업이 아니므로이 역할을 사용하면 안됩니다. –

+0

그럼 뭐지? 허가가 아니라면 어떻게 역할을 사용해야합니까? 허가 대신 사용해야하는 것은 무엇입니까? –

+1

이 컨텍스트에서 역할은 그룹과 유사합니다 (사용자 및 그룹을 생각하는 경우). 권한은 .NET 보안 (인증 및 권한 부여)에 포함되지 않은 추가 세부 사항의 한 수준입니다. 진정한 RBAC 프레임 워크는 사용자, 역할 및 운영/사용 권한을 명확히 구분합니다. AzMan, visual-guard, asp.net 권한 관리자와 같은 것을 사용할 수 있습니다. –

0

더 미세한 것이 필요한 경우 Rhino 보안을 확인하십시오.

0

이전 게시글에서 제안한대로보다 세분화 된 기능을 사용하려면 기존 ASP.net 멤버십 및 역할 공급자를 구축해야합니다. 역할 기반 모듈 액세스 보안 및 데이터 액세스 보안을 제공하는 http://www.visualaccesscontrol.com과 같은 타사 컨트롤도 있습니다. Visual Access Control을 사용하면 ASP.net 웹 응용 프로그램에 관리 기능을 추가하여 사용자가 수행 할 수있는 작업과 해당 역할에 따라 볼 수있는 데이터의 하위 집합을 동적으로 제한 할 수 있습니다.