본문으로 건너뛰기

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 커넥터 및 템플릿 설정

  1. 콘솔 > 커넥터 > 이메일 및 SMS 커넥터로 이동하세요.
  2. 적합한 SMS 커넥터(Twilio, SMS Aero 등)를 선택하세요.
  3. 연결 파라미터를 설정하세요.
  4. MFA 전용 사용 유형으로 SMS 템플릿을 설정하세요.
    • MFA 인증을 위한 MfaVerification usageType
    • MFA 바인딩을 위한 BindMFA usageType
  5. 메시지 전송이 정상적으로 되는지 커넥터 기능을 테스트하세요.
  6. 공급자별 설정 방법은 SMS 커넥터를 참고하세요.

2단계: MFA용 SMS 활성화

  1. 콘솔 > 다단계 인증으로 이동하세요.
  2. "SMS 인증 코드" 요소를 활성화하세요. SMS MFA는 다른 MFA 요소(TOTP, 패스키, 백업 코드 등)와 함께 사용하는 것을 권장하여 단일 요소 의존도를 줄이세요.
  3. 원하는 MFA 정책(필수 vs. 선택)을 설정하세요.
  4. 설정 변경 사항을 저장하세요.
중요한 사용 시 고려사항:
  1. 로그인 방식 제한: SMS 인증 코드는 로그인 방식(1FA)과 MFA 요소(2FA)로 동시에 사용할 수 없습니다. SMS 구현당 하나의 인증 흐름만 선택하세요.

  2. 회원가입 방식 호환성: SMS 인증 코드는 회원가입 방식과 MFA에 동시에 사용할 수 있습니다. Logto는 선택한 MFA 정책에 따라 동일한 휴대폰 번호에 대해 SMS 인증을 두 번 요구하지 않도록 최적화된 가입 흐름을 제공합니다.

  3. 비밀번호 재설정 호환성: 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 인증 코드 + 백업 코드

SMS MFA 설정 흐름 1-1

회원가입: 이메일 + 이메일 인증 코드 + 비밀번호 | MFA: `SMS 인증 코드 + 패스키 + 인증기 앱 OTP

  • 백업 코드`
SMS MFA 설정 흐름 1-2

시나리오 2: 휴대폰 번호가 회원가입 식별자로 인증된 경우

휴대폰 번호가 회원가입 식별자이고, 사용자가 가입 시 이미 SMS 코드로 인증했다면, 시스템이 해당 번호를 자동으로 MFA 요소로 바인딩합니다 — 추가 인증이 필요하지 않습니다.

예시:

회원가입: 휴대폰 번호 + SMS 인증 코드 + 비밀번호 | MFA: SMS 인증 코드 + 백업 코드

SMS MFA 설정 흐름 2

시나리오 3: 휴대폰 번호 인증 완료, 주요 요소가 여러 개인 경우

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

예시:

회원가입: 휴대폰 번호 + SMS 인증 코드 + 비밀번호 | MFA: SMS 인증 코드 + 패스키 + 인증기 앱 OTP + 백업 코드

SMS MFA 설정 흐름 3

SMS MFA 인증 흐름 (SMS MFA verification flows)

SMS MFA가 활성화된 사용자가 로그인할 때, 1차 인증(1FA)을 성공적으로 완료하면 두 번째 인증 요소(2FA)로 SMS 인증 코드를 사용하여 본인 확인을 하라는 안내가 표시됩니다.

여러 MFA 요소가 등록되어 있다면, 사용자는 설정된 요소 중에서 선택할 수 있습니다. 시스템은 MFA 설정에서 지정한 우선순위에 따라 먼저 안내할 MFA 요소를 결정합니다.

예시:

로그인: 이메일 주소 + 비밀번호 | MFA: SMS 인증 코드(마지막 사용) / 인증기 앱 OTP / 백업 코드

SMS MFA 인증 흐름

오류 처리 (Error Handling)

  1. 휴대폰 번호 미연결

    • 오류 코드: session.mfa.mfa_factor_not_enabled
    • 처리 방법: 먼저 휴대폰 번호를 바인딩하도록 안내
  2. 인증 코드 불일치

    • 오류 코드: verification_code.code_mismatch
    • 처리 방법: 재입력 안내, 재시도 횟수 제한
  3. 인증 코드 만료

    • 오류 코드: verification_code.expired
    • 처리 방법: 새 인증 코드 요청 안내
  4. 전송 속도 제한 초과

    • 오류 코드: connector.rate_limit_exceeded
    • 처리 방법: 대기 시간 안내, 재전송 제한