테마
Migration · Public Client 지원 추가
logi v0.5 부터 RP 등록 시 client_type 을 선택할 수 있습니다.
기존 RP 영향 — 없음
이미 등록된 모든 RP는 자동으로 client_type=confidential 로 분류되며 동작이 변경되지 않습니다.
| 항목 | 기존 동작 | 변경 후 |
|---|---|---|
client_id | 그대로 | 그대로 |
client_secret | 그대로 | 그대로 |
| Token endpoint 인증 | HTTP Basic 또는 form body | 동일 |
| PKCE | 모든 RP 에 강제 (S256, code_challenge presence 필수) | 동일 (변경 없음) |
| Redirect URI | exact match | 동일 |
| Refresh rotation | 활성 | 동일 |
logi 의 PKCE 정책
logi 는 모든 RP (confidential 포함) 에 PKCE S256 을 인가 단계부터 강제합니다 (code_challenge 누락 시 거절). 이는 v0.5 이전부터의 기존 동작이며 public client 추가로 인한 변경이 아닙니다.
추가 작업이 필요 없습니다. 코드 변경, 환경변수 변경, RP 재등록 모두 불필요.
신규 RP 등록 시 변화
https://start.1pass.dev/developer/applications/new 폼에 클라이언트 타입 라디오가 추가되었습니다.
- Confidential (기본) — 기존 동작과 동일. 백엔드 보유 RP 권장.
- Public — 모바일/SPA 전용.
client_secret발급 안 됨, PKCE S256 강제.
자세한 결정 가이드: Public vs Confidential
신규 검증 로직 (모든 RP 공통)
기존 RP 도 영향받는 보안 강화 항목 — 정상 사용 시 변화 없으나 비표준 호출은 거절됩니다:
1. Token endpoint method advertise
/.well-known/openid-configuration 의 token_endpoint_auth_methods_supported 에 none 추가:
diff
- "token_endpoint_auth_methods_supported": ["client_secret_basic", "client_secret_post"],
+ "token_endpoint_auth_methods_supported": ["client_secret_basic", "client_secret_post", "none"],Confidential RP 는 none 을 사용할 수 없으며 (validation 거절), 변화 없음.
2. Public client downgrade 방어
신규 도입. Public client 가 token endpoint 에 client_secret 또는 HTTP Basic 헤더를 보내면 invalid_client 거절. 이는 신규 public RP 에만 적용 — 기존 confidential 은 영향 없음.
3. Public client redirect_uri 정책
신규 도입. Public RP 의 redirect_uri 는 https / loopback / custom-scheme 만 허용 (RFC 8252 §8.5). 외부 평문 http URL 은 등록 거부. Confidential RP 는 영향 없음.
DB 스키마 변화
내부 DB 스키마에 신규 컬럼이 추가되었습니다 — RP 측 작업 불필요:
sql
ALTER TABLE oauth_applications
ADD COLUMN client_type VARCHAR DEFAULT 'confidential' NOT NULL,
ADD COLUMN token_endpoint_auth_method VARCHAR DEFAULT 'client_secret_basic' NOT NULL;
ALTER TABLE oauth_applications
ADD CONSTRAINT chk_client_type_secret_consistency
CHECK (
(client_type = 'confidential' AND client_secret_digest IS NOT NULL ...)
OR
(client_type = 'public' AND client_secret_digest IS NULL ...)
);기존 row 는 raw SQL 백필로 confidential 값 부여됨.
다른 변화
Beta 기간 production tier 자동 승인
LOGI_BETA_AUTO_APPROVE=true 환경변수가 활성화된 동안 신규 production tier 신청은 즉시 자동 승인됩니다. 베타 종료 시 ENV 제거하면 기존 manual review 흐름 복귀.
사업자등록증 옵셔널
production tier 신청 시 사업자등록증 PDF 대신 자유 양식 신원/서비스 설명(50자~5000자)으로 대체 가능. 솔로 개발자 / OSS 프로젝트 진입 장벽 완화.
문의
문제 발견 시 logi-support@dcode-labs.com 또는 GitHub Issues.