Files
headless-login-demo/docs/setup-guide.md
2026-04-13 15:20:54 +09:00

4.4 KiB

Headless 로그인 데모 설정 가이드 (Baron SSO 연동)

이 문서는 headless-login-demo 프로젝트를 설치하고, Baron SSO (OIDC IdP) 관리자 도구(devfront)에서 Headless RP를 올바르게 생성 및 설정하는 방법을 단계별로 설명합니다.


1. Baron SSO (devfront) 설정

Headless RP는 일반 OIDC 클라이언트와 설정 방식이 다릅니다. 특히 IdP 서버가 RP(데모 앱)의 JWKS 엔드포인트에 접속할 수 있어야 함을 유의하십시오.

Step 1: 클라이언트 기본 정보 입력

  1. devfront 접속 후 연동 앱 > 연동 앱 추가를 클릭합니다.
  2. Name: headless-login (또는 자유롭게 입력)
  3. Redirect URIs: 데모 앱에 접속할 주소의 콜백 경로를 입력합니다.
    • 통합 환경 (IdP와 RP가 같은 서버일 때): http://localhost:3000/callback
    • 분리 환경 (IdP는 원격 서버, RP는 내 PC일 때): http://[내_PC_IP]:3000/callback
    • 주의: 실제 앱에서 요청하는 Redirect URI와 여기서 등록한 값이 완전히 일치해야 인증 거부 에러가 발생하지 않습니다.
  4. Scopes: openid, profile, email을 선택합니다.
  5. Type: 반드시 pkce를 선택해야 합니다.

Step 1 설정 예시

Step 2: Headless 기능 및 보안 설정

  1. pkce 하단의 "Headless Login (자체 로그인 UI 사용)" 토글을 활성화합니다.
  2. JWKS URI: Baron SSO 서버에서 접근 가능한 데모 앱의 공개키 주소를 입력합니다.
    • 통합 환경 (IdP와 RP가 같은 서버일 때): http://localhost:3000/.well-known/jwks.json
    • 분리 환경 (IdP는 원격 서버, RP는 내 PC일 때): http://[내_PC_IP]:3000/.well-known/jwks.json
    • 주의: Baron SSO 서버(172.16.10.175)에서 사용자님의 로컬 PC 포트로 네트워크가 열려있어야 합니다.

Step 2 설정 예시

Step 3: 저장 및 확인 (JWKS 캐시 검증)

  1. 앱 생성 버튼을 클릭해 저장합니다.
  2. 연동 앱 목록에서 해당 앱이 PKCE (Headless Login) 유형으로 생성됐는지 확인합니다.
  3. 앱 상세 페이지 하단이나 설정 탭에서 JWKS 캐시 상태Success인지 반드시 확인합니다.
    • 팁: 캐시 상태가 비어있거나 실패인 경우, 데모 앱(내 PC)이 켜져 있는지 확인하고 새로고침(Refresh) 버튼을 눌러 수동으로 캐시를 갱신하세요. 캐싱이 정상적으로 이루어져야만 로그인이 작동합니다.

Step 3 설정 예시

2. Headless Login 애플리케이션 로컬 설정 (.env)

devfront에서 설정한 값을 바탕으로 프로젝트 루트의 .env 파일을 구성합니다.

# 애플리케이션 실행 포트
PORT=3000

# OIDC IdP 설정 (원격 서버 주소 입력)
CLIENT_ID=a9b64539-7242-4aa5-ad3d-13c7f1ef00f2
ISSUER=http://172.16.10.175/oidc

# 리다이렉트 및 보안 설정
# REDIRECT_URI는 DevFront에 등록한 Redirect URIs 중 하나와 정확히 일치해야 합니다.
REDIRECT_URI=http://[내_PC_IP]:3000/callback
# JWKS_URI는 Baron SSO 서버가 내 PC로 접속할 때 사용하는 주소와 일치해야 합니다.
JWKS_URI=http://[내_PC_IP]:3000/.well-known/jwks.json

3. 주의 사항 (네트워크 구성)

  • 서버 간 통신 (Server-to-Server): Headless 로그인은 Baron SSO 서버가 직접 데모 앱의 JWKS_URI에 접속하여 서명을 검증합니다. 따라서 IdP 서버에서 내 로컬 PC의 포트(3000)로의 인바운드 통신이 허용되어야 합니다.
  • Redirect URI 일치: 브라우저를 통해 접속할 주소가 IP라면, Redirect URI와 JWKS URI 모두 IP 기반 주소로 통일하는 것이 문제 발생 소지를 줄이는 가장 좋은 방법입니다.

4. 실행

npm install
npm start

💡 참고: 자동 키 생성 및 JWKS 엔드포인트 활성화 npm start 명령어로 서버를 실행하면, 프로젝트 내에 keys.json 파일이 자동으로 생성됩니다. 이 파일에는 서버가 자체적으로 발급한 RSA 보안 키 쌍(공개키/개인키)이 저장됩니다. 동시에, .env에 설정된 JWKS_URI 경로(또는 기본 경로)로 공개키가 서빙되어 Baron SSO가 검증에 사용할 수 있게 됩니다.