2010-12-15 9 views
0

인증/권한 부여를 올바르게 설정하는 방법에 대한 WCF의 도움이 필요합니다. 가능한 한 많은 항목을 사용하여이 작업을 수행하고 싶습니다.WCF 인증/승인 - 도움 필요

WCF 4.0 응용 프로그램 서비스를 설정 중이며 4.0 웹 및 4.0 실버 라이트 클라이언트가 동일한 서비스에 연결됩니다. 클라이언트가 서비스에 대한 인증 방법 (데이터베이스에 대해 사용자 이름/암호를 확인 함)을 호출 한 다음 클라이언트에 토큰을 다시 반환하고 싶습니다. 그러면 클라이언트는이 토큰을 저장하고 이후의 모든 서비스 호출과 함께 투명하게 보냅니다. 서비스에서이 토큰은 모든 호출마다 확인됩니다. 또한 각 작업 호출 중에 UserID를 사용하여 보안 검사 (서버 측)를 수행해야하므로 토큰에 포함시켜야 할 수도 있습니다.

이 작업을 수행하는 방법에 대한 클라이언트/서버 예제를 얻고 싶습니다. 감사!

+0

당신이 설명하는 시나리오는 아마도 "아웃 오브 더 박스 (the-out-of-the-box)"일 것입니다 - 기본적으로 자신 만의 코드에서 모든 것을 (인증, 인증)하고 있습니다 .... –

답변

0

WSHttpBinding을 사용하여 사용자 정의 사용자 이름 암호 유효성 검사기를 작성할 수 있습니다. 이렇게하면 사용자 이름 암호의 유효성을 검사 할 수 있습니다. 그러나 auth가 발생하면 공유되는 토큰에 데이터를 추가 할 수 없습니다.

이것은 클라이언트가 서버에 연결된 상태를 가지고 있음을 의미하는 세션 허용 바인딩입니다.

http://www.pnpguidance.net/post/WCF35SecurityGuidelinesNowAvailable.aspx

권한 부여 부분은 당신이 할 수 있기 때문에 까다로운 부분입니다 (이것은 당신이 요청을 다른 서버로 이동하는 경우 인증을 재건 (?)해야 할 수도 있기 때문에 사이에서 부하 분산과 수평 확장 시나리오하지 유리한) Principal 권한을 선언적으로 지정하거나 필수 옵션으로 지정하십시오. http://msdn.microsoft.com/en-us/library/ff647503.aspx#AuthorizationOptionsWCF

3

사용자 지정 보안 토큰 서비스를 사용하여 종료되었습니다. 내 고객은 STS를 호출하고 상점을 인증하고 다시 토큰을받습니다. 그런 다음 메시지 검사기를 사용하여 나가는 모든 wcf 서비스 호출에 토큰을 삽입하고 서버 측의 메시지 관리자를 사용하여 토큰을 확인하여 모든 호출을 가로 채어 유효성을 검사합니다. 이것은 꽤 잘 작동했습니다.