5

System.IdentityModel을 사용하여 claim MVC4 웹 응용 프로그램에서 클레임 주체와 양식 auth를 사용하여 사용자를 인증합니다. (코드이 문서를 기반으로 : http://brockallen.com/2013/01/26/replacing-forms-authentication-with-wifs-session-authentication-module-sam-to-enable-claims-aware-identity/)SessionAuthenticationModule 쿠키 처리기가 HttpOnly 보안 쿠키를 만들지 않습니다.

내 ClaimsBasedAuthenticationService 클래스는 SessionSecurityToken에서 SAM 쿠키를 발행하고, 모든 난 그냥 지금은 Http 만 같은 세션 쿠키를 만들거나 필요로하지 않는 것으로 나타났습니다 것을 제외하고 ... 잘하고있다 SSL을 요구합니다. 코드를 디버깅 할 때 CookieHandler 객체의 속성이 디버거에서 올바르게 설정되어 있지만 생성 된 최종 세션 쿠키에는 HTTPOnly 및 보안 플래그가 표시되지 않습니다.

나는 같은 명시 적으로 true로 다음을 설정하는 Web.config의 라인을 가지고 : 스크립트에서 숨길 수 내 FedAuth 쿠키 위해 다른 내가 놓친 거지 뭔가가 (이 있는지

<system.web> 
    <httpCookies httpOnlyCookies="true" requireSSL="true" /> 
    <authentication mode="Forms"> 
    <forms ... requireSSL="true" /> 
    </authentication> 
... 
</system.web> 
<system.identityModel.services> 
    <federationConfiguration> 
    <cookieHandler requireSsl="true" hideFromScript="true" /> 
    </federationConfiguration> 
</system.identityModel.services> 

누군가가 말해 줄 수 HTTPOnly) SSL을 요구합니까?

+0

누군가가 lockItem = "true"속성을 httpCookies 요소에 추가 할 것을 제안했지만, 아무것도하지 마라. –

답변

0

동일한 구현을 사용하고 있으며 Fiddler2를 사용하여 문제가 표시되지 않습니다. 어쩌면 문제는 디버깅 도구와 관련이 있습니까? IE10 디버깅 도구에서 보안 및 http 전용 플래그는 쿠키가 처음 수신 될 때만 표시됩니다. Chrome 디버깅 도구를 사용하여 확인한 경우 모든 요청에 ​​플래그가 올바르게 표시되어야합니다.

+0

Chrome 개발자 도구에서도이를 표시하지 않습니다. w/Fiddler2를 시도했지만, 전체 요청, 심지어는 "터널"만 호스트 이름을 표시하지도 않습니다. Fiddler가 dev 도구와 같은 요청/응답 세부 정보를 표시하지 않는 이유를 잘 모릅니다. –

+0

HTTPS 트래픽을 해독하기 위해 Fiddler를 설정 했습니까? 도구 | Fiddler Options, HTTPS 탭); 효과적으로 중간 공격에있는 사람이지만 디버깅을 위해 무엇을보아야하는지 알 수 있습니다. –

0

이 방법을 사용 했습니까? 나는 기본적으로 동일한 코드를 사용하고 있었고 모두 괜찮습니다.

나는 다음과 같은 제안은 아무것도 아무 상관이 있다고 볼 수는 없지만, 내가 제안 할 수있는 유일한 일이 쿠키의 수명을 설정할 수 있습니다

<cookieHandler hideFromScript="true" requireSsl="true" persistentSessionLifetime="30" /> 

<forms loginUrl="/Whereever" timeout="30" requireSSL="true" /> 

<system.webServer> 
    <modules> 
    <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
</system.webServer> 
+1

나는 잠시 동안 그 프로젝트에 대해 연구하지 않았지만, 기억한다면 속성이 올바르게 설정되어 있고 dev 도구가 거짓말이라고 생각합니다.) ... 아니면 적어도 생각하고 싶은 것입니다. –

관련 문제