Logto 제품 업데이트
Logto v1.42.0는 사용자 지정 도메인 검증 파일, 와일드카드 패턴이 포함된 이메일 허용 목록, 비밀번호 재설정 매직 링크, Grant.LimitExceeded 웹훅, 그리고 node-oidc-provider v9, Koa 3 기반 프로토콜 계층 리프레시 및 기본 활성화된 SSRF 방어를 제공합니다.
Logto v1.42.0는 사용자 지정 도메인 검증 파일, 와일드카드 패턴이 포함된 이메일 허용 목록, 비밀번호 재설정 매직 링크, Grant.LimitExceeded 웹훅, 그리고 node-oidc-provider v9, Koa 3 기반 프로토콜 계층 리프레시 및 기본 활성화된 SSRF 방어를 제공합니다.
Logto v1.42.0는 도메인 및 프로토콜 중심의 릴리스입니다. 팀이 별도의 호스트 없이 도메인 소유권을 증명할 수 있는 방법을 제공하고, 테넌트에 등록 가능한 이메일을 더 세분화하여 제어하며, 최종 사용자를 위한 더 원활한 비밀번호 재설정 경로를 제공합니다. 내부적으로는 Logto가 node-oidc-provider v9 및 Koa 3으로 이전하고, 아웃바운드 OIDC 요청에 대해 기본적으로 SSRF 방어가 활성화됩니다. 이 릴리스의 새로운 기능은 다음과 같습니다.
서드파티 서비스는 종종 고정 경로에 작은 파일을 제공하여 도메인 소유권을 검증하도록 요구합니다. 지금까지는 Logto 사용자 지정 도메인과 함께 별도의 호스트를 운영해야 했습니다.
이제 Console > Tenant settings > Domains에서 활성화된 사용자 지정 도메인에 검증 파일을 첨부할 수 있습니다. 각 파일에는 다음과 같은 특성이 있습니다:
/verify.txt) 또는 /.well-known/ 이하의 경로.text/plain 또는 application/json의 콘텐츠 타입. JSON 콘텐츠는 저장 시 검증됩니다.도메인당 최대 10개의 파일을 구성할 수 있으며, 경로는 고유해야 합니다. Logto는 구성된 콘텐츠 타입과 응답 하드닝으로 정확히 일치하는 GET, HEAD 요청에만 파일을 제공합니다. 기존 Logto 라우트가 항상 같은 경로의 검증 파일보다 우선하므로 잘못 구성된 파일이 실제 엔드포인트를 가릴 수 없습니다. Console 환경은 지원하는 모든 언어로 현지화되어 있습니다.
Logto가 파일 내용에 관여하지 않기 때문에 어떤 공급업체의 검증 방식이든 Logto가 공급업체별 동작을 구현하지 않고도 동작합니다.
이메일 차단 정책이 더욱 확장되어 Console > Security > Email blocklist에서 이메일 접근 규칙을 완전히 구성할 수 있게 되었습니다.
사용자 지정 이메일 허용 목록. 이메일 주소, 도메인, 또는 와일드카드 패턴으로 허용 목록을 구성하세요. 허용 목록이 설정되면, 새 가입 및 새 연결 이메일(이메일 등록과 계정 이메일 업데이트 모두)에 대해 일치하는 이메일만 허용됩니다.
와일드카드 패턴. 허용 목록과 차단 목록 모두는 foo*@example.com, *@example.com, @*.example.com 같은 와일드카드 주소와 도메인 패턴, 그리고 정확한 주소([email protected]) 및 도메인(@example.com)을 지원합니다.
충돌 경고. 허용 목록 항목이 동시에 차단 규칙과 일치할 때, 이메일 서브어드레싱이 차단되었지만 허용 목록에 플러스 기호를 포함할 때, 또는 모든 규칙이 합쳐져 어떠한 새 이메일도 통과하지 못하게 될 때 Console에서 경고를 표시합니다.
일치 및 검증 로직은 @logto/core-kit의 재사용 가능한 헬퍼를 통해 공유되어, 이메일이 테넌트에 입력되는 모든 곳에 동일한 규칙이 적용됩니다.
이제 Experience 앱에서 비밀번호 재설정 플로우에서 인증 코드 외에도 재설정 페이지에서 직접 일회용 토큰 매직 링크를 검증하도록 지원합니다.
Grant.LimitExceeded 웹훅 이벤트애플리케이션이 최대 허용 grant 수를 초과해 OIDC grant가 회수될 때, Logto는 이제 Console 웹훅 설정에서 선택 가능한 Grant.LimitExceeded 웹훅 이벤트를 발생시킵니다.
페이로드는 userId, applicationId, revokedGrantIds, maxAllowedGrants, preRevocationActiveGrantCount를 제공합니다. 이 이벤트는 fire-and-forget 방식으로 전송되며: 실패 시에는 TriggerHook.Grant.LimitExceeded 감사 로그로 기록되고 인증 응답에는 영향을 주지 않습니다.
가장 중요한 변화는 토큰 회수의 보안 패치입니다.
이제 불투명 액세스 토큰을 폐기하면 동일한 grant 하의 모든 토큰, 즉 refresh 토큰까지도 폐기됩니다. v8에서는 회수후에도 refresh 토큰을 계속 사용할 수 있었고, 신규 access 토큰을 발급받을 수 있었습니다.
v9 프로토콜 업데이트 사항은 다음과 같습니다:
unsupported_token_type을 반환하여, v8이 아무 것도 폐기하지 않고 성공 응답만 반환하던 문제를 해결했습니다./oidc/.well-known/oauth-authorization-server 경로에서 제공됩니다.at_hash 클레임이 제거되었습니다.typ: "JWT" 헤더를 포함하지 않습니다. OpenID Connect는 ID 토큰을 JWT로 정의하며, 클라이언트가 이 헤더를 검증할 필요가 없습니다.사용자 지정 ID 토큰 검증에 대한 조치. 공식 Logto SDK를 사용할 경우 별도 조치가 필요 없습니다. 자체적으로 커스텀 ID 토큰 검증을 구현한 경우, at_hash 클레임 및 typ: "JWT" 헤더가 없을 수 있도록 업데이트하십시오.
Logto는 이제 Koa에서 가장 활발히 유지·보수되는 버전인 Koa 3에서 실행됩니다. 모든 엔드포인트, OIDC 플로우, API 응답은 기존과 동일하게 동작하여 기대되는 동작 변화는 없습니다.
identities 사용자 scope가 필요합니다(다른 소셜/엔터프라이즈 SSO ID 엔드포인트와 일관성).rediss 프로토콜을 사용하는 Redis 클러스터 연결에 대해 TLS가 올바르게 활성화됩니다.jose 의존성을 제거하여, 앞으로 이 패키지를 가져오지 않아도 커넥터 설치에 포함되지 않습니다.조치 필요 — OIDC 공급자 SSRF 방어. 아웃바운드 요청 보안이 강화되었으며, SSRF 보호가 기본적으로 활성화됩니다. 신뢰할 수 있는 Relying Party 엔드포인트에 내부 네트워크로 접근해야 하는 셀프 호스팅 배포 환경에서는 Logto를 시작하기 전에 OIDC_PROVIDER_SSRF_PROTECTION_DISABLED=true를 설정하세요. 그렇지 않으면 변수를 설정하지 않아도 됩니다.
데이터베이스 마이그레이션 필요. 이 릴리스에는 커스텀 도메인 검증 파일, 내부 인덱스 및 테이블을 위한 스키마 변경이 포함되어 있습니다. 업그레이드 후, 새 버전을 시작하기 전에 데이터베이스 alter 명령(@logto/cli/core 이미지의 npm run alteration deploy 또는 logto db alteration deploy)을 실행하세요. 자세한 내용은 업그레이드 가이드를 참고하세요.
커스텀 ID 토큰 검증. 위 node-oidc-provider v9 섹션에서 at_hash 및 typ 헤더 변경 내용을 참고하십시오.
이번 릴리스에 기여해주신 커뮤니티 멤버 여러분께 큰 감사를 드립니다:
Grant.LimitExceeded 웹훅 이벤트(#9230) 및 트랜잭셔널 패스워드리스 커넥터 교체(#9277)rediss TLS 수정(#9144)업그레이드를 준비했나요? 단계별 안내는 업그레이드 가이드를 확인하세요.
전체 변경 내역은 GitHub 릴리스 페이지를 참고하세요.