2016-10-01 6 views
2

Owin 및 Azure AD를 사용하도록 설정 한 앱이 있습니다. 잘 작동하지만 이제 제 3 자 솔루션의 일부로 iframe 내부에서 실행해야합니다.Azure AD Owin with Iframe 솔루션

보안과 별매입니다. https://login.microsoftonline.com은 iframe 내부에서의 실행을 허용하지 않습니다. 내 컨트롤러는 사용자가 인증되었는지 확인하고 그렇지 않으면 'HttpContext.GetOwinContext()'를 호출합니다. Authentication.Challenge (.............. '

연구 결과에 따르면 프레임 안쪽에있는 모든 작업을 수행 할 수 있습니다. iframe이 포함 된 클라이언트 앱으로 리디렉션되는 로그인 페이지를 만드는 유일한 방법은 무엇입니까? 만료되면 iframe에 현재 해당 페이지에 콘텐츠를 표시 할 수 없다는 오류가 표시됩니다. 프레임의 경우 매우 우아하지 않습니다.

답변

3

AAD는 자격 증명이 입력되는 페이지의 프레이밍을 허용하지 않습니다.이 요구 사항은 클릭 재키 스타일 공격을 방지 할 필요가 있음을 나타냅니다 참조 : https://www.owasp.org/index.php/Clickjacking 대신 전체 프레임 인증 처음에는 프롬프트를 사용하여 프레임 인증을 = 새로 고침 없음 그 표. Prompt = none은 AAD에게 정지 및 자격 증명을 요청할 수 없다는 것을 알려주므로이 흐름은 항상 iframe에서 작동합니다.

+0

감사합니다. 매개 변수의 예를 들었고 검색 한 결과를 찾을 수 없습니다. 내가 HttpContext.GetOwinContext()를 사용합니다. 컨트롤러에서 Authentication.Challenge, 거기에 extention 또는 손으로 만들어진 URL로 리디렉션해야합니까? –

+0

알림 중 하나가 IdP로 리디렉션 될 때 발생합니다. context.ProtocolMessage.Prompt = none을 설정할 수 있어야합니다. 참조 : https://msdn.microsoft.com/en-us/library/microsoft.owin.security.openidconnect.openidconnectauthenticationnotifications.redirecttoidentityprovider(v=vs.113).aspx#P:Microsoft.Owin.Security.OpenIdConnect.OpenIdConnectAuthenticationNotifications .RedirectToIdentityProvider –

+0

@SteveNewton "전체 프레임 인증"이란 무엇입니까? – dtosato