2009-06-02 2 views
2

Java + Tomcat/JBoss를 사용하여 OpenID 공급자 ('OP')를 구현하고 있습니다. 오픈 ID에 대한 주요 사항의부하 분산 상태의 OpenID

이제 하나

  1. 사용자는 영업 이익과 경상 이익 모두와 통신하고 두 사이트와의 세션을 가지고 있다는 것입니다.
  2. OP와 RP가 서로 통신하여 사용자가 아무 것도 위조하지 않았는지 확인합니다.

제목로드 균형 조정 된 상황에서 제대로 구현하는 방법에 대한 질문은 문서를 찾을 수 없었습니다.

RP가 OP에 연결되어 사용자가 아닌 다른 응용 프로그램 서버로 끝나는 것이 두려워하는 일반적인 문제입니다.

내 질문 :

  • 이 처리하는 올바른 방법은 무엇입니까?
  • 에 대한 '최상의'OpenID 라이브러리는 무엇입니까?

감사합니다.

+0

외부 공급자를 사용하지 않는 이유는 무엇입니까? –

+0

요구 사항은 기존 계정이있는 기존 웹 사이트를 인증으로 사용하는 것입니다. 나는 각 웹 사이트에 적극적으로 로그인 할 사용자의 필요없이 외부 웹 사이트를 연결하는 방법을 찾고 있습니다. –

답변

2

RP가 OP에 연결되어 사용자와 다른 응용 프로그램 서버로 끝나는 것이 두려워하는 일반적인 문제입니다.

공유 저장소에 대화 상태를 저장합니다. 데이터베이스 또는 distributed cache입니다. 캐시가 더 빠르며 어쨌든 많은 양의 지속성이 필요하지 않습니다.

끈적 세션 (동일한 클라이언트의 모든 요청이 동일한 서버에 오게 됨)을 사용하여로드 균형 조정을하면 캐시 업데이트 횟수가 줄어 듭니다.

(동일한 대화로 작동하지 않을 것입니다 내가 처음에 조언을 목적으로 클러스터 된 HTTP 세션이 두 세션 사이에 확산된다. 사용자 및 응용 프로그램의) 영업 측면에서

1

, 유일한 오픈 ID-특정 상태가 정말 클러스터의 시스템간에 공유되어야하는 것은 연관 (공유 된 비밀과 해당 핸들)입니다. 그리고 그것은 꽤 캐시 가능합니다. 주어진 association handle에 대한 비밀은 결코 변하지 않으며, 정의 된 수명을 가지고 있으며, 그 중 많은 수가이되어서는 안됩니다. (스테이트리스 모드를 사용하는 일부 대용량 RP로 작동하지 않는 한, 아마도).

기능 세트 및 사용자 인터페이스에 따라 다른 세션 상태가있을 수 있지만 직접 RP-OP 통신에 적용하면 표준 트릭을 사용할 수 있습니다.