태터툴즈, 그누보드 단일 로그인(SSO) 연동 내용 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

태터툴즈, 그누보드 단일 로그인(SSO) 연동 내용 정보

태터툴즈, 그누보드 단일 로그인(SSO) 연동 내용

본문

오픈소스 블로그 프로그램인 태터툴즈와 보드 프로그램인 그누보드의 단일 로그인을 위한 SSO 커스터마이징을 완료하였습니다
물론 여기저기 간단한 링크 에러 등이 있을 것 같기는 합니다
간략하게 그 내용을 정리해 봅니다


1. 개요

두 프로그램의 단일 로그인 체계를 위해 회원가입 단계, 로그인 단계, 로그아웃 단계, 정보수정 단계로 나누어 작업을 해야 했다. 각 단계별 작업 내용과 유의할 사항을 간략히 알아보자.



2. 단계별 내용


(1) 회원가입 단계

태터툴즈의 경우 블로그 계정 생성을 위해 초대 방식을 사용하고 있다. 또한 요구하는 입력 정보 역시 일반 회원가입 절차에 비해 간략하다. 따라서 그누보드의 회원가입 페이지와 데이터베이스를 이용한다.

그누보드의 회원가입 페이지를 원래 디렉토리에 놓고 사용할 수도 있지만 별도의 /member 디렉토리를 생성하여 관련 파일을 옮겼다. 추후 또 다른 프로그램과의 연동 확장성을 고려하였기 때문이다. 이 때 유의할 사항은 옮겨진 각 파일의 인클루드 경로를 정확하게 맞춰주어야 한다는 것이다.

그누보드의 register.php 파일을 우선 변경한다. 인클루드 되는 스킨 파일에 태터툴즈에서 사용될 블로그 아이디 텍스트 박스와 값체크 자바스크립트를 추가한다. 물론 블로그 아이디 중복 체크를 위해 데이터베이스와 연동되는 파일도 있어야 하겠다.

그누보드의 register_update_skin.php 파일에 태터툴즈 계정 생성용 데이터 입력 스크립트를 추가한다. 태터툴즈의 경우 계정 생성시 5개의 테이블을 초기화 해주고 있다(BlogSettings, FeedSettings, Personalization, SkinSetiings, Users). 이 5개 테이블에 각각의 초기 정보를 입력해 준다. 이 때 유의할 점은 태터툴즈의 경우 이메일과 비밀번호로 로그인을 한다는 것이다. 또한 내부적으로 블로그 아이디가 아닌 owner라는 PK값으로 테이블들을 이어준다. 블로그 아이디는 언제든지 바뀔 수 있다.


(2) 로그인 단계

국내에서 운영되는 2개 정도의 태터툴즈+그누보드 연동 사이트를 분석해 보았다. 회원가입 단계의 경우 단일화가 되어 있지만 로그인에는 별도의 절차가 필요해 보였다. 이런 반쪽짜리 커스터마이징이라니.

이 단계에서는 로그인 내부 작업과 외부 작업이 필요하다. 내부 작업은 적정한 방법을 이용하여 한번의 로그인으로 두 프로그램의 세션 및 쿠키를 동시에 생성하는 것이고, 외부 작업은 로그인 페이지를 단일화하기 위해 로그인 페이지 링크 주소 및 로그인 후 리다이렉션 주소를 변경해주는 것이다.

우선 내부 작업을 보자. 그누보드의 로그인 변수는 회원아이디와 비밀번호, 태터툴즈의 로그인 변수는 이메일과 비밀번호, 그리고 리다이렉션 주소이다. 이 역시 그누보드 로그인 페이지를 이용한다. 그누보드 먼저 로그인을 한 후, 그누보드 회원 테이블의 이메일 주소를 이용하여 태터툴즈에 로그인 한다. 여러가지 방법을 시도했었지만 역시 가장 쉬운 것이 iframe을 이용하는 것이다. 태터툴즈의 로그인 주소에 해당 변수를 포함시켜 아이프레임으로 호출한 후 리다이렉션 페이지로 넘겨준다.

리다이렉션 주소는 세가지 경우로 나뉜다. 그누보드에서 로그인 한 경우, 태터툴즈에서 로그인 한 경우, 다른 페이지에서 로그인 한 경우이다. 크게 보면 태터툴즈 페이지와 나머지 페이지로 나뉜다. 이를 위해 그누보드 login.php 파일에서 리다이렉션 주소를 적절하게 설정해 준다.

외부 작업은 주로 태터툴즈 페이지의 변경에 한한다. 블로그의 '관리자' 링크가 위/아래 두개 있는데 이를 /member 디렉토리의 단일 로그인 페이지로 변경해야 한다. 이를 위해 태터툴즈 /blog/owner/entry/index.php 파일의 requireLogin 함수를 이용한다. 이 함수에 포함된 $service['loginURL'] 변수를 config.php 파일에 추가 설정한다.


(3) 로그아웃 단계

역시 내부 작업과 외부 작업으로 분리해서 보자. 우선 내부 작업을 보면 그누보드 로그아웃 후 태터툴즈 로그아웃으로 이어진다. 그누보드 로그아웃 파일을 이용하고, 해당 파일에서 아이프레임으로 태터툴즈의 로그아웃 파일을 호출한다. 유의할 점은 태터툴즈의 블로그 아이디를 해당 주소에 추가해 주어야 하는데 이를 위해 그누보드 로그아웃 이전에 회원 아이디 세션 변수인 $ss_mb_id를 블로그 아이디로 재설정하여 그누보드 로그아웃 이후에도 회원 아이디가 사라지는 것을 방지해야 한다.

외부 작업으로는 태터툴즈의 로그아웃 링크 주소를 새로운 로그아웃 링크 주소로 변경하는 것이다. 태터툴즈 /bbs/owner/entry/index.php 파일에서 로그아웃 링크 주소를 새로운 주소로 바꾸고, 리다이렉션 주소 역시 로그인 단계와 마찬가지로 적절하게 변경해 준다.


(4) 정보수정 단계

이를 위해서는 별도의 변경이 크게 필요하지 않다. 각각의 페이지에서 원하는 부분을 수정하게 하면 된다.



3. 정리

국내의 저명한 오픈소스 프로그램인 태터툴즈와 그누보드의 SSO 커스터마이징을 위해 데이터베이스 스키마 분석, 회원가입 및 로그인, 로그아웃 절차 분석, 내부 소스 코드 분석, SSO 방식 결정 등 적지 않은 시간이 걸렸다. 그럼에도 현재는 회원아이디와 비밀번호만으로 단일한 로그인 체계를 갖추게 되었다.
추천
1
  • 복사

댓글 1개

© SIRSOFT
현재 페이지 제일 처음으로