2011-12-16 3 views
3

나는 크랙 할 수 없었던 흥미로운 상황이 있습니다. Silverlight 응용 프로그램이 실행되는 환경은 다음과 같습니다.보안 모델 - SharePoint 2010 WCF 서비스를 호출하는 Silverlight 웹 파트

응용 프로그램의 주 호스트 인 SharePoint 2010 인트라넷이 있습니다. 웹 파트 페이지에는 응용 프로그램이 포함 된 Silverlight 웹 파트가 있습니다. 우리는 클라이언트 개체 모델을 사용하여 SharePoint 사용자가 로그인 한 사용자를 추론합니다. 이 응용 프로그램의 사용자는 로그인에 사용하는 AD 도메인의 SharePoint 사이트 (OUTSIDE)에 액세스합니다. 그들은 광고 계정을 가지고 있지만 그들의 컴퓨터는 다양한 영역의 일부라는 것을 의미합니다. Silverlight 응용 프로그램은 SOAP 프로토콜을 통해 https를 통해 WCF 서비스를 호출합니다.

질문 : 로그온 한 SharePoint 사용자의 컨텍스트에서 호출 될 때 유일한 유효한 요청자가 Silverlight 응용 프로그램이되도록 서비스를 보호하려면 어떻게해야합니까?

각 최종 사용자는 자신을 위해 만들어진 AD 계정을 가지고 있습니다. SharePoint 사이트는 각 사용자가 자신의 AD 자격 증명을 사용하여 로그인해야하는 익스트라 넷입니다. 그러나 최종 사용자가 도메인의 일부인 컴퓨터에서 사이트에 액세스하는 것은 아닙니다.

Windows 인증을 사용하려고했지만 SharePoint에 이미 로그인 한 후 사용자에게 웹 서비스에 로그인하라는 메시지를 표시해서는 안됩니다. 클라이언트 개체 모델을 사용하여 서비스에 인증/자격 증명을 "전달"하려고 시도했지만 거기에는 운이 없습니다.

우리가 살기 전에 익명 인증을 비활성화해야하므로 서비스 보안을 유지하는 방법을 알아야하지만 응용 프로그램 내에서 사용자 로그인을 두 번째로하지 마십시오.

답변

0

당신은 보안상의 이유로 외부 서비스에 실버 라이트 캔트 위임을 할 수 없습니다. 할 수있는 일은 다른 방법 (예를 들어 인증서 기반)을 통해 WCF 채널을 보호하고 현재 사용자 이름을 수동으로 전송하는 것입니다. 그러면 SharePoint 사용자는 사용자를 가장 할 수 있습니다.

비록 굉장히 까다로운 일이 될 것입니다 :)

관련 문제