Baron SSO Login Demo (Express.js)
이 프로젝트는 baron-sso의 OIDC 로그인을 테스트하기 위한 단순한 Expressjs 데모 페이지입니다.
사전 준비
baron-sso프로젝트가 실행 중이어야 합니다.baron_net네트워크가 생성되어 있어야 합니다.
1. OIDC 클라이언트 등록
baron-sso 프로젝트 폴더에서 다음 명령을 실행하여 데모용 클라이언트를 Hydra에 등록합니다.
docker exec ory_hydra \
hydra create oauth2-client \
--endpoint http://127.0.0.1:4445 \
--id demo-client \
--secret demo-secret \
--grant-type authorization_code,refresh_token \
--response-type code \
--scope openid,offline_access,profile,email \
--redirect-uri http://localhost:3000/callback
2. 데모 페이지 실행
이 폴더(baron-sso-login-demo)에서 다음 명령을 실행합니다.
docker-compose up --build
3. 테스트
- 브라우저에서
http://localhost:3000에 접속합니다. - "Login with Baron SSO" 버튼을 클릭합니다.
baron-sso로그인 화면으로 리다이렉트되면 로그인을 진행합니다.- 로그인 성공 후 사용자 프로필 정보가 표시되는지 확인합니다.
환경 변수 설정 (.env)
필요에 따라 .env 파일을 생성하여 설정을 변경할 수 있습니다.
OIDC_ISSUER_URL: Baron SSO의 OIDC Issuer URL (기본값:http://localhost:5000/oidc)OIDC_CLIENT_ID: 등록한 클라이언트 IDOIDC_CLIENT_SECRET: 등록한 클라이언트 시크릿OIDC_REDIRECT_URI: 콜백 URLBARON_API_BASE_URL: Baron Backend/Public Gateway 기준 URL. 기본적으로OIDC_ISSUER_URL에서/oidc를 제거한 값을 사용합니다.BARON_BACKCHANNEL_JWKS_URL: Baron이 서명한logout_token검증용 JWKS URL. 기본값은<BARON_API_BASE_URL>/api/v1/auth/backchannel/jwks.json입니다.BARON_SESSION_VALIDATION_ENABLED:false로 두면 기존의 요청 시 Baron 세션 재검증을 끄고, Back-Channel Logout만으로 세션 종료를 확인할 수 있습니다. 기본값은true입니다.
세션 종료 / 연동 해지 동작
이 데모 앱은 두 경로로 로그아웃을 반영합니다.
- 기본 경로: 각 요청마다 Baron의
GET /api/v1/user/me를 Bearer token으로 호출하여 현재 Baron 세션이 아직 유효한지 다시 확인합니다. Baron 세션이 무효하면 다음 요청에서 로컬 세션을 정리합니다. - Back-Channel Logout 경로:
POST /backchannel-logout엔드포인트에서 Baron이 전송한logout_token을 검증하고,sid또는sub에 매핑된express-session세션을 즉시 파기합니다.
Back-Channel Logout 테스트 전제
- DevFront에서 대상 RP에
Back-Channel Logout URI를http://localhost:3000/backchannel-logout또는 외부 접근 가능한 주소로 설정해야 합니다. - Baron 서버가 해당 데모 앱 주소에 직접 접근 가능해야 합니다.
- 로그인 후 ID Token의
sid또는sub를 기준으로 RP 세션이 메모리에 매핑됩니다.
따라서 다음 상황을 테스트할 수 있습니다.
- UserFront에서
세션 종료후 Baron이 RP에 백채널 로그아웃을 전송하는지 - UserFront에서
연동 해지후 RP 세션이 즉시 파기되는지 - RP 보호 페이지 접근 시 이미 로그아웃 상태인지
Description
Languages
JavaScript
82.6%
EJS
16.8%
Dockerfile
0.6%