지난 번 문서에서는 실험과정의 오류까지 기록하느라 너무 장황하게 설명한 느낌이 짙어서, 간추린 핵심 요약본을 따로 정리해본다.
- [지난 문서] JOSSO 1.8.0 설치: 오픈소스 무료 SSO 소프트웨어, Single Sign-On
기초 개념
- IdP(Identity Provider) : 신원 인증 서비스 제공해주는 모듈, 서버. 중앙 인증 서버를 의미.
- SP(Service Provider) : 일반 서비스를 제공해주는 모듈, 서버. 개별 서비스 사이트 의미.
- 인증 서버 : ID와 패스워드를 보관하며, 인증 요청에 대해 승인/거절하는 서버
- 서비스 서버 : 일반적인 웹 사이트의 기능을 수행하는 서버.
- JOSSO Gateway : 인증서버에 탑재된 인증 모듈, callee
- JOSSO Agent : 일반 서비스 서버에 설치하는 JOSSO 인증 클라이언트 모듈, caller
다운로드
- 다운로드 사이트 2009년 8월 현재, 최신 버전 1.8.0 ZIP 파일 다운로드
임시 폴더에 압축을 풀어놓는다. (설치 작업이 끝난 후에는 삭제할 예정임. 뭐, 공간 남으면 그대로 둬도 무해하다.)
- c:\tools\josso-1,8.0
JOSSO Gateway 설치
Gateway는 뭔가 ‘통로’가 되는 도구로서, 인증 서버의 모듈을 의미한다. 대비되는 개념으로는 Agent가 있다.
JOSSO Gateway는 자바 기반의 프로그램 모듈이므로, 당연히 자바 서블릿 컨테이너가 필요하다. 여기에서는 apache-tomcat을 컨테이너로 삼아 설치한다.
- xampp apache-tomcat 설치와 설정 관련 –> 참조! XAMPP Tomcat Add-on 설치
윈도 커맨드 창(cmd)을 열어,
- cd c:\tools\josso-1.8.0\bin 으로 가서, josso-gsh 실행
tomcat이 설치된 디렉토리 이름과 tomcat 버전 이름을 인자값으로 주었다.
tomcat을 재시동하고, 아래 URL을 방문해보자.
http://localhost:8080/josso/signon/login.do
아래 페이지와 같이 나오면, ‘성공’이다.
기본으로 설정되어 있는 사용자 아이디와 패스워드는 아래와 같다.
- 참고로, 이 값들은, tomcat/lib/josso-credentials.xml 에 들어있고, 상세정보는 tomcat/lib/josso-users.xml 에 들어있다.
user1 | user1pwd |
user2 | user2pwd |
tomcat | tomcatpwd |
PHP JOSSO Agent 설치
위에서 다운로드 받은 소스 파일을 압축 해제한 곳을 찾아보면, 아래 폴더에 다음과 같은 압축파일이 또 들어있다.
- C:\Tools\josso-1.8.0 다운로드 압축해제한 폴더
- C:\Tools\josso-1.8.0\dist\agents\src\josso-php-agent-1.8.0-.zip
이 파일을 압축해제해서 열어보면, 아래와 같은 폴더가 두 개 들어있다.
josso-php-inc | agent 프로그램 기본 클래스, 설정파일 | php.ini include_path가 설정된 폴더에 압축해제하거나, 아예 include_path에 넣어준다. |
josso-php-partnerapp | agent 프로그램 기본 모듈, 실제 사용 | xampp/htdocs/josso-php-partnerapp 폴더로 압축해제 |
실제 배치된 파일들의 위치는 아래와 같다.
include_path = ".;C:\Tools\xampp\php\PEAR;C:\Tools\phpLibs" |
C:\Tools\phpLibs\josso-php-inc |
C:\Tools\xampp\htdocs\josso-php-partnerapp |
josso-login.php josso-logout.php josso-security-check.php |
약간의 편집작업이 필요하다. 위의 josso-php-partnerapp 폴더의 파일들을 모두 열어서 아래 행을 프로그램 첫 부분에 넣어준다.
include_once("josso-php-inc/josso.php"); |
josso-php-inc에 포함된 nusoap이 문제다. soapclient 라는 클래스가 PHP 5.x 버전 내장 함수와 충돌한다. 해결책은?
- nusoap 파일에서 soapclient 클래스를 soapclientW로 고치라는 조언이 있다. [from: nusoap – Cannot redeclare class soapclient « blo9]
- ‘soapclientnusoap’로 클래스 이름을 바꾼 패키지. http://code.google.com/p/nusoap-for-php5/
- php.ini에서 php_soap.dll 로딩을 코멘트 처리하는 방법도 있다.
마지막으로, josso-php-inc 폴더에서 josso-cfg.inc 파일의 내용을 확인한다. 만약, 초기 설정과 다른 것이 있으면 수정해준다.
PHP JOSSO 사이트 예제 설치
다운로드 받았던 파일 압축해제한 곳으로부터,
- C:\Tools\josso-1.8.0\dist\samples\apps\josso-partner-php-1.8.0-.zip
이 파일들을 htdocs/josso-php/ 폴더에 풀어놓자. [josso 라고 짧게 이름을 주면 좋겠지만, apache와 tomcat을 연동시켜 놓은 상태라면, tomcat에 이미 그 이름의 폴더가 있다. tomcat이 이긴다. php 파일이 없다고 나온다.]
index.php sample-ask-login.php |
두 파일 모두 편집기에서 열어서, 첫줄에 아래와 같이 추가해준다. josso agent 모듈의 경로를 지정해주는 일이다.
자, 이제 준비는 얼추 끝났다.
http://localhost/josso-php/ 링크를 눌러서 실험 시작!
----------------------------------------------------
FROM: https://blog.naver.com/joycestudy/100087210725