2013-12-13 3 views
0

브라우저가 중재자로 RP를 사용하는 이유는 무엇입니까? 인증 후에 RP가 IP로 직접 리다이렉트 할 수없는 이유는 무엇입니까?RP와 IP가 직접 이동하는 대신 브라우저를 통해 통신하는 이유는 무엇입니까?

나는 그래서 당신을 :) 요구 .. 몇 가지 이유와 함께 들어 왔지만 자신을 설득 할 수 없었다

1) RP 및 IP에 대한 접속 (라인 유지할 수 없습니다 RP는 STS 웹 서비스를 호출하고 얻는 어떤 경우를 응답 데이터)

2) 쿠키/대한 세션 (관리하려면?하지만 RP 마지막으로 쿠키를 반환 할 수 없습니다 브라우저 따라서 세션)을 유지하는 각각의 요청에 돌려

3)를 데이터 보호 정책 (좋은 정보) 때문에 IP에 자격 증명을 전달할 브라우저 책임입니다.

4) IP는 발신자가 누구인지 알아야합니다 (이유 : 이유).

+1

패시브 연합을 사용할 때 브라우저가 사용됩니다. 또한 STS와 직접 대화하는 활성 연합 시나리오입니다. –

+0

IMO 활성 시나리오는 요청자가 IP를 호출하는 것을 포함합니다. 필자가 언급 한 시나리오는 IP 호출 –

답변

1

나는 적극적이고 수동적 인 연맹을 찾고있었습니다. Eugene.S 덕분에. 패시브 연합에서는 lDP가 로그인 윈도우를 제공해야합니다. 따라서 RP에서 lDp 로의 웹 서비스 호출은 브라우저 (호출자)에게 로그인 윈도우를 제공하지 않습니다. 따라서 패시브 연합에서는 브라우저 리디렉션이 필요합니다.

패시브 제휴에서 또 다른 놀라운 점은 RP가 사용자 자격 증명을 조사하지 않는다는 것입니다. 토큰/쿠키에만 관심이 있습니다. 발견되지 않으면 사용자는 lDP로 이동하여 여기에 자격 증명을 제공합니다. 의견에서 저자가 언급 한 것처럼 (http://blogs.msdn.com/b/mcsuksoldev/archive/2010/07/07/windows-identity-foundation-101-s-ws-federation-passive-requestor-profile-part-1-of-2.aspx)

In 활성 연합 브라우저에서는 RP를 사용하지 않습니다. RP는 사용자 자격 증명을 가져와 lDP에 게시합니다. 이 작업을 수행하려면 RP에 웹 서비스 클라이언트가 있어야합니다. 웹 서비스는 lDP (STS)에서 실행됩니다. 아직도 나를 괴롭힌 것은 하나 있습니다. RP가 사용자 자격 증명을 얻을 수 있다면 왜 lDP에 유효성을 요청해야합니까? 캔트 RP가 왜 lDP가하려고하는 일을하는지. 예 : RP는 ADFS에 이전 디렉터리 인증을 요구하는 대신 활성 디렉터리에 직접 요청할 수 있습니다 (이전 Windows 인증 : P). 그러나 '가장 적격 한 사람들'은 RP가 외부에 있다는 것을 우리에게 밝혀주었습니다. lDP는 보안상의 이유로 단일 지점을 통해 모든 응용 프로그램 (RP)에서 인증을 분리하기 위해 사용됩니다.

이제 브라우저 리디렉션과 no-browser-redirect -하지만 - WS - 전화!

또 다른 질문이 생기기 시작합니다. 능동태와 수동태의 두 가지 연맹이있는 이유는 무엇입니까? 무엇을 사용해야합니까? 나는 그것을 찾아 낼 것이다. 그렇지 않다면 나는 그것을 새로운 질문으로 게시한다.

+1

활성 연합을 사용한 시나리오는 Silverlight 또는 WPF와 같은 "스마트 클라이언트"를 사용했습니다.제 경우에는 Silverlight 였고 브라우저를 리디렉션하지 않으려했습니다. WPF에서 passove 연맹은 대부분의 경우 옵션이 될 수 없습니다. –

2

RP가 IdP와 직접 통신 할 수없는 매우 일반적인 시나리오이므로 RP는 외부이며, 사용자 및 IdP는 인트라넷에 있습니다.

또 다른 이유는 SSO입니다. 브라우저와 IdP간에 쿠키를 설정할 수 있어야합니다.

+0

은 ldP와의 통신 후 RP에서 쿠키를 설정할 수 없습니까? –

+0

외부에있는 RP에 대해서, 내 이해를 확인하고 싶습니다. 따라서 RP에는 lDP의 URL 만 있지만 액세스 할 수는 없습니다. 따라서 브라우저 (사용자)에게 lDP를 호출하여 브라우저 리디렉션이 발생하도록 요청합니다. 이제 RP가 사용자가 제공 한 자격 증명을 사용하지 않고 사용자 대신 ldP를 호출 할 수 있습니까? 그렇게하면 브라우저 리디렉션을 줄일 수 없습니까? –