Logto 제품 업데이트
Logto v1.41.0 은 앱 수준 액세스 제어, 비밀번호 만료 정책, 주요 계정 센터 업그레이드, 구성 가능한 사용자 이름 및 인증 코드 규칙, 더 안전한 메시지 전달, 그리고 프로토콜/보안 강화 라운드를 제공합니다.
Logto v1.41.0 은 앱 수준 액세스 제어, 비밀번호 만료 정책, 주요 계정 센터 업그레이드, 구성 가능한 사용자 이름 및 인증 코드 규칙, 더 안전한 메시지 전달, 그리고 프로토콜/보안 강화 라운드를 제공합니다.
Logto v1.41.0 은 제어 및 보안에 중점을 둔 릴리스입니다. 이 버전은 팀이 각 앱에 누가 접근할 수 있는지 더 세밀하게 결정할 수 있는 방법, 더 완벽한 비밀번호 라이프사이클 제어, 그리고 최종 사용자를 위한 훨씬 더 강력한 계정 센터를 제공합니다. 또한 인증 코드 전달, 사용자 이름 규칙, SAML/OIDC 처리, MFA 재사용 방지, 셀프 호스팅 업그레이드 경로 역시 강화되었습니다. 주요 업데이트는 다음과 같습니다.
이제 Logto 에서 애플리케이션에 대한 접근을 직접 제한할 수 있습니다. 액세스 규칙은 특정 사용자, 사용자 역할, 조직, 조직 역할을 대상으로 할 수 있습니다.
사용자가 설정한 규칙을 충족하지 않으면, Logto 는 요청을 계속 진행하는 대신 액세스 거부 페이지로 로그인 또는 앱 접근 흐름을 차단합니다. 이로써 앱 배포, 고객별 접근 제어, 내부 도구 보호, 조직 범위 접근 관리를 더 손쉽게 처리할 수 있으며 전체 결정을 애플리케이션 코드에 미루지 않아도 됩니다.
자세한 설정 방법은 앱 수준 접근 제어 문서 를 참고하세요.
콘솔에서 이제 보안 > 비밀번호 정책에서 테넌트별 비밀번호 만료를 지원합니다.
관리자는 비밀번호 만료를 활성화하고, 비밀번호가 유효한 일수를 설정하며, 사용자 상세 페이지에서 특정 사용자의 비밀번호를 수동으로 만료시킬 수 있습니다. 비밀번호가 만료되면, 사용자는 비밀번호 로그인 전에 설정한 복구 방법을 통해 비밀번호를 재설정해야 합니다.
SSO 및 패스키 로그인의 경우 영향받지 않습니다. 등록된 비밀번호 변경 타임스탬프가 없는 기존 사용자는 정책 활성 시점을 기준으로 삼아 유효기간 전체를 보장하므로 즉시 만료되지 않습니다.
계정 센터는 최종 사용자를 위한 완전한 셀프 서비스 신원 관리 면으로 계속 발전 중입니다.
이번 릴리스에서 세션 관리, 연결된 타사 앱 리뷰, 프로필 관리, 아바타 업로드, 프로필 수집 회원가입 시 아바타 업로드, 독립적인 패스키 관리, 그리고 패스키 로그인 프롬프트에 대한 사용자 설정이 추가되었습니다.
계정 센터 프로필 페이지, 회원가입 시 커스텀 프로필 필드, 아바타 업로드 엔드포인트도 개발 기능 게이트에서 해제되었습니다.
몇 가지 주요 수정 사항도 반영되었습니다:
테넌트 수준 사용자명 규칙은 이제 콘솔 > 로그인 경험 > 회원가입 및 로그인 > 고급 옵션에서 설정할 수 있습니다.
정책은 대소문자 구분 여부, 길이 제한, 허용 문자 유형을 포함합니다. 이 정책은 회원가입, 프로필 채우기, 계정 센터, 계정 API, /me 등에서 사용자명 작성 전반에 강제 적용됩니다.
대소문자 구분 없는 사용자명으로 전환 시, Logto 는 대소문자만 다른 기존 사용자명이 있는지 확인 후 충돌 해결 전까지 정책 변경을 막아 안전을 확보합니다. OIDC preferred_username 클레임은 profile.preferredUsername이 없을 때 사용자의 username으로 대체됩니다.
인증 코드 제어 역시 콘솔 보안 설정으로 이동되었습니다. 관리자가 인증 코드 만료 시간 및 최대 재시도 횟수를 설정할 수 있습니다.
Logto 는 이메일/SMS 인증 및 초대 발송 경로(Experience, MFA, 계정 API, 관리 API, /me, 조직 초대, 레거시 인터랙션 API 포함) 전체에서 수신자별 시스템 전송 속도 제한을 적용합니다.
전송이 제한될 경우, Logto 는 콘솔 웹훅 설정에서 선택할 수 있는 Message.RateLimited 웹훅 이벤트를 발송합니다.
등록이 비활성화된 경우, 인증 코드가 미등록 수신자에게도 전달되지 않아 계정 식별 위험이 줄어듭니다.
조직 API 리소스 토큰에서, 액세스 토큰 JWT 커스터마이저는 이제 대상 조직의 id, name, description, customData를 담은 context.organization을 전달받습니다.
이는 모든 조직 매핑을 하나하나 토큰에 넣지 않고도 조직별 클레임 추가를 쉽게 만듭니다.
더불어 몇 가지 API 개선도 이루어졌습니다:
POST /api/applications/:applicationId/roles가 이제 멱등적 처리됩니다. 기존 역할 ID는 무시되어 422 application.role_exists를 반환하지 않습니다.{ roleIds, addedRoleIds } 구조로 201를 반환, 사용자 역할 할당 API와 일치합니다.이번 릴리스에는 집중적인 프로토콜 및 보안 수정이 포함됩니다:
samlify 버전이 ^2.13.0으로 업그레이드되어, 생성된 SAML assertion의 XML 이스케이프가 개선되었습니다.400 invalid_request로 응답합니다.호환성 및 스토리지 문제도 해결되었습니다: 구식 사파리/ iOS 15 에서 지원되지 않는 regex lookbehind 문법으로 인한 시작 시 크래시가 해결되었고, OIDC 엔터프라이즈 커넥터에서 JSON-only만 응답하는 공급자도 정상적으로 discovery 환경설정을 가져올 수 있습니다. 맞춤형 UI 자산 Azure Blob 전송 실패는 재시도 가능한 스토리지 다운로드 오류로 매핑됩니다.
이번 릴리스는 다음과 같은 커넥터 기능이 추가 및 개선되었습니다:
samlify 및 더 엄격한 반환 타입을 반영한 SAML 커넥터 업그레이드v1.41.0 을 위해 데이터베이스 마이그레이션이 필요합니다. 이 릴리스에는 비밀번호 만료, 사용자명 정책, 인증 코드 정책, 메시지 속도 감시 인덱스, 계정 센터 기본값, 서비스 로그 인덱스에 대한 스키마 변경이 포함됩니다.
업그레이드 후 새 버전 실행 전에 데이터베이스 변경 명령을 실행해야 합니다. 자세한 내용은 업그레이드 가이드 를 참고하세요.
이제 CASE_SENSITIVE_USERNAME 환경 변수는 더 이상 권장되지 않습니다. 런타임 오버라이드로는 작동하지만, 사용자명 대소문자 구분은 새 사용자명 정책을 통해 각 테넌트별로 설정해야 하며, 환경 변수는 다음 메이저 버전에서 제거될 예정입니다.
업그레이드할 준비가 되었나요? 업그레이드 가이드 를 참고해 단계별 지침을 확인하세요.
변경사항 전체 목록은 GitHub 릴리스 페이지 에서 확인할 수 있습니다.