저는 Soa 원칙에 따라 시스템을 설계하고 있습니다. 인증을 위해 전통적인 토큰 방식이 사용됩니다. 기능에 액세스하는 사용자의 역할에 따라 소비자 응용 프로그램 내에서 단추 및 레이블이 활성화되거나 비활성화되는 지점까지 권한 부여가 필요합니다.사용자 역할 인식 UI
앱이 wpf (프리즘)로 개발되고 있습니다.
이 문제를 해결하기위한 입증 된 방법이 있습니까?
맞춤 메커니즘을 디자인해야합니까?
감사합니다.
저는 Soa 원칙에 따라 시스템을 설계하고 있습니다. 인증을 위해 전통적인 토큰 방식이 사용됩니다. 기능에 액세스하는 사용자의 역할에 따라 소비자 응용 프로그램 내에서 단추 및 레이블이 활성화되거나 비활성화되는 지점까지 권한 부여가 필요합니다.사용자 역할 인식 UI
앱이 wpf (프리즘)로 개발되고 있습니다.
이 문제를 해결하기위한 입증 된 방법이 있습니까?
맞춤 메커니즘을 디자인해야합니까?
감사합니다.
WPF 프리즘 (this에 따라) 인증을 처리하지 않습니다. 따라서 스스로 솔루션을 구축해야합니다.
내가 주장에 기반 권한 부여를 살펴보고 제안이 (Managing Claims and Authorization with the Identity Model 당신에게 높은 수준의 뷰를 제공 할 수 있습니다). 소유권 주장의 예로는 "UserCanSaveCustomerSettings", "UserHasCustomerManagementPrivelege"등이 있습니다.
응용 프로그램에 대해 클레임이 구성되면이 정보를 사용하여 컨트롤을 사용하거나 사용하지 않도록 설정할 수 있습니다. 두 가지 옵션을 제안 할 수 있습니다. 당신이 MVVM 패턴을 사용하는 경우
, 당신은 뷰 모델의 속성으로 액세스 정보를 (예를 들어 당신이 ClaimsPrincipalPermission.CheckAccess에서 그것을 얻을 수 있습니다) 노출과 컨트롤에 직접 속성을 바인딩 할 수 있습니다.
같은 뭔가 또는 대안 당신은 IValueConverter을 구현할 수 있습니다 다시 ClaimsPrincipalPermission.CheckAccess을 통해 직접 ClaimsAuthorizationManager.CheckAccess를 통해 주장에 액세스 할 수 있습니다.
또한, 당신은 단지/비활성화 컨트롤을 가능하게 에 보안을 기반으로하지 않아야 계정에 걸릴 수도 있습니다. 예를 들어 WPF에는 컨트롤을 쉽게 활성화/숨김/클릭 할 수있는 많은 도구 (예 : Snoop)가 있습니다. 또한 응용 프로그램/서버 계층의 액세스 권한을 확인할 수도 있습니다 (클레임 기반 권한을 사용할 수도 있습니다, ClaimsPrincipalPermissionAttribute을 확인하십시오).
몇 가지 답변 :
은 알고이 처리하기위한 입증 된 방법이 있습니까?
예, 몇 가지 방법이 있습니다. 당신이 찾고있는 것은 외부화 된 권한 부여 (그것은 원리입니다)라고합니다. 다른 프레임 워크와 언어는이를 달성하기위한 다른 수단을 가지고 있습니다. 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 당신에게 관심을 가질 수있는 상용 솔루션을 제공한다.