2014-01-23 2 views
6

간단한 웹 응용 프로그램을 만들고 파트너가 자신의 사이트에이 응용 프로그램을 포함 시키길 원합니다. 나는 많은 유튜브처럼 파트너가 iframe을 사용하여 포함 할 수 있도록하려는 :타사 로그인은 iframe 내부에서 작동합니까?

enter image description here

응용 프로그램은 타사 인증 공급자 (예를 들어, 구글, 페이스 북, 오픈 ID)을 통해 로그인을 필요로한다.

이러한 인증 방법은 iframe의 범위 내에서 문제가됩니까?

답변

4

이 접근법은 약간 문제가 될 수 있지만 수행 할 수 있습니다. OAUTH (예 : Google, Facebook, OpenID)를 사용하는 많은 인증 공급자는 로그인 한 후 응용 프로그램을 인증 한 후 사용자를 설정된 URL로 리디렉션합니다. 그들이 보낸 페이지 (iframe이있는 페이지)로 되돌릴 수있는 방법을 찾아야합니다. 귀하의 iframe이 호스팅되는 곳 (예 : window.top, window.parent)을 추측 할 수있을 것입니다. 세션 또는 쿠킹에 해당 정보를 저장 한 다음 인증이 완료되면 사용자를 페이지로 되돌립니다.

3

iframe은 본질적으로 더 작은 브라우저 창입니다. 귀하의 질문은 iframe과 메시지를주고받는 것과 관련이 없기 때문에 어려움은 그 기능을 정상적으로 구현하는 것과 동일하다고 말할 수 있습니다. 어쨌든, 당신은 인증 공급자에게 사용자를 보내고, 로그인하고, 어떻게 든 그것이 전체 브라우저 창이든 iframe이든 그들이하고 있던 일로 돌아갑니다. 그러나 iframe이 매우 작 으면 새 창을 열어야합니다.

3

문제가 될 수 있습니다. iframe에 인증 대화 상자를 표시하는 것은 일반적으로 보안 위험으로 간주되며 대부분의 인증 공급자는 인증 페이지와 함께 X-Frame-Options: sameorigin 헤더를 명시 적으로 전송하여 호환 브라우저 (거의 모든 최신 브라우저 참조)가 인증 페이지를 iframe 내에 렌더링하지 못하도록합니다. 주변을 둘러 보니 적어도 Facebook, Twitter 및 Google은 모두 iframe의 인증을 허용하지 않는 것으로 보입니다 (이 목록은 확실하게 철저하지 않습니다). 실제 인증 흐름을 위해 새 브라우저 창을 열어서 고려할 수 있지만 iframe 내부에서는 가능하지 않을 수 있습니다.

클릭 재킹 설명 악용하는이 상황에 리드 : http://www.rfc-editor.org/rfc/rfc7034.txt

다음 X-Frame-Options 헤더 http://javascript.info/tutorial/clickjacking

참조 문서

관련 문제