MFA용 SMS 인증 (SMS verification for MFA)
Logto는 SMS 기반 다단계 인증 (MFA) 기능을 지원하여, 사용자의 등록된 휴대폰 번호로 일회용 인증 코드를 전송함으로써 계정 보안을 강화합니다. SMS MFA는 두 번째 인증 요소로 사용되며, 다른 MFA 요소(TOTP, 패스키, 백업 코드 등)와 결합하여 유연한 2단계 인증 옵션을 제공합니다.
개념
SMS 인증(휴대폰 번호 인증이라고도 함)은 가장 접근성이 높은 MFA 방법 중 하나입니다. 이는 휴대폰의 보편성을 활용하여 임시 일회용 인증 코드를 문자 메시지로 사용자의 기기에 직접 전달합니다. 별도의 소프트웨어 설치가 필요한 앱 기반 인증기와 달리, SMS MFA는 모든 모바일 기기에 기본적으로 제공되는 메시징 인프라를 활용하므로, 별도의 설정 없이 즉시 사용자가 이용할 수 있습니다.
MFA용 SMS 인증 설정하기
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 정책(필수 / 선택)을 설정하세요.
- 설정 변경 사항을 저장하세요.
-
로그인 방식 제한: SMS 인증 코드는 로그인 방식(1FA)과 MFA 요소(2FA)로 동시에 사용할 수 없습니다. SMS 구현당 하나의 인증 플로우만 선택하세요.
-
회원가입 방식 호환성: SMS 인증 코드는 회원가입 방식과 MFA에 동시에 사용할 수 있습니다. Logto는 선택한 MFA 정책에 따라 동일한 휴대폰 번호에 대해 두 번 SMS 인증을 요구하지 않도록 최적화된 가입 플로우를 제공합니다.
-
비밀번호 재설정 호환성: SMS 인증 코드는 비밀번호 찾기와 MFA에 동시에 사용할 수 있지만, 이 조합은 권장되지 않습니다. 이 설정은 MFA 보안 효과를 저하시킬 수 있습니다. 사용자가 비밀번호 찾기 SMS 인증으로 비밀번호를 재설정한 후, 새 비밀번호로 1차 인증(1FA)을 하고 동일한 SMS 방식으로 MFA 인증을 할 수 있기 때문입니다.
SMS MFA 설정 플로우
MFA 설정 안내는 사용자 회원가입 시 또는 로그인 후에 표시될 수 있으며, 이는 설정한 MFA 정책에 따라 달라집니다. 사용자는 계정 설정 페이지에서도 SMS 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가 활성화된 사용자가 로그인할 때, 1차 인증(1FA)을 성공적으로 완료하면, 두 번째 인증 요소(2FA)로 SMS 인증 코드를 입력하라는 안내가 표시됩니다.
여러 MFA 요소가 설정되어 있다면, 사용자는 구성된 요소 중에서 선택할 수 있습니다. 시스템은 MFA 설정에서 지정한 우선순위에 따라 먼저 안내할 MFA 요소를 결정합니다.
예시:
로그인: 이메일 주소 + 비밀번호
| MFA: SMS 인증 코드(마지막 사용) / 인증기 앱 OTP / 백업 코드
이메일 주소 + 비밀번호
| MFA: SMS 인증 코드(마지막 사용) / 인증기 앱 OTP / 백업 코드

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