2013-01-04 2 views
0
  1. 인증되지 않은 사용자가 www.example.com에 도착합니다.인증은 여러 (하위) 도메인간에 어떻게 공유 될 수 있습니까?

  2. 에 사용자가 로그인 할 : 성공적으로 로그인 한 후 https://api.example.com/login

  3. , 사용자가로 리디렉션됩니다 : https://dashboard.example.com

  4. 에 돌아갈 때

    : www.example.com - 세션이 유지되고, 사용자는 여기서 로그 아웃 할 수 있습니다.

예는 스크린 샷과 마찬가지로 앱간에 쿠키를 공유하는 Heroku가 표시합니다.

cookies from Heroku

이 설치 작업을 수행하는 방법? 이 설정을 Rack 앱으로 모방 할 수 있습니까?

답변

1

등의 SSO/OpenID 스타일 기술을 사용합니다. 예를 들어 양식을 통해 리디렉션하고 인증 챌린지 토큰을 양식 매개 변수에서 앞뒤로 전송합니다.

예를 들어 stackovervflow 및 sistersites가 어떻게하는지보십시오. 다른 것을 사용하여 로그인 할 수 있으며 양식과 리디렉션을 통해 구현됩니다.

엄격 하위 도메인의 경우, 당신은 단지

+0

이 https://github.com/josh/rack-openid 여기 것으로 보인다 내의 모든 호스트 "* .domain.com에"로 전송되는 단일 세션 쿠키를 사용할 수 있습니다 openid 통합의 까다로운 구현. 어떻게 작동하는지보십시오. –

+0

http://stackoverflow.com/questions/14137881/how-to-do-single-sign-on-among-multiple-sinatra-applications?rq=1 이것은 도움이 될 수도 있습니다. –

+0

흠 ... Heroku도 일종의 openID를 사용하는 것처럼 보입니다. 적어도, 로그 아웃 후 URL에는 'nonce'가 있습니다. 아마 이것으로 뭔가를 할 수 있습니다. https://github.com/openid/ruby-openid/blob/master/lib/openid/store/nonce.rb – poseid