아주 오래전에 SSO 관련 솔루션을 찾아보다가, JOSSO를 들여다 본 적이 있었다. 2006년 9월. 그때의 JOSSO 버전이 1.4. 그로부터 시간이, 아니 세월이 많이 흘렀다. 그동안 JOSSO 역시 꽤 많은 변화를 겪었다. 무엇보다도 예전에는 전혀 지원하지 않던 Cross Domain SSO를 이젠 지원한다고 한다. 도메인이 서로 달라도, SSO가 된단다. 그 원리가 문득 궁금해졌다.
- http://www.jopenbusiness.com/mediawiki/index.php/JOSSO 한글문서, 설치와 설정에 관한 몹시 자세한 설명.
- http://www.josso.org/ JOSSO 공식 사이트. 혹시 약자가 궁금하신 분을 위해. Java Open Single Sign-On = JOSSO.
2009년 8월 현재, 최신 버전은 1.8. 크로스 도메인 기능을 지원함. PHP, ASP, 클라이언트(에이전트) 모듈 제공
http://www.josso.org/confluence/display/JOSSO1/Architecture+Overview 아키텍춰 개요
문서가 생각보다 복잡하다. 너무 멋있게 포장하려고 한 것 같다.
하지만, 생각보다 간단하다. PHP에서 사용하는 샘플을 보자.
- http://www.josso.org/confluence/display/JOSSO1/Jossify+your+PHP+Application
Sample pageindex.php |
|
중간에 괜히 복잡하게 보이는 부분은, user의 role(역할)과 property(속성)을 가져와서 보여주려 하기 때문이고, 실제로는 아주 간단하다.
$user = $josso_agent->getUserInSession(); $sessionId = $josso_agent->getSessionId(); // Check if user is authenticated if (isset($user)) { echo 'Click here to logout ... |
사용자(user)의 세션(session)이 세션 서버에 있는지를 검사하면, 끝이다.
그런데, 사이트의 문서를 아무리 들여다 봐도, cross domain의 원리에 대해서는 나와 있는 게 없다.
결국, 소스를 설치해서 뜯어봐야 알 수 있을 듯...
-------------------------------------
FROM: https://blog.naver.com/joycestudy/100086631671