다음을 통해 공유


Azure AD B2C 사용자 지정 정책에서 일회성 암호 기술 프로필 정의

중요합니다

2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.

비고

Azure Active Directory B2C에서 사용자 지정 정책은 주로 복잡한 시나리오를 해결하기 위해 설계되었습니다. 대부분의 시나리오에서 기본 제공 사용자 흐름을 사용하는 것이 좋습니다. 아직 수행하지 않았다면 Active Directory B2C에서 사용자 지정 정책 시작하기에서 사용자 지정 정책 스타터 팩에 대해 알아봅니다.

Azure AD B2C(Azure Active Directory B2C)는 일회성 암호의 생성 및 확인을 관리하기 위한 지원을 제공합니다. 기술 프로필을 사용하여 코드를 생성한 다음 나중에 해당 코드를 확인합니다.

일회성 암호 기술 프로필은 코드 확인 중에 오류 메시지를 반환할 수도 있습니다. 유효성 검사 기술 프로필을 사용하여 일회성 암호와의 통합을 디자인합니다. 유효성 검사 기술 프로필은 일회성 암호 기술 프로필을 호출하여 코드를 확인합니다. 유효성 검사 기술 프로필은 사용자 경험을 계속하기 전에 사용자가 제공한 데이터의 유효성을 검사합니다. 유효성 검사 기술 프로필을 사용하면 자체 어설션된 페이지에 오류 메시지가 표시됩니다.

프로토콜

Protocol 요소의 Name 특성을 .로 설정Proprietary해야 합니다. 처리기 특성은 Azure AD B2C에서 사용되는 프로토콜 처리기 어셈블리의 정규화된 이름을 포함해야 합니다.

Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

다음 예제에서는 일회성 암호 기술 프로필을 보여줍니다.

<TechnicalProfile Id="VerifyCode">
  <DisplayName>Validate user input verification code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  ...

코드 생성

이 기술 프로필의 첫 번째 모드는 코드를 생성하는 것입니다. 다음은 이 모드에 대해 구성할 수 있는 옵션입니다. 생성된 코드와 시도는 세션 내에서 추적됩니다.

입력 클레임

InputClaims 요소에는 일회성 암호 프로토콜 공급자에게 보내는 데 필요한 클레임 목록이 포함되어 있습니다. 클레임 이름을 아래에 정의된 이름에 매핑할 수도 있습니다.

클레임 참조 ID 필수 설명
식별자 나중에 코드를 확인해야 하는 사용자를 식별하는 식별자입니다. 일반적으로 전자 메일 주소 또는 전화 번호와 같이 코드가 전달되는 대상의 식별자로 사용됩니다.

InputClaimsTransformations 요소에는 일회성 암호 프로토콜 공급자로 보내기 전에 입력 클레임을 수정하거나 새 클레임을 생성하는 데 사용되는 InputClaimsTransformation 요소 컬렉션이 포함될 수 있습니다.

출력 클레임

OutputClaims 요소에는 일회성 암호 프로토콜 공급자가 생성한 클레임 목록이 포함되어 있습니다. 클레임 이름을 아래에 정의된 이름에 매핑할 수도 있습니다.

클레임 참조 ID 필수 설명
otp생성 세션이 Azure AD B2C에서 관리되는 생성된 코드입니다.

OutputClaimsTransformations 요소에는 출력 클레임을 수정하거나 새 클레임을 생성하는 데 사용되는 OutputClaimsTransformation 요소의 컬렉션이 포함될 수 있습니다.

메타데이터

다음 설정을 사용하여 코드 생성 모드를 구성할 수 있습니다.

특성 필수 설명
수술 수행할 작업입니다. 가능한 값: GenerateCode.
코드만료인초 아니오 코드가 만료될 때까지의 시간(초)입니다. 최소: 60; 최대값: 1200; 기본값: 600. 코드가 제공될 때마다(또는 새 코드를 사용하는 ReuseSameCode동일한 코드) 코드 만료가 연장됩니다. 이 시간은 재시도 시간 제한을 설정하는 데도 사용됩니다(최대 시도에 도달하면 이 시간이 만료될 때까지 사용자가 새 코드를 가져오려고 시도하지 못하도록 잠깁니다.)
코드 길이 아니오 코드의 길이입니다. 기본값은 6입니다.
문자 집합 아니오 정규식에 사용할 수 있는 형식이 지정된 코드의 문자 집합입니다. 예: a-z0-9A-Z. 기본값은 0-9입니다. 문자 집합에는 지정된 집합에 최소 10개의 다른 문자가 포함되어야 합니다.
재시도 횟수 아니오 코드가 잘못된 것으로 간주되기 전의 확인 시도 횟수입니다. 기본값은 5입니다. 예를 들어 NumRetryAttempts를 2로 설정하면 총 2회 시도(첫 번째 + 1회 재시도)만 허용됩니다. 세 번째 시도의 경우 코드가 올바른지 여부에 관계없이 도달한 최대 시도를 throw합니다.
NumCodeGenerationAttempts 횟수 아니오 식별자당 최대 코드 생성 시도 횟수입니다. 기본값은 지정하지 않은 경우입니다 10 .
ReuseSameCode 아니오 지정된 코드가 만료되지 않았고 여전히 유효한 경우 새 코드를 생성하지 않고 동일한 코드를 제공해야 하는지 여부입니다. 기본값은 false입니다.

예시

다음 예제 TechnicalProfile 는 코드를 생성하는 데 사용됩니다.

<TechnicalProfile Id="GenerateCode">
  <DisplayName>Generate Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GenerateCode</Item>
    <Item Key="CodeExpirationInSeconds">600</Item>
    <Item Key="CodeLength">6</Item>
    <Item Key="CharacterSet">0-9</Item>
    <Item Key="NumRetryAttempts">5</Item>
    <Item Key="NumCodeGenerationAttempts">10</Item>
    <Item Key="ReuseSameCode">false</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpGenerated" />
  </OutputClaims>
</TechnicalProfile>

코드 확인

이 기술 프로필의 두 번째 모드는 코드를 확인하는 것입니다. 다음은 이 모드에 대해 구성할 수 있는 옵션입니다.

입력 클레임

InputClaims 요소에는 일회성 암호 프로토콜 공급자에게 보내는 데 필요한 클레임 목록이 포함되어 있습니다. 클레임 이름을 아래에 정의된 이름에 매핑할 수도 있습니다.

클레임 참조 ID 필수 설명
식별자 이전에 코드를 생성한 사용자를 식별하는 식별자입니다. 일반적으로 전자 메일 주소 또는 전화 번호와 같이 코드가 전달되는 대상의 식별자로 사용됩니다.
otpToVerify 사용자가 제공한 확인 코드입니다.

InputClaimsTransformations 요소에는 일회성 암호 프로토콜 공급자로 보내기 전에 입력 클레임을 수정하거나 새 클레임을 생성하는 데 사용되는 InputClaimsTransformation 요소 컬렉션이 포함될 수 있습니다.

출력 클레임

이 프로토콜 공급자의 코드 확인 중에는 출력 클레임이 제공되지 않습니다.

OutputClaimsTransformations 요소에는 출력 클레임을 수정하거나 새 클레임을 생성하는 데 사용되는 OutputClaimsTransformation 요소의 컬렉션이 포함될 수 있습니다.

메타데이터

다음 설정을 사용하여 인증 모드를 코딩할 수 있습니다.

특성 필수 설명
수술 수행할 작업입니다. 가능한 값: VerifyCode.

UI 요소

다음 메타데이터를 사용하여 코드 확인 실패 시 표시되는 오류 메시지를 구성할 수 있습니다. 메타데이터는 자체 어설션된 기술 프로필에서 구성해야 합니다. 오류 메시지를 지역화수 있습니다.

특성 필수 설명
UserMessageIfSessionDoesNotExist 아니오 코드 확인 세션이 만료된 경우 사용자에게 표시할 메시지입니다. 코드가 만료되었거나 지정된 식별자에 대해 코드가 생성되지 않은 경우입니다.
UserMessageIfMaxRetryAttempted 아니오 허용되는 최대 확인 시도를 초과한 경우 사용자에게 표시할 메시지입니다.
UserMessageIfMaxNumberOfCodeGenerated 아니오 코드 생성이 허용되는 최대 시도 횟수를 초과한 경우 사용자에게 표시할 메시지입니다.
UserMessageIfInvalidCode 아니오 잘못된 코드를 제공한 경우 사용자에게 표시할 메시지입니다.
UserMessageIfVerificationFailedRetryAllowed 아니오 잘못된 코드를 제공하고 사용자가 올바른 코드를 제공할 수 있는 경우 사용자에게 표시할 메시지입니다.
UserMessageIfSessionConflict 아니오 코드를 확인할 수 없는 경우 사용자에게 표시할 메시지입니다.

예시

다음 예제 TechnicalProfile 는 코드를 확인하는 데 사용됩니다.

<TechnicalProfile Id="VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
    <InputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpToVerify" />
  </InputClaims>
</TechnicalProfile>

다음 단계

사용자 지정 전자 메일 확인과 함께 일회성 암호 기술 프로필을 사용하는 예제는 다음 문서를 참조하세요.

  • Azure Active Directory B2C의 사용자 지정 전자 메일 확인(Mailjet, SendGrid)