MFA용 SMS 인증 (SMS verification for MFA)
Logto는 SMS 기반 다단계 인증 (MFA) 기능을 지원하여, 사용자의 등록된 휴대폰 번호로 일회성 인증 코드를 전송함으로써 계정 보안을 강화합니다. SMS MFA는 두 번째 인증 요소로 사용되며, 다른 MFA 요소(TOTP, 패스키, 백업 코드 등)와 결합하여 유연한 2단계 인증 옵션을 제공합니다.
개념 (Concepts)
SMS 인증(휴대폰 번호 인증이라고도 함)은 가장 접근성이 높은 MFA 방법 중 하나입니다. 이는 휴대폰의 보편성을 활용하여 임시 일회성 인증 코드를 문자 메시지로 사용자의 기기에 직접 전달합니다. 별도의 소프트웨어 설치가 필요한 앱 기반 인증기와 달리, SMS MFA는 모든 모바일 기기에 기본적으로 제공되는 메시징 인프라를 활용하므로, 별도의 설정 없이 즉시 사용자가 이용할 수 있습니다.
MFA용 SMS 인증 설정하기 (Configure SMS verification for MFA)
1단계: SMS 커넥터 및 템플릿 설정
- 콘솔 > 커넥터 > 이메일 및 SMS 커넥터로 이동하세요.
- 적합한 SMS 커넥터(Twilio, SMS Aero 등)를 선택하세요.
- 연결 파라미터를 설정하세요.
- MFA 전용 사용 유형으로 SMS 템플릿을 설정하세요.
- MFA 인증을 위한
MfaVerification
usageType - MFA 바인딩을 위한
BindMFA
usageType
- MFA 인증을 위한
- 메시지 전송이 정상적으로 되는지 커넥터 기능을 테스트하세요.
- 공급자별 설정 방법은 SMS 커넥터를 참고하세요.
2단계: MFA용 SMS 활성화
- 콘솔 > 다단계 인증으로 이동하세요.
- "SMS 인증 코드" 요소를 활성화하세요. SMS MFA는 다른 MFA 요소(TOTP, 패스키, 백업 코드 등)와 함께 사용하는 것을 권장하여 단일 요소 의존도를 줄이세요.
- 원하는 MFA 정책(필수 vs. 선택)을 설정하세요.
- 설정 변경 사항을 저장하세요.
-
로그인 방식 제한: SMS 인증 코드는 로그인 방식(1FA)과 MFA 요소(2FA)로 동시에 사용할 수 없습니다. SMS 구현당 하나의 인증 흐름만 선택하세요.
-
회원가입 방식 호환성: SMS 인증 코드는 회원가입 방식과 MFA에 동시에 사용할 수 있습니다. Logto는 선택한 MFA 정책에 따라 동일한 휴대폰 번호에 대해 SMS 인증을 두 번 요구하지 않도록 최적화된 가입 흐름을 제공합니다.
-
비밀번호 재설정 호환성: SMS 인증 코드는 비밀번호 찾기와 MFA에 동시에 사용할 수 있지만, 이 조합은 권장하지 않습니다. 이 구성은 사용자가 비밀번호 찾기 SMS 인증으로 비밀번호를 재설정한 후, 새 비밀번호로 1차 인증(1FA)을 하고 동일한 SMS 방식으로 MFA 인증을 할 수 있으므로 MFA 보안 효과가 저하됩니다.
SMS MFA 설정 흐름 (SMS MFA setup flows)
MFA 설정 안내는 사용자 등록 중 또는 로그인 후에 나타날 수 있으며, 이는 설정한 MFA 정책에 따라 달라집니다.
SMS MFA 설정 흐름에 영향을 주는 요소는 다음과 같습니다:
- MFA 주요 요소의 수: 주요 요소가 여러 개라면, 사용자가 하나를 선택하여 설정해야 합니다. 주요 요소란 백업 코드를 제외한 MFA 방식입니다.
- 백업 코드 활성화 여부: 활성화된 경우, 주요 MFA 요소 설정 후 백업 코드가 자동 생성되며, 사용자는 이를 저장하라는 안내를 받습니다.
- 회원가입 식별자 구성: 휴대폰 번호가 회원가입 식별자로 사용되고, 사용자가 가입 시 이미 SMS 인증 코드로 인증했다면, 시스템이 해당 번호를 자동으로 MFA 요소로 바인딩하며 추가 인증이 필요하지 않습니다. 다른 주요 요소가 있다면 UI에 "다른 2단계 인증 추가" 옵션이 표시되며(사용자는 건너뛸 수 있음), MFA가 활성화되었음을 명확히 안내합니다.
- 기존 사용자 데이터: 기존 사용자가 로그인 후 MFA를 설정할 때는 먼저 1차 인증을 완료한 뒤 MFA 설정을 진행해야 합니다. 계정에 이미 인증된 주요 휴대폰 번호가 있다면, 위 회원가입 식별자와 동일하게 동작합니다.
아래는 세 가지 일반적인 SMS MFA 바인딩 시나리오입니다.
시나리오 1: 휴대폰 번호를 오직 MFA에만 사용하는 경우 (일반 흐름)
휴대폰 번호가 회원가입 식별자가 아니고, 오직 MFA용으로만 사용하는 경우 표준 설정 순서를 따릅니다:
- SMS MFA 요소가 하나뿐이라면 해당 요소의 설정 UI를 바로 표시합니다.
- 주요 MFA 요소가 여러 개라면 "MFA 설정" 목록 페이지를 보여주고, 사용자가 설정할 요소를 선택하게 합니다.
예시:
회원가입: 이메일 + 이메일 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 백업 코드
이메일 + 이메일 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 백업 코드

회원가입: 이메일 + 이메일 인증 코드 + 비밀번호
| MFA: `SMS 인증 코드 + 패스키 + 인증기 앱 OTP
- 백업 코드`
이메일 + 이메일 인증 코드 + 비밀번호
| MFA: `SMS 인증 코드 + 패스키 + 인증기 앱 OTP
시나리오 2: 휴대폰 번호가 회원가입 식별자로 인증된 경우
휴대폰 번호가 회원가입 식별자이고, 사용자가 가입 시 이미 SMS 코드로 인증했다면, 시스템이 해당 번호를 자동으로 MFA 요소로 바인딩합니다 — 추가 인증이 필요하지 않습니다.
예시:
회원가입: 휴대폰 번호 + SMS 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 백업 코드
휴대폰 번호 + SMS 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 백업 코드

시나리오 3: 휴대폰 번호 인증 완료, 주요 요소가 여러 개인 경우
휴대폰 번호가 회원가입 시(회원가입 식별자로) 인증되었으나, 계정에 여러 주요 MFA 요소(SMS, 패스키, 인증기 앱 등)가 있다면, UI에서 "다른 2단계 인증 추가" 안내가 표시됩니다. 사용자는 추가 요소를 선택하거나 건너뛸 수 있으며, 안내를 통해 이미 MFA가 활성화되었음을 알 수 있습니다.
예시:
회원가입: 휴대폰 번호 + SMS 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 패스키 + 인증기 앱 OTP + 백업 코드
휴대폰 번호 + SMS 인증 코드 + 비밀번호
| MFA: SMS 인증 코드 + 패스키 + 인증기 앱 OTP + 백업 코드

SMS MFA 인증 흐름 (SMS MFA verification flows)
SMS MFA가 활성화된 사용자가 로그인할 때, 1차 인증(1FA)을 성공적으로 완료하면 두 번째 인증 요소(2FA)로 SMS 인증 코드를 사용하여 본인 확인을 하라는 안내가 표시됩니다.
여러 MFA 요소가 등록되어 있다면, 사용자는 설정된 요소 중에서 선택할 수 있습니다. 시스템은 MFA 설정에서 지정한 우선순위에 따라 먼저 안내할 MFA 요소를 결정합니다.
예시:
로그인: 이메일 주소 + 비밀번호
| MFA: SMS 인증 코드(마지막 사용) / 인증기 앱 OTP / 백업 코드
이메일 주소 + 비밀번호
| MFA: SMS 인증 코드(마지막 사용) / 인증기 앱 OTP / 백업 코드

오류 처리 (Error Handling)
-
휴대폰 번호 미연결
- 오류 코드:
session.mfa.mfa_factor_not_enabled
- 처리 방법: 먼저 휴대폰 번호를 바인딩하도록 안내
- 오류 코드:
-
인증 코드 불일치
- 오류 코드:
verification_code.code_mismatch
- 처리 방법: 재입력 안내, 재시도 횟수 제한
- 오류 코드:
-
인증 코드 만료
- 오류 코드:
verification_code.expired
- 처리 방법: 새 인증 코드 요청 안내
- 오류 코드:
-
전송 속도 제한 초과
- 오류 코드:
connector.rate_limit_exceeded
- 처리 방법: 대기 시간 안내, 재전송 제한
- 오류 코드: