중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
비고
Azure Active Directory B2C에서 사용자 지정 정책은 주로 복잡한 시나리오를 해결하기 위해 설계되었습니다. 대부분의 시나리오에서 기본 제공 사용자 흐름을 사용하는 것이 좋습니다. 아직 수행하지 않았다면 Active Directory B2C에서 사용자 지정 정책 시작하기에서 사용자 지정 정책 스타터 팩에 대해 알아봅니다.
지역화 요소를 사용하면 사용자 경험에 대한 정책에서 여러 로캘 또는 언어를 지원할 수 있습니다. 정책의 지역화 지원을 통해 다음을 수행할 수 있습니다.
- 정책에서 지원되는 언어의 명시적 목록을 설정하고 기본 언어를 선택합니다.
- 언어별 문자열 및 컬렉션을 제공합니다.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedResources Id="api.localaccountsignup.es">
...
지역화 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
활성화됨 | 아니오 | 가능한 값은 true 또는 false 입니다. |
지역화 요소에는 다음 XML 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
지원되는 언어 | 1:엔 | 지원되는 언어 목록입니다. |
지역화된 리소스 | 0:엔 | 지역화된 리소스 목록입니다. |
지원되는 언어
SupportedLanguages 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
기본 언어 | 예 | 지역화된 리소스의 기본값으로 사용할 언어입니다. |
병합 동작 | 아니오 | 동일한 식별자를 사용하여 부모 정책에 있는 ClaimType과 함께 병합되는 값의 열거형 값입니다. 기본 정책에 지정된 클레임을 덮어쓸 때 이 특성을 사용합니다. 가능한 값은 Append , Prepend 또는 ReplaceAll 입니다. 값은 Append 부모 정책에 지정된 컬렉션의 끝에 있는 데이터 컬렉션을 추가하도록 지정합니다. 값은 Prepend 부모 정책에 지정된 컬렉션 앞에 있는 데이터 컬렉션을 추가해야 하며, 이 값은 ReplaceAll 현재 정책에 정의된 데이터를 대신 사용하여 부모 정책에 정의된 데이터 컬렉션을 무시해야 하므로 지정합니다. |
지원되는 언어
SupportedLanguages 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
지원언어 | 1:엔 | RFC 5646 - 언어 식별 태그당 언어 태그를 준수하는 콘텐츠를 표시합니다. |
지역화된 리소스
LocalizedResources 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
아이디 | 예 | 지역화된 리소스를 고유하게 식별하는 데 사용되는 식별자입니다. |
LocalizedResources 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
지역화된 컬렉션 | 0:엔 | 다양한 문화권에서 전체 컬렉션을 정의합니다. 컬렉션은 다양한 문화권에 대해 다양한 수의 항목과 다른 문자열을 가질 수 있습니다. 컬렉션의 예로 클레임 형식에 표시되는 열거형이 있습니다. 예를 들어 국가/지역 목록은 드롭다운 목록에서 사용자에게 표시됩니다. |
LocalizedStrings (로컬라이즈된 문자열) | 0:엔 | 컬렉션에 표시되는 문자열을 제외한 모든 문자열을 다양한 문화권에서 정의합니다. |
지역화된 컬렉션
LocalizedCollections 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
현지화된 컬렉션 | 1:엔 | 지원되는 언어 목록입니다. |
현지화된 컬렉션
LocalizedCollection 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
엘리먼트 타입 | 예 | 정책 파일에서 ClaimType 요소 또는 사용자 인터페이스 요소를 참조합니다. |
엘리멘트 ID | 예 | ElementType이 ClaimType으로 설정된 경우 사용되는 ClaimsSchema 섹션에 이미 정의된 클레임 형식에 대한 참조를 포함하는 문자열입니다. |
타겟컬렉션 | 예 | 대상 컬렉션입니다. |
LocalizedCollection 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
항목 | 0:엔 | 드롭다운의 값과 같이 사용자가 사용자 인터페이스에서 클레임에 대해 선택할 수 있는 옵션을 정의합니다. |
Item 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
문자 메시지 | 예 | 이 옵션에 대한 사용자 인터페이스에서 사용자에게 표시해야 하는 사용자에게 친숙한 표시 문자열입니다. |
가치 | 예 | 이 옵션 선택과 관련된 문자열 클레임 값입니다. |
기본값별 선택 | 아니오 | UI에서 이 옵션을 기본적으로 선택해야 하는지 여부를 나타냅니다. 가능한 값: True 또는 False입니다. |
다음 예제에서는 LocalizedCollections 요소의 사용을 보여 줍니다. 두 개의 LocalizedCollection 요소가 포함되어 있습니다. 하나는 영어이고 다른 하나는 스페인어용입니다. 둘 다 영어와 스페인어에 대한 항목 목록을 사용하여 클레임 의 Gender
컬렉션을 설정합니다. 더 많은 샘플을 보려면 클레임 제한 열거형 라이브 데모를 확인하세요.
<LocalizedResources Id="api.selfasserted.en">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
<Item Text="Female" Value="F" />
<Item Text="Male" Value="M" />
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
<LocalizedResources Id="api.selfasserted.es">
<LocalizedCollections>
<LocalizedCollection ElementType="ClaimType" ElementId="Gender" TargetCollection="Restriction">
<Item Text="Femenino" Value="F" />
<Item Text="Masculino" Value="M" />
</LocalizedCollection>
</LocalizedCollections>
</LocalizedResources>
LocalizedStrings (로컬라이즈된 문자열)
LocalizedStrings 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
LocalizedString | 1:엔 | 지역화된 문자열입니다. |
LocalizedString 요소에는 다음 특성이 포함됩니다.
특성 | 필수 | 설명 |
---|---|---|
엘리먼트 타입 | 예 | 가능한 값: ClaimsProvider, ClaimType, ErrorMessage, GetLocalizedStringsTransformationClaimType, FormatLocalizedStringTransformationClaimType, Predicate, PredicateValidation 또는 UxElement. |
엘리멘트 ID | 예 |
ElementType이 설정된 ClaimType 경우 또는 Predicate PredicateValidation 이 요소에 ClaimsSchema 섹션에 이미 정의된 클레임 형식에 대한 참조가 포함됩니다. |
문자열 ID | 예 |
ElementType이 설정된 ClaimType 경우 이 요소에는 클레임 형식의 특성에 대한 참조가 포함됩니다. 가능한 값은 DisplayName , AdminHelpText 또는 PatternHelpText 입니다. 값 DisplayName 은 클레임 표시 이름을 설정하는 데 사용됩니다. 이 AdminHelpText 값은 클레임 사용자의 도움말 텍스트 이름을 설정하는 데 사용됩니다. 이 PatternHelpText 값은 클레임 패턴 도움말 텍스트를 설정하는 데 사용됩니다.
ElementType이 설정된 UxElement 경우 이 요소에는 사용자 인터페이스 요소의 특성에 대한 참조가 포함됩니다.
ElementType이 설정된 ErrorMessage 경우 이 요소는 오류 메시지의 식별자를 지정합니다. 식별자의 전체 목록은 지역화 문자열 ID 를 UxElement 참조하세요. |
엘리먼트 타입
지역화할 정책의 클레임 형식, 클레임 변환 또는 사용자 인터페이스 요소에 대한 ElementType 참조입니다.
지역화할 요소 | 엘리먼트 타입 | 엘리멘트 ID | 문자열 ID |
---|---|---|---|
ID 공급자 이름 | ClaimsProvider |
ClaimsExchange 요소의 ID입니다. | |
클레임 형식 특성 | ClaimType |
클레임 형식의 이름 | 지역화할 클레임의 특성입니다. 가능한 값: AdminHelpText , DisplayName , PatternHelpText 및 UserHelpText . |
오류 메시지 | ErrorMessage |
오류 메시지의 ID입니다. | |
지역화된 문자열을 클레임에 복사합니다. | GetLocalizedStringsTransformationClaimType |
출력 클레임의 이름 | |
사용자 메시지 조건자 | Predicate |
조건자의 이름입니다. | 지역화할 조건자의 특성입니다. 가능한 값: HelpText . |
조건자 그룹 사용자 메시지 | PredicateValidation |
PredicateValidation 요소의 ID입니다. | PredicateGroup 요소의 ID입니다. 조건자 그룹은 ElementId에 정의된 조건자 유효성 검사 요소의 자식이어야 합니다. |
사용자 인터페이스 요소 | UxElement |
지역화할 사용자 인터페이스 요소의 ID입니다. | |
컨트롤 표시 | DisplayControl |
표시 컨트롤의 ID입니다. | 지역화할 사용자 인터페이스 요소의 ID입니다. |
예시
클레임 공급자
ClaimsProvider 값은 클레임 공급자 표시 이름 중 하나를 지역화하는 데 사용됩니다.
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" />
<ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAUTH" />
<ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OAUTH" />
</ClaimsExchanges>
</OrchestrationStep>
다음 예제에서는 클레임 공급자의 표시 이름을 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="ClaimsProvider" StringId="FacebookExchange">Facebook</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="GoogleExchange">Google</LocalizedString>
<LocalizedString ElementType="ClaimsProvider" StringId="LinkedInExchange">LinkedIn</LocalizedString>
청구 유형
ClaimType 값은 클레임 특성 중 하나를 지역화하는 데 사용됩니다.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
다음 예제에서는 전자 메일 클레임 유형의 DisplayName, UserHelpText 및 PatternHelpText 특성을 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">Email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="UserHelpText">Please enter your email</LocalizedString>
<LocalizedString ElementType="ClaimType" ElementId="email" StringId="PatternHelpText">Please enter a valid email address</LocalizedString>
오류 메시지
ErrorMessage 값은 시스템 오류 메시지 중 하나를 지역화하는 데 사용됩니다.
<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
<Metadata>
<Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
<Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
</Metadata>
...
</TechnicalProfile>
다음 예제에서는 UserMessageIfClaimsPrincipalAlreadyExists 오류 메시지를 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsPrincipalAlreadyExists">The account you are trying to create already exists, please sign-in.</LocalizedString>
FormatLocalizedStringTransformationClaimType
FormatLocalizedStringTransformationClaimType 값은 클레임을 지역화된 문자열로 서식을 지정하는 데 사용됩니다. 자세한 내용은 FormatLocalizedString 클레임 변환을 참조하세요.
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessage_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
다음 예제에서는 FormatLocalizedStringTransformationClaimType 클레임 변환의 문자열 형식을 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessage_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
GetLocalizedStringsTransformationClaimType
GetLocalizedStringsTransformationClaimType 값은 지역화된 문자열을 클레임에 복사하는 데 사용됩니다. 자세한 내용은 GetLocalizedStringsTransformation 클레임 변환을 참조하세요.
<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
<OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
<OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
<OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
</OutputClaims>
</ClaimsTransformation>
다음 예제에서는 GetLocalizedStringsTransformation 클레임 변환의 출력 클레임을 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
술어
조건자 값은 조건 자 오류 메시지 중 하나를 지역화하는 데 사용됩니다.
<Predicates>
<Predicate Id="LengthRange" Method="IsLengthRange" HelpText="The password must be between 6 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">6</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
<Parameters>
<Parameter Id="CharacterSet">A-Z</Parameter>
</Parameters>
</Predicate>
</Predicates>
다음 예제에서는 조건자 도움말 텍스트를 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="Predicate" ElementId="LengthRange" StringId="HelpText">The password must be between 6 and 64 characters.</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Lowercase" StringId="HelpText">a lowercase letter</LocalizedString>
<LocalizedString ElementType="Predicate" ElementId="Uppercase" StringId="HelpText">an uppercase letter</LocalizedString>
PredicateValidation (영문)
PredicateValidation 값은 PredicateValidation 그룹 오류 메시지 중 하나를 지역화하는 데 사용됩니다.
<PredicateValidations>
<PredicateValidation Id="CustomPassword">
<PredicateGroups>
<PredicateGroup Id="LengthGroup">
<PredicateReferences MatchAtLeast="1">
<PredicateReference Id="LengthRange" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="CharacterClasses">
<UserHelpText>The password must have at least 3 of the following:</UserHelpText>
<PredicateReferences MatchAtLeast="3">
<PredicateReference Id="Lowercase" />
<PredicateReference Id="Uppercase" />
<PredicateReference Id="Number" />
<PredicateReference Id="Symbol" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
다음 예제에서는 조건자 유효성 검사 그룹 도움말 텍스트를 지역화하는 방법을 보여줍니다.
<LocalizedString ElementType="PredicateValidation" ElementId="CustomPassword" StringId="CharacterClasses">The password must have at least 3 of the following:</LocalizedString>
UX엘리먼트
UxElement 값은 사용자 인터페이스 요소 중 하나를 지역화하는 데 사용됩니다. 다음 예제에서는 계속 및 취소 단추를 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="UxElement" StringId="button_continue">Create new account</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="button_cancel">Cancel</LocalizedString>
디스플레이컨트롤
DisplayControl 값은 디스플레이 컨트롤 사용자 인터페이스 요소 중 하나를 지역화하는 데 사용됩니다. 사용하도록 설정하면 표시 컨트롤 localizedStrings가 ver_but_send, ver_but_edit, ver_but_resend및ver_but_verify 같은 일부 UxElement StringID보다 우선적으로 적용됩니다. 다음 예제에서는 보내기 및 확인 단추를 지역화하는 방법을 보여 줍니다.
<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_send_code">Send verification code</LocalizedString>
<LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_verify_code">Verify code</LocalizedString>
자체 어설션된 기술 프로필의 메타데이터 섹션에서 참조된 ContentDefinition은 DataUri를 페이지 레이아웃 버전 2.1.0 이상으로 설정해야 합니다. 다음은 그 예입니다.
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.0</DataUri>
...
다음 단계
지역화 예제는 다음 문서를 참조하세요.