피드로 돌아가기
Add a Consent Screen to Your OIDC Authorization Server with Hono
Dev.toDev.to
Security

Session Cookie 기반의 OIDC Consent Flow 구현 및 제어 로직 설계

Add a Consent Screen to Your OIDC Authorization Server with Hono

ShyGyver2026년 5월 1일15intermediate

Context

기존 OIDC Authorization Code Flow 서버는 사용자 인증 후 즉시 권한을 부여하는 구조로 설계됨. 제3자 애플리케이션이 요청하는 Scope에 대해 사용자가 명시적으로 승인하거나 거부할 수 있는 제어 단계가 부재한 보안적 한계 존재.

Technical Solution

  • Login과 Consent 단계를 분리하여 다단계 대화형 Flow로 아키텍처 확장
  • 인증 완료 후 짧은 만료 시간을 가진 Server-side Session Cookie를 발행하여 사용자 상태 유지
  • generateAuthorizationCode 콜백을 Control Point로 설계하여 continue(동의 화면 표시), code(코드 발행), deny(에러 반환)의 세 가지 상태 제어 로직 구현
  • AuthorizationCodeUser 인터페이스 확장을 통해 consentStatus 필드를 추가함으로써 타입 안정성 확보
  • ParsedData 인터페이스에 sessionCookieconsent 필드를 정의하여 POST 요청 데이터의 구조적 매핑 처리
  • In-memory Map 기반의 세션 저장소 운영을 통한 인증 단계 간 컨텍스트 브릿징 구현

1. 다단계 인증 흐름 설계 시 각 단계의 상태를 전이시킬 단기 세션 저장소(Redis 등) 검토

2. 사용자 권한 승인 여부를 결정하는 제어 지점을 단일 콜백 함수로 응집하여 비즈니스 로직 단순화

3. 프로덕션 환경 적용 시 CSRF 토큰 도입 및 세션 쿠키의 Secure/HttpOnly 플래그 설정 필수 검토

원문 읽기