2010-05-26 3 views
1

우리는 .NET 데스크톱 응용 프로그램과 함께 ORM 도구를 사용할 것입니다. 이 도구를 사용하면 영구 클래스를 만들 수 있습니다. 모든 데이터베이스 테이블을 자동으로 생성합니다..NET ORM 및 보안

우리 시스템은 사용자 자격 증명을 저장하고 액세스 제어를 제공해야합니다.

수동으로 데이터베이스 인증 메커니즘을 만들지 않고도 ORM을 통해 액세스 제어가 가능합니까? 이것을 허용하는 제품이 시장에 있습니까?

우리는 프로그램 자체의 액세스를 제한한다고 생각했지만 사용자는 데이터베이스에 직접 쉽게 액세스 할 수 있으며 프로그램 제한을 우회 할 수 있습니다.

감사합니다.

답변

0

데이터베이스 액세스 인증이 아니라 UI로 다시 필터링되는 도메인 개체에 대한 인증을 의미한다고 가정합니다. 시도한 ORM에서 도메인 개체에 역할 기반 인증을 포함하는 항목을 찾지 못했습니다. 일반적으로 시스템의 다른 측면의 역할입니다.

당신이 사용할 수있는 AOP 프레임 워크 중 하나를 볼 수 있었다, Postsharp 여기에, 인기있는 사람 중 하나입니다 Postsharp 예 중 하나입니다 :

public class Employee 
{ 
    public string FirstName; 
    public string LastName; 

    [SecuredData("Manager,HR", "HR")] 
    public decimal Salary; 
} 

또는 당신이 당신의 도메인 객체를 장식 자신의 속성을 만들 수 각 역할에 필요한 역할을 제공합니다.

0

Active Directory 인증을 사용하는 것이 좋습니다.

이것이 옵션 인 경우 System.DirectoryServices 네임 스페이스를 살펴보십시오. 가장 중요한 두 개의 상위 클래스는 DirectoryEntryDirectorySearcher입니다.

불행히도 ORM을 사용하지 않습니다. 그러나 이것으로 기본 데이터 스토어에 저장하지 않고도 인증을 수행 할 수있는 자체 프레임 워크 블록 또는 이와 유사한 것을 개발할 수 있습니다.

그렇지 않으면 Enterprise LibrarySecurity Application Block은 수업에 포함 된 XML 구성 및 속성을 통해서만 좋은 일을 처리 할 수 ​​있습니다.

1

ORM 도구는 완전히 클라이언트 측입니다. 일부는 ORM 자체에 대한 메타 데이터를 저장하는 데이터베이스 객체를 만들 수 있지만 실제 데이터베이스 보안 수단을 제공 할 수는 없습니다.

데이터베이스에 대한 액세스를 직접 제한하고 응용 프로그램에 의존하지 않고 해당 인증 (사용자의 경우와 비슷하게 들릴 수 있음)을 수행하려면 데이터베이스의 보안 메커니즘을 사용해야합니다. 그럴리 없어.