2013-07-19 5 views
0

저는 Soa 원칙에 따라 시스템을 설계하고 있습니다. 인증을 위해 전통적인 토큰 방식이 사용됩니다. 기능에 액세스하는 사용자의 역할에 따라 소비자 응용 프로그램 내에서 단추 및 레이블이 활성화되거나 비활성화되는 지점까지 권한 부여가 필요합니다.사용자 역할 인식 UI

앱이 wpf (프리즘)로 개발되고 있습니다.

이 문제를 해결하기위한 입증 된 방법이 있습니까?

맞춤 메커니즘을 디자인해야합니까?

감사합니다.

답변

3

WPF 프리즘 (this에 따라) 인증을 처리하지 않습니다. 따라서 스스로 솔루션을 구축해야합니다.

내가 주장에 기반 권한 부여를 살펴보고 제안

이 (Managing Claims and Authorization with the Identity Model 당신에게 높은 수준의 뷰를 제공 할 수 있습니다). 소유권 주장의 예로는 "UserCanSaveCustomerSettings", "UserHasCustomerManagementPrivelege"등이 있습니다.

응용 프로그램에 대해 클레임이 구성되면이 정보를 사용하여 컨트롤을 사용하거나 사용하지 않도록 설정할 수 있습니다. 두 가지 옵션을 제안 할 수 있습니다. 당신이 MVVM 패턴을 사용하는 경우

  1. , 당신은 뷰 모델의 속성으로 액세스 정보를 (예를 들어 당신이 ClaimsPrincipalPermission.CheckAccess에서 그것을 얻을 수 있습니다) 노출과 컨트롤에 직접 속성을 바인딩 할 수 있습니다.

  2. 같은 뭔가 또는 대안 당신은 IValueConverter을 구현할 수 있습니다 다시 ClaimsPrincipalPermission.CheckAccess을 통해 직접 ClaimsAuthorizationManager.CheckAccess를 통해 주장에 액세스 할 수 있습니다.

또한, 당신은 단지/비활성화 컨트롤을 가능하게 에 보안을 기반으로하지 않아야 계정에 걸릴 수도 있습니다. 예를 들어 WPF에는 컨트롤을 쉽게 활성화/숨김/클릭 할 수있는 많은 도구 (예 : Snoop)가 있습니다. 또한 응용 프로그램/서버 계층의 액세스 권한을 확인할 수도 있습니다 (클레임 기반 권한을 사용할 수도 있습니다, ClaimsPrincipalPermissionAttribute을 확인하십시오).

0

몇 가지 답변 :

은 알고이 처리하기위한 입증 된 방법이 있습니까?

예, 몇 가지 방법이 있습니다. 당신이 찾고있는 것은 외부화 된 권한 부여 (그것은 원리입니다)라고합니다. 다른 프레임 워크와 언어는이를 달성하기위한 다른 수단을 가지고 있습니다. Spring Security/Spring EL (자바 스프링 세계에서) 또는 .NET 세계에서의 MS 클레임. 기술 솔루션이 있으며 표준 (예 : RBAC, ABAC, XACML ...)이 있습니다. ABAC, 속성 기반 액세스 제어 모델은 Policy Decision Point (PDP)라는 중앙 위치에서 권한을 정의한 다음 다른 응용 프로그램 및 계층을 PEP (Policy Enforcement Point)를 통해 PDP에 전달합니다. 즉, 프리젠 테이션 계층 (WPF)과 다른 계층 (예 : WCF가있는 서비스 계층)에 동일한 권한 부여 규칙을 적용 할 수 있습니다.

사용자 지정 메커니즘을 설계해야합니까? 이미 존재 및 사용 기준에 가능한 것을 재사용 :-)

없음. 호기심에서 벗어나 인증을위한 토큰 유형을 재발 명 했습니까? 예를 들어 표준 유형을 사용하십니까? SAML 또는 Kerberos?

면책 조항 : XACML 공급 업체 인 Axiomatics에서 일합니다.

나는 어떤 오픈 소스 닷넷 XACML 구현을 인식하지 오전하지만 Axiomatics 당신에게 관심을 가질 수있는 상용 솔루션을 제공한다.