2011-01-12 1 views
0

서버간에 authlogic persistence 토큰을 동기화하는 방법을 알아 내려고하고 있습니다.데이터베이스간에 sync persistence_token 동기화

저는 4 대의 서버를 보유하고 있으며, 모든 4 대의 서버에 여러 대의 응용 프로그램이 있습니다. 인증은 한 서버의 모든 응용 프로그램에서 작동합니다. 퍼시스턴스 토큰을 다른 서버로 복사하면 다른 서버에서 작업하도록 할 수도 있습니다.

유일한 문제는 사용자가 한 서버에 로그인 할 수 있지만 다른 서버에 로그인 할 수는 없다는 것입니다. 다른 서버로 이동하는 경우에 대비하여 동기화 할 수 있어야합니다. 예를 들면 :

조 서버에 로그인 조 또한 서버에 로그인 한

제인은 서버에 로그인이

프레드는 서버에 로그인 한

2

내가 필요한 것 각 서버에서 2 방향 동기화. 나는 그들이 동일한 모든 끈기 토큰을 신경 쓰지 않는다.

또한 중요한 경우 LDAP를 사용하여 인증합니다.

난 레일과 관련없는 것을 포함하여 모든 제안에 대해 열려 있습니다.

편집

이를 업데이트하려면, 나는 LDAP 인증을 제거 할 수 없습니다. 나는 진정으로 authlogic을 대체 할 의향이 없다. 동기화 작업을 처리하기 위해 레이크 작업이나 쉘 스크립트 같은 것을 생각하고있었습니다.

나는 내 자신의 아이디어를 생각해 내는데 완벽하다. 누군가가 최선의 방법을 알고 있는지 알고 싶다.

도움을 주셔서 감사합니다.

+0

당신은 DB 세션 저장소를 사용, 또는 너무 무거운 손으로 보이는 경우 아마도 Memcached가 세션 저장소를 사용하여 조사 할 수 있습니다. 귀하의 질문은 일종의 개방적 인 것처럼 보이므로 귀하의 목표는 무엇입니까? "서버"라고하면 "사이트"를 의미합니까? – tadman

+0

나는 내가 정말로 필요한 것을 분명히하지 않았다고 생각한다. 나는 필요한 것을 가지고 질문을 갱신 할 것이다. 내가 서버 라 말할 때 아파치와 MySQL을 실행하는 리눅스 박스, 그리고 여러개의 애플 리케이션을 의미한다. –

답변

1

SSO (Single Sign On)를 사용할 수있는 중앙 인증 서비스 (CAS)를 찾고있을 수도 있습니다.

이렇게하면 다른 서비스에 로그온 할 수 있습니다. 그것은 사용자가 로컬 저장소에 대해 인증하는 경우 사용자가 http://server1

  • 서버 1 검사를 요청 뭔가
    • 처럼 작동합니다.
    • 서버 1처럼 뭔가에 사용자를 리디렉션 http://casserver?return=server1
    • casserver 실제로 사용자 이름/암호 또는 자격 증명을 인증하고 가져옵니다 :하지 않으면

      로 리디렉션을

    • 사용자 요청 http://server2
    • server2는 사용자를로 리디렉션합니다.
    • casserver은 authToken에

    사용자가 두 번 이상 자격 증명을 입력하지 않는 방법을 http://server2에 대한 사용자를 리디렉션합니다.

    의 OAuth는

    사람들은 java based CAS을 사용했다 (간체 이상-)과 같이 작동합니다. 일부 게시물 :

  • +0

    우리는 매우 시골이고 인터넷은 신뢰할 수 없습니다. 캐서 서버가 고장났다면? server2는 인증 할 수 없습니다. 또한 casserver에 의해 생성되는 일종의 인증 토큰을 제안하는 것처럼 보이는데, server2가 그 인증서의 종류를 어떻게 알 수 있습니까? 의견을 내 주셔서 감사합니다.하지만이 경우에는 작동하지 않을 것이라고 생각합니다. –

    +0

    6 개월 후 이것이 내가 해결할 해결책입니다. 네가 의미하는 것을 얻을 수 있기 전에 나는 단지 캐스에 대해 더 많이 이해해야한다고 생각해. –