2014-10-08 4 views
1

n 계층 응용 프로그램의 경우 프레젠테이션 계층에서 응용 프로그램 계층으로 ID를 사용하는 방법을 찾고 있습니다. 우리의 응용 프로그램은 다음과 같은 계층 고전 3 계층 응용 프로그램입니다 :프레젠테이션 계층의 사용자 ID를 응용 프로그램 계층으로 가져옴

  • UI - 프리젠 테이션 계층
  • 응용 프로그램/WCF 계층
  • 데이터베이스 계층이

응용 프로그램 계층이 인터넷에 노출되지 프리젠 테이션 계층은 로컬 네트워크로 연결할 수 있습니다. 문제는 사용자가 프레젠테이션 계층에 로그인하고 프레젠테이션 계층이 사용자 ID를 통해 응용 프로그램 계층에 전달되기를 원합니다. 어떻게 할 수 있습니까? 클레임 기반 인증으로이 작업을 수행 할 수 있습니까? 우리는 현재 IWSTrust13SyncContract을 STS 서비스에 구현하려고하고 있지만 사용자 계층에서는 응용 프로그램 계층에 연결할 수 있어야합니다. 누군가 나에게이 접근법에 대한 제안을 해줄 수 있습니까?

답변

0

사용자 신원과 유사한 클래스를 만들고 프레젠테이션 계층의 값을 설정하십시오.
및이 calss의 참조를 신청서 단계로 전달하십시오.

+0

응용 프로그램 계층에 대한 호출에서 ClaimsIdentity 클래스를 전달하면 응용 프로그램 계층 네트워크에 액세스 할 수있는 모든 사람이이를 수행 할 수 있습니다. 프레젠테이션 계층이 응용 프로그램 계층 호출을 통해 전달 된 ClaimsIdentity를 만들었다는 증거는 없습니다. –

2

당신은 신원 도용/위임 또는 신뢰할 수있는 하위 시스템 모델을 사용할 수 있습니다 - http://msdn.microsoft.com/en-us/library/aa905320.aspx

신원 도용이/위임 Windows 인증에서 가장 잘 작동 볼 수 있지만, 그렇다하더라도 당신의 프레젠테이션 계층 서버가 임용되는 것을 요구할 수있다. 이 모델에서 응용 프로그램 계층은 최종 사용자를 인증하고 권한을 부여합니다. 일반적인 신뢰성 시스템 모델

는 :

  • 표현 계층은
  • 는 애플리케이션 계층은 일반적으로, 예를 프레젠테이션 계층을 인증 할 것이다 최종 사용자에게 인증 Windows 인증을 사용하고 프레젠테이션 계층을 실행하는 서비스 계정의 요청 만 수락하거나 다른 인증 방법 (예 :
  • 응용 프로그램 계층은 최종 사용자에게 권한을 부여하는 프레젠테이션 계층을 신뢰합니다 ... 만, 특정 IP 주소로부터의 요청을 수락, 클라이언트 인증서를 사용
  • 인증 처리하는 방법은 여러 가지가 있습니다

:

  • 프리젠 테이션 계층은 Facade를 통해 응용 프로그램 계층을 호출합니다. 이 Facade는 Applicaiton Tier를 대신하여 필요한 모든 권한 부여를 수행합니다.

  • 프리젠 테이션 계층은 최종 사용자의 ID를 응용 프로그램 계층으로 전달합니다. 이것은 대역 내 (추가 매개 변수로 작업 계약을 오염 시킴)이거나 대역 외 (out-of-band) 일 수 있습니다. 사용자 정의 SOAP 헤더 SOAP 헤더를 사용하는 경우, 비헤이비어 클라이언트 측에서 헤더를 삽입하고 서버 측에서 헤더를 처리함으로써 WCF로 애플리케이션 코드에 투명하게 만들 수 있습니다.

    대역 내 또는 대역 외, Presentation Tier가 응용 프로그램 계층에 전달하는 ID를 인증하도록 신뢰하고 있습니다. 따라서 Presentation Tier를 인증하는 것이 중요합니다. 그리고 중간자 공격 (man-in-the-middle attack)으로부터 보호하기 위해 환경에 따라 다릅니다. HTTPS를 사용하여.

+0

클레임 기반 인증을 사용하는 솔루션을 선호하지만이 솔루션은 필자의 짧은 목록입니다. 프리젠 테이션 계층은 STS와의 신뢰를 가지고 있으며 토큰을 다시 사용하여 응용 프로그램 계층과 통신하는 것이 좋습니다. 우리는 방법을 알 수 없습니다. –

1

프리젠 테이션 계층은 어떤 형태의 클레임 기반 인증 (수동/활성)을 사용합니다. 토큰과 함께 발급되면 채널의 ActAs 또는 OnBehalf를 사용하여 중간 수준 (응용 프로그램) 계층의 스택 아래로 n- 수준 서비스의 ID를 연합해야합니다. 샘플이 필요한지 알려주세요.

+0

나는 아직도 그것을 연구 중이다. 그래서 예제가 환영받을 것이다. –

관련 문제