2012-03-21 3 views
2

레일즈를 회사의 SSO 시스템과 통합하려고합니다. SiteMinder Apache 모듈이 설치되어 있고 내 서버에서 활성화되어 있습니다.레일 세션과 SiteMinder/SSO

레일즈 애플리케이션은 before_filter에서 요청 객체를 검사하여 사용자가 이미 SSO로 인증 받았는지 여부를 결정합니다. 필요한 변수를 찾으면 내 응용 프로그램은 SSO에서 반환 된 사용자 ID를 자체 사용자 계정과 일치시키고 해당 사용자를 인증합니다 (ActiveRecord 세션 저장소로 편안한 인증).

내 문제는 이것이다 : 나는 다시 이동 (성공적으로 주위 클릭의 가치가 몇 페이지 후,이 방법을 사용하여 로그인 한 후 갑자기 내 레일 세션을 잃고 결과 오전으로 내 응용 프로그램에 의해 재 인증 홈페이지).

은 CSRF 보호의 결과가 아니다, 그것은 같은 :

  1. 내 응용 프로그램의 테스트 및 생산 환경 모두에서 발생합니다 (그리고 기본적으로 테스트 환경에서 꺼져), 및
  2. 요청 유형에 관계없이 임의로 발생합니다. AJAX, GET 및 POST 요청으로 인해 이러한 동작이 발생했습니다. 내가 자동으로 SSO ID를 기반으로 사용자를 기록, 그냥 (SSO와 함께 인증 후) 내 응용 프로그램에 기존의 로그인 페이지를 공격 코드를 해제 하더라도

, 내가주의 그 모든 너무 자주 내 브라우저 쿠키의 새 세션 ID 값이 나타납니다.

따라서 Apache SSO 모듈을 켜면 세션이 재설정됩니다. 그렇지 않으면 모든 것이 훌륭하고 멋쟁이입니다. 뭐라 구요?

답변

0

레일 세션 (거의 모든 웹 응용 프로그램 세션과 마찬가지로)은 쿠키에 의해 추적됩니다. AR 세션 저장소를 사용 중이더라도 세션 ID가있는 쿠키가 있습니다. 이는 웹 응용 프로그램이 세션을 추적 할 수있는 유일한 방법입니다. 브라우저가 쿠키를 잃거나 삭제하면 세션이 손실됩니다.

#reset_session 컨트롤러 메소드를 호출하는 일부 Rails 코드가있는 경우. 또는 #cookies 해시를 직접 수정하여 쿠키를 식별하는 세션을 제거 할 수도 있습니다 (단, 원하지 않을 수도 있음).

당신이 제공 한 정보에서 무엇이 세션을 잃어 버렸는지 말할 수 없습니다. 그러나 이것들은 어디에서부터 시작해야 할 것인가입니다. 문제를 재현 할 수 있다면 세션이 '잃어버린'전후에 쿠키를 살펴보십시오. 브라우저의 쿠키는 자체 인터페이스를 사용하거나 컨트롤러 또는보기의 #cookies 메소드가 반환 한 해시에서 레일즈 앱 (디버거 사용 또는 디버깅 용 페이지 출력)을 통해 볼 수 있습니다./어떻게/왜 변화하고 있습니까?

SSO 모듈이 레일 관련 쿠키를 삭제하는 것으로 의심되는 것 같습니다. 이는 Rails 문제가 아닌 SiteMinder 지원에 대한 질문 일 수 있습니다. POST를 추가

+0

에 등, GET, DELETE, PUT. 쿠키의 내용이 ** 변경되었으므로이 시점에서 Rails가 쿠키 재설정을 결정하는 이유가 궁금합니다. 다른 원래 IP? SSO 모듈이 내 Rails 세션 쿠키의 _contents_을 변조하고 있다고 생각하지 않지만 요청이 "변조 된 것으로 보입니다". 제안 해 주셔서 감사합니다. 나는이 질문을 SiteMinder 사람들에게 던졌고, 주사위도 없었습니다. –

0

봅니다 반복적으로 페이지를 치는 동안 나는 파이어 폭스에서 내 레일 세션 쿠키의 내용을 모니터링 SiteMinder를

관련 문제