2010-12-15 6 views
1

그래서 저는 지난 몇 일 동안 WCF의 보안 아키텍처가 어떻게 작동하는지 이해하려고 벽을 머리에 대고 머리를 짚고있었습니다. 나는 목표를 가지고 있고 올바른 방향으로 가고 있는지 확신 할 수 없다.WCF 보안 아키텍처를 이해하는 데 도움이 필요합니다.

시스템은

우리는 우리의 인증 및 권한 부여를 관리하기 위해 Active Directory 및 데이터베이스의 조합을 사용합니다. 클라이언트 응용 프로그램은 일반적으로 Windows 자격 증명을 사용하여 인증하고 응용 프로그램은 데이터베이스 테이블을 검사하여 해당 사용자가 인증 할 수 있는지 확인한 다음 요청하는 리소스를 사용할 권한이 있는지 확인합니다. 현재 설정에는 각 클라이언트가 데이터베이스와 직접 통신하여 이러한 검사를 수행합니다.

우리는 클라이언트를 인증하고 최고 수준의 자원에 대해 "높은 수준의"권한을 제공하기 위해 보안 토큰 서비스를 사용하려면

목표. 제공된 SecurityToken이 유효하면 데이터를 제공하거나 동작을 수행하는 서비스가 작동합니다. 또한 토큰에 특정 권한이없는 경우 토큰 서비스를 쿼리하여 사용자가 토큰을 처음 만들 때로드되지 않은 권한이 있는지 확인합니다. (우리는 우리의 데이터베이스에 300 권한을 가지고, 그 많은 권한을 가진 사용자를 위해 오히려 무거운 토큰으로 이어질 수)

무엇 내가 토큰 생성 과정을 이해

1) 이해하지 않지만, 나는 클라이언트가 어떻게 얻고, 저장하고, 사용하려고하는 서비스에 토큰을 보내는 지 조금 잃어버린다. 각 "작업자"서비스에 고유 한 토큰이 필요합니까? 즉, CalculatorService에 대한 호출에는 토큰 버전이 필요하며 SaveResultService에는 새 토큰 생성이 필요합니까?) 토큰을 수동으로 요청, 저장 및 전송할 수 있습니까?

2) "근로자"서비스 측면에서 토큰이 확인되는 프로세스는 무엇입니까? 내 "근로자"서비스가 토큰 확인을 위해 토큰 서비스에 연락해야합니까? 또는 토큰을 읽고 토큰이 정상적으로 작동하고 그 관점에서 작동한다고 가정합니다.

3) 내 토큰을 수동으로 암호화하여 클라이언트 측에서 유효하게 사용할 수 있으므로 (모든 서비스 호출시 인증 시도를 피함) 웹 클라이언트가 페이지로드 사이에 토큰을 저장할 수 있도록 할 수 있습니까? 연속적인 통화에서 다시 사용합니까? 이 업체는 인증 및에는 AuthZ을 위해 사용하거나 쿼리 할 수 ​​있습니다 주장을 포장하는 데 필요한 클래스와 구현을 - 이해

답변

2

당신은 윈도우 신원 재단에 대한 샘플을 통해 가야의 나의 부족으로 돕는

감사합니다. 당신이 찾고있는 무엇

http://msdn.microsoft.com/en-us/library/ee517291.aspx

는 내구성이 토큰 캐시입니다. - 토큰은 수명이 있으며 일반적으로 갱신이 필요하며 대부분의 시나리오에서 WIF가 갱신을 수행합니다.

토큰을 수동으로 요청하고 첨부하고 WIF를 사용하여 프록시를 풀링 할 수 있습니다.

관련 문제