문자열 클레임 변환

이 문서에서는 Azure AD B2C(Azure Active Directory B2C) 내 Identity Experience Framework 스키마의 문자열 클레임 변환 사용을 위한 예제를 제공합니다. 자세한 내용은 클레임 변환을 참조하세요.

AssertStringClaimsAreEqual

두 클레임을 비교한 다음, 지정된 비교 inputClaim1, inputClaim2 및 stringComparison에 따라 두 클레임이 같지 않으면 예외를 throw합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim1 string 비교할 첫 번째 클레임의 형식입니다.
InputClaim inputClaim2 string 비교할 두 번째 클레임의 형식입니다.
InputParameter stringComparison string 문자열 비교, 값 중 하나: OrdinalIgnoreCase.

AssertStringClaimsAreEqual 클레임 변환은 항상 자체 어설션 기술 프로필 또는 DisplayControl을 통해 호출되는 유효성 검사 기술 프로필에서 실행됩니다. 자체 어설션된 기술 프로필의 메타데이터는 UserMessageIfClaimsTransformationStringsAreNotEqual 사용자에게 표시되는 오류 메시지를 제어합니다. 오류 메시지를 지역화수 있습니다.

Diagram shows how to use the assert string claims are equal claims transformation.

AssertStringClaimsAreEqual의 예

이 클레임 변환을 사용하면 두 클레임의 값이 같은지를 확인할 수 있습니다. 두 값이 같지 않으면 오류 메시지가 throw됩니다. 다음 예에서는 strongAuthenticationEmailAddress 클레임이 이메일 클레임과 동일한지 확인합니다. 그렇지 않으면 오류 메시지가 throw됩니다.

<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
  </InputParameters>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • 입력 매개 변수:
    • stringComparison: ordinalIgnoreCase
  • 결과: 오류가 throw됨

AssertStringClaimsAreEqual 클레임 변환 호출

login-NonInteractive 유효성 검사 기술 프로필은 AssertEmailAndStrongAuthenticationEmailAddressAreEqual 클레임 변환을 호출합니다.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

자체 어설션된 기술 프로필은 유효성 검사 로그인-NonInteractive 기술 프로필을 호출합니다.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

TOTP(시간 제약이 있는 일회성 암호) URI를 만듭니다. URI는 사용자의 고유 식별자(예: 이메일 주소)와 비밀 키의 조합입니다. URI는 나중에 사용자에게 제공되는 QR 코드로 변환됩니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim 경로 string 이메일 주소, 사용자 이름 또는 전화 번호와 같은 사용자의 고유 식별자입니다.
InputClaim query.secret string TOTP 비밀 키입니다.
InputParameter scheme string URI의 구성표 부분입니다. 예: otpauth.
InputParameter host string URI의 구성표 부분입니다. 예: totp.
InputParameter query.issuer string URI의 발급자 부분입니다. 예: {AuthenticatorIssuer}.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

BuildUri의 예

다음 클레임 변환은 QR 코드 또는 딥 링크에 표시될 TOTP URI를 생성합니다.

<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
    <InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="scheme" DataType="string" Value="otpauth" />
    <InputParameter Id="host" DataType="string" Value="totp" />
    <InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • 경로: emily@fabrikam.com
    • query.secret: fay2lj7ynpntjgqa
  • 입력 매개 변수:
    • 구성표: otpauth
    • 호스트: totp
    • query.issuer: {AuthenticatorIssuer}
  • 출력 클레임:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

제공된 클레임의 대/소문자를 연산자에 따라 소문자 또는 대문자로 변경합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim1 string 변경할 클레임입니다.
InputParameter toCase string LOWER 또는 UPPER 값 중 하나입니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

ChangeCase의 예

다음 클레임 변환은 이메일 클레임을 소문자로 변경합니다.

<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • 전자 메일: SomeOne@contoso.com
  • 입력 매개 변수:
    • toCase: LOWER
  • 출력 클레임:
    • 전자 메일: someone@contoso.com

CompareClaims

특정 문자열 클레임이 다른 클레임과 같은지 여부를 확인합니다. 결과는 값이 true 또는 false인 새 부울 클레임입니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim1 string 비교할 첫 번째 클레임 유형입니다.
InputClaim inputClaim2 string 비교할 두 번째 클레임 유형입니다.
InputParameter operator string 가능한 값: EQUAL 또는 NOT EQUAL.
InputParameter Ignorecase string 비교 중인 문자열의 대/소문자를 무시해야 하는지 여부를 지정합니다.
OutputClaim outputClaim 부울 값 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

CompareClaims의 예

클레임이 다른 클레임과 같은 경우 이 클레임 변환을 사용하여 검사. 다음 클레임 변환은 email 클레임의 값이 Verified.Email 클레임과 동일한지 확인합니다.

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • 입력 매개 변수:
    • operator: 같지 않음
    • ignoreCase: true
  • 출력 클레임:
    • outputClaim: true

CompareClaimToValue

클레임 값이 입력 매개 변수 값과 같은지 여부를 확인합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim1 string 비교할 클레임의 형식입니다.
InputParameter operator string 가능한 값: EQUAL 또는 NOT EQUAL.
InputParameter compareTo string Ordinal 또는 OrdinalIgnoreCase 값 중 하나로 문자열을 비교합니다.
InputParameter Ignorecase string 비교 중인 문자열의 대/소문자를 무시해야 하는지 여부를 지정합니다.
OutputClaim outputClaim 부울 값 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

CompareClaimToValue의 예

이 클레임 변환을 사용하면 특정 클레임이 지정한 값과 같은지를 확인합니다. 예를 들어 다음 클레임 변환은 termsOfUseConsentVersion 클레임의 값이 같은 V2경우 검사.

<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="compareTo" DataType="string" Value="V2" />
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: v1
  • 입력 매개 변수:
    • compareTo: V2
    • operator: 같지 않음
    • ignoreCase: true
  • 출력 클레임:
    • outputClaim: true

CopyClaimIfPredicateMatch

입력 클레임 값이 출력 클레임 조건자와 일치하는 경우 클레임 값을 다른 값으로 복사합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 복사할 클레임 형식입니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임 형식입니다. 입력 클레임의 값은 이 클레임 조건자에 대해 검사.

CopyClaimIfPredicateMatch의 예

다음 예에서는 signInName 클레임 값을 phoneNumber 클레임에 복사하려고 합니다. 이 예에서 값은 복사되지 않습니다. signInName 클레임이 예상 형식의 전화 번호가 아닙니다. 전체 샘플은 전화 번호 또는 이메일 로그인 시작 팩 정책을 참조하세요.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: bob@contoso.com
  • 출력 클레임:
    • outputClaim: 출력 클레임이 원래 값에서 변경되지 않습니다.

조건자와 일치하는 CopyClaimIfPredicateMatch의 예

이 예에서 클레임 변환은 값을 복사합니다. signInName 클레임은 올바른 형식의 전화 번호입니다.

  • 입력 클레임:
    • inputClaim: +11234567890
  • 출력 클레임:
    • outputClaim: +11234567890

CreateOtpSecret

TOTP 문자열 클레임을 만듭니다. 이 클레임 변환의 출력은 나중에 Azure AD B2C 사용자의 계정에 저장되고 Microsoft Authenticator 앱과 공유되는 TOTP 비밀입니다. 인증자 앱은 이 키를 사용하여 사용자가 MFA를 통과할 때 필요한 TOTP 코드를 생성합니다. 정책에서는 이 키를 사용하여 사용자가 입력한 TOTP 코드의 유효성을 검사합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
OutputClaim outputClaim string 생성된 TOTP 코드와 함께 이 클레임 변환이 호출된 후 생성된 클레임입니다.

CreateOtpSecret의 예

다음 클레임 변환은 TOTP 다단계 인증자의 비밀을 만듭니다.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 출력 클레임:
    • outputClaim: hmlcmd4ph6fph64c

CreateRandomString

난수 생성기를 사용하여 임의 문자열을 만듭니다. 난수 생성기가 형식 integer인 경우 필요에 따라 시드 매개 변수와 최대 수를 제공할 수 있습니다. 선택적 문자열 형식 매개 변수를 사용하면 출력의 형식을 지정할 수 있으며, 선택적 base64 매개 변수는 출력이 base64로 인코딩된 randomGeneratorType [guid, integer] outputClaim(String)인지 여부를 지정합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputParameter randomGeneratorType string 생성 GUID 할 임의 값(전역 고유 ID) 또는 INTEGER (숫자)를 지정합니다.
InputParameter stringFormat string [선택 사항] 임의 값의 서식을 지정합니다.
InputParameter base64 부울 값 [선택 사항] 임의 값을 base64로 변환합니다. 문자열 형식을 적용하는 경우에는 문자열 형식 뒤의 값이 base64로 인코딩됩니다.
InputParameter maximumNumber int [선택 사항] INTEGER randomGeneratorType에만 해당합니다. 최대 수를 지정합니다.
InputParameter seed int [선택 사항] INTEGER randomGeneratorType에만 해당합니다. 임의 값의 초기값을 지정합니다. 참고: 동일한 시드는 동일한 시퀀스의 난수를 생성합니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후 생성될 클레임입니다. 임의 값입니다.

CreateRandomString의 예

다음 예제에서는 전역 고유 ID를 생성합니다. 이 클레임은 임의 UPN(사용자 계정 이름)을 만드는 데 사용됩니다.

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 매개 변수:
    • randomGeneratorType: GUID
  • 출력 클레임:
    • outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

숫자 값을 만드는 CreateRandomString의 예

다음 예제에서는 0에서 1000 사이의 정수 임의 값을 생성합니다. 값에는 OTP_{임의 값} 서식이 지정됩니다.

<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
    <InputParameter Id="maximumNumber" DataType="int" Value="1000" />
    <InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
    <InputParameter Id="base64" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 매개 변수:
    • randomGeneratorType: INTEGER
    • maximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: false
  • 출력 클레임:
    • outputClaim: OTP_853

CreateStringClaim

변환에 제공된 입력 매개 변수에서 문자열 클레임을 만듭니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputParameter value string 설정할 문자열입니다. 이 입력 매개 변수는 문자열 클레임 변환 식을 지원합니다.
OutputClaim createdClaim string 입력 매개 변수에 지정된 값과 함께 이 클레임 변환이 호출된 후 생성된 클레임입니다.

CreateStringClaim의 예

다음 클레임 변환은 서비스 약관이 있는 문자열 값을 만듭니다.

<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
  <InputParameters>
    <InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 매개 변수:
    • : Contoso 서비스 약관...
  • 출력 클레임:
    • createdClaim: TOS 클레임은 "Contoso 서비스 약관..." 값을 포함합니다.

FormatLocalizedString

제공된 지역화된 형식 문자열에 따라 여러 클레임의 형식을 지정합니다. 이 변환에서는 C# String.Format 메서드를 사용합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaims string 문자열 형식{0}, {1}{2} 매개 변수 역할을 하는 입력 클레임의 컬렉션입니다.
InputParameter stringFormatId string StringId 지역화된 문자열의 입니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

참고 항목

지정할 수 있는 입력 클레임 수에는 제한이 없지만 형식이 지정된 문자열의 최대 길이는 4000입니다.

FormatLocalizedString 클레임 변환을 사용하려면 다음을 수행합니다.

  1. 지역화 문자열을 정의하고 자체 어설션 기술 프로필과 연결합니다.
  2. 요소의 값을 ElementTypeLocalizedString .로 설정 FormatLocalizedStringTransformationClaimType해야 합니다.
  3. 정의 StringId 한 고유 식별자이며 나중에 클레임 변환 stringFormatId에서 사용합니다.
  4. 클레임 변환에서 지역화된 문자열로 설정할 클레임 목록을 지정합니다. 그런 다음 지역화된 문자열 요소의 값으로 StringId 설정합니다stringFormatId.
  5. 자체 어설션 기술 프로필 또는 표시 제어 입력 또는 출력 클레임 변환에서 클레임 변환에 대한 참조를 만듭니다.

FormatLocalizedString의 예

다음 예제에서는 계정이 디렉터리에 이미 있을 때 오류 메시지를 생성합니다. 이 예제에서는 영어(기본값) 및 스페인어에 대해 지역화된 문자열을 정의합니다.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

클레임 변환은 지역화된 문자열을 기반으로 응답 메시지를 만듭니다. 이 메시지에는 지역화된 문자열 ResponseMessge_EmailExists에 포함된 사용자의 이메일 주소가 포함되어 있습니다.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: sarah@contoso.com
  • 입력 매개 변수:
    • stringFormat: ResponseMessge_EmailExists
  • 출력 클레임:
    • outputClaim: 이메일 'sarah@contoso.com'은 이미 이 조직의 계정입니다. 다음을 선택하여 해당 계정으로 로그인합니다.

FormatStringClaim

입력한 형식 문자열에 따라 클레임 서식을 지정합니다. 이 변환에서는 C# String.Format 메서드를 사용합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 문자열 형식 {0} 매개 변수로 사용되는 클레임입니다.
InputParameter stringFormat string {0} 매개 변수를 포함하는 문자열 형식입니다. 이 입력 매개 변수는 문자열 클레임 변환 식을 지원합니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

참고 항목

문자열 형식이 허용되는 최대 크기는 4000입니다.

FormatStringClaim의 예

매개 변수 {0} 하나가 포함된 모든 문자열의 서식을 지정하려면 이 클레임 변환을 사용합니다. 다음 예제에서는 userPrincipalName을 만듭니다. CreateUserPrincipalName을 호출하여 userPrincipalName을 생성하는 것과 같은 Facebook-OAUTH 모든 소셜 ID 공급자 기술 프로필

<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • 입력 매개 변수:
    • stringFormat: cpim_{0}@{RelyingPartyTenantId}
  • 출력 클레임:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

입력한 형식 문자열에 따라 두 클레임의 서식을 지정합니다. 이 변환에서는 C# String.Format 메서드를 사용합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim1 string 문자열 형식 {0} 매개 변수로 사용되는 클레임입니다.
InputClaim inputClaim2 string 문자열 형식 {1} 매개 변수로 사용되는 클레임입니다.
InputParameter stringFormat string 문자열 형식(및 매개 변수 포함 {0} )입니다 {1} . 이 입력 매개 변수는 문자열 클레임 변환 식을 지원합니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

참고 항목

문자열 형식이 허용되는 최대 크기는 4000입니다.

FormatStringMultipleClaims의 예

두 매개 변수({0} 및 {1})가 포함된 모든 문자열의 서식을 지정하려면 이 클레임 변환을 사용합니다. 다음 예제에서는 지정된 형식으로 displayName 을 만듭니다.

<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • 입력 매개 변수:
    • stringFormat: {0}{1}
  • 출력 클레임:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

지역화된 문자열을 클레임에 복사합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
OutputClaim 지역화된 문자열의 이름입니다. string 이 클레임 변환이 호출된 후에 생성되는 클레임 유형 목록입니다.

GetLocalizedStringsTransformation 클레임 변환을 사용하려면 다음을 수행합니다.

  1. 콘텐츠 정의에 대한 지역화 문자열을 정의합니다(예: api.selfasserted).

  2. 요소의 값을 ElementTypeLocalizedString .로 설정 GetLocalizedStringsTransformationClaimType해야 합니다.

  3. 정의 StringId 한 고유 식별자이며 나중에 클레임 변환에서 사용합니다.

  4. 클레임 변환에서 지역화된 문자열로 설정할 클레임 목록을 지정합니다. ClaimTypeReferenceId는 정책의 ClaimsSchema 섹션에 이미 정의되어 있는 클레임에 대한 참조입니다. TransformationClaimType 요소에 정의된 StringId 지역화된 문자열의 LocalizedString 이름입니다.

  5. 자체 어설션 또는 클레임 변환 기술 프로필의 클레임 변환에서 클레임 변환을 참조합니다.

  6. 기술 프로필을 콘텐츠 정의(예: api.selfasserted)와 연결합니다. 다음 예제에서는 기술 프로필을 api.selfasserted 콘텐츠 정의에 연결하는 방법을 보여줍니다.

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

다음 다이어그램은 지역화 요소를 사용하여 클레임 변환을 구성하는 방법을 보여줍니다.

Diagram shows how to use the get localized strings claims transformation.

GetLocalizedStringsTransformation의 예

다음 예제에서는 지역화된 문자열에서 전자 메일 제목, 본문, 코드 메시지 및 전자 메일의 서명을 조회합니다. 이 클레임은 나중에 사용자 지정 이메일 확인 템플릿에서 사용됩니다.

영어(기본값) 및 스페인어에 대해 지역화된 문자열을 정의합니다.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <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>
     </LocalizedStrings>
   </LocalizedResources>
   <LocalizedResources Id="api.localaccountsignup.es">
     <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

클레임 변환은 StringIdemail_subject 값을 사용하여 클레임 형식 subject의 값을 설정합니다.

<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>
  • 출력 클레임:
    • 제목: Contoso 계정 전자 메일 확인 코드
    • 메시지: 계정을 확인해 주셔서 감사합니다.
    • codeIntro: 코드는 다음과 같습니다.
    • 서명: 진심으로

GetMappedValueFromLocalizedCollection

입력 클레임의 Restriction 컬렉션에서 요소를 매핑합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim mapFromClaim string restriction 컬렉션이 있는 restrictionValueClaim 클레임에서 조회할 텍스트가 포함된 클레임입니다.
OutputClaim restrictionValueClaim string Restriction 컬렉션이 포함된 클레임입니다. 클레임 변환이 호출된 후 이 클레임의 값에는 선택한 항목의 값이 포함됩니다.

GetMappedValueFromLocalizedCollection의 예

다음 예제에서는 오류 키를 기반으로 오류 메시지 설명을 찾습니다. responseMsg 클레임에는 최종 사용자에게 표시하거나 신뢰 당사자에게 보낼 오류 메시지 컬렉션이 포함되어 있습니다.

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <UserInputType>Paragraph</UserInputType>
  <Restriction>
    <Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
    <Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
    <Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
  </Restriction>
</ClaimType>

이 클레임 변환 항목의 텍스트를 조회하고 해당 값을 반환합니다. 제한을 사용하여 <LocalizedCollection>지역화하면 클레임 변환은 지역화된 값을 반환합니다.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • mapFromClaim: B2C_V1_90001
  • 출력 클레임:
    • restrictionValueClaim: 미성년자이기 때문에 로그인할 수 없습니다.

LookupValue

다른 클레임의 값을 기준으로 값 목록에서 클레임 값을 조회합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputParameterId string 조회 값이 포함된 클레임
InputParameter string inputParameters의 컬렉션입니다.
InputParameter errorOnFailedLookup 부울 값 일치하는 조회가 없을 때 오류가 반환되는지 여부를 제어합니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후 생성될 클레임입니다. 일치하는 Id값입니다.

LookupValue의 예

다음 예제에서는 inputParameters 컬렉션 중 하나에서 do기본 이름을 찾습니다. 클레임 변환은 식별자에서 do기본 이름을 조회하고 해당 값(애플리케이션 ID)을 반환합니다.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputParameterId: test.com
  • 입력 매개 변수:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: false
  • 출력 클레임:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

오류가 있는 LookupValue의 예

입력 매개 변수를 true설정하면 errorOnFailedLookup LookupValue 클레임 변환은 항상 자체 어설션된 기술 프로필 또는 DisplayConrtol에서 호출되는 유효성 검사 기술 프로필에서 실행됩니다. 자체 어설션된 기술 프로필의 메타데이터는 LookupNotFound 사용자에게 표시되는 오류 메시지를 제어합니다.

Diagram shows how to use the lookup value claims transformation.

다음 예제에서는 inputParameters 컬렉션 중 하나에서 do기본 이름을 찾습니다. 클레임 변환은 식별자에서 do기본 이름을 조회하고 해당 값(애플리케이션 ID)을 반환하거나 오류 메시지를 발생합니다.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputParameterId: live.com
  • 입력 매개 변수:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: true
  • 오류:
    • 입력 매개 변수 ID 목록에 입력 클레임 값과 일치하는 항목이 없으며 errorOnFailedLookup이 true입니다.

NullClaim

지정된 클레임의 값을 정리합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
OutputClaim claim_to_null string 클레임의 값이 NULL로 설정됩니다.

NullClaim의 예

세션 쿠키가 더 작도록 클레임 속성 모음에서 불필요한 데이터를 제거하려면 이 클레임 변환을 사용합니다. 다음 예제에서는 클레임 형식의 TermsOfService 값을 제거합니다.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • outputClaim: Contoso 앱에 오신 것을 환영합니다. 이 웹 사이트를 계속 검색 및 사용하는 경우 다음 사용 약관을 준수하며 해당 약관에 구속됨에 동의하게 됩니다.
  • 출력 클레임:
    • outputClaim: NULL

ParseDo기본

전자 메일 주소의 do기본 부분을 가져옵니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim emailAddress string 이메일 주소를 포함하는 클레임입니다.
OutputClaim 도메인 string 이 클레임 변환이 호출된 후에 생성되는 클레임(도메인)입니다.

ParseDomain의 예

이 클레임 변환을 사용하여 사용자의 @ 기호 뒤의 do기본 이름을 구문 분석합니다. 다음 클레임 변환은 전자 메일 클레임에서 do기본 이름을 구문 분석하는 방법을 보여 줍니다.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • emailAddress: joe@outlook.com
  • 출력 클레임:
    • do기본: outlook.com

SetClaimIfBooleansMatch

부울 클레임이 true인지 또는 false인지 확인합니다. 그렇다면 입력 매개 변수에 있는 값을 사용하여 출력 클레임을 outputClaimIfMatched 설정합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim claimToMatch string 검사 클레임 유형입니다. Null 값은 예외를 throw합니다.
InputParameter matchTo string 입력 클레임과 claimToMatch 비교할 값입니다. 가능한 값은 true 또는 false입니다.
InputParameter outputClaimIfMatched string 입력 클레임이 입력 매개 변수와 같은 경우 설정할 값입니다 matchTo .
OutputClaim outputClaim string claimToMatch 입력 클레임이 matchTo 입력 매개 변수와 같으면 이 출력 클레임에는 outputClaimIfMatched 입력 매개 변수의 값이 포함됩니다.

SetClaimIfBooleansMatch의 예

예를 들어 다음 클레임 변환에서는 hasPromotionCode 클레임의 값이 true와 같은지 확인합니다. 예인 경우 Promotion code not found에 값을 반환합니다.

<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="true" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • claimToMatch: true
  • 입력 매개 변수:
    • matchTo: true
    • outputClaimIfMatched: “Promotion code not found.”
  • 출력 클레임:
    • outputClaim: "승격 코드를 찾을 수 없습니다."

SetClaimsIfRegexMatch

문자열 클레임 claimToMatchmatchTo 입력 매개 변수가 같은지 확인하고 outputClaimIfMatched 입력 매개 변수에 있는 값을 사용하여 출력 클레임을 설정하는 동시에 비교 결과 출력 클레임(비교 결과에 따라 true 또는 false로 설정됨)도 설정합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
inputClaim claimToMatch string 비교할 클레임 유형입니다.
InputParameter matchTo string 일치 항목을 찾을 정규식입니다.
InputParameter outputClaimIfMatched string 문자열이 같으면 설정할 값입니다.
InputParameter extractGroups 부울 값 [선택 사항] Regex 일치에서 그룹 값을 추출해야 하는지 여부를 지정합니다. 가능한 값: true또는 false (기본값)
OutputClaim outputClaim string 정규식이 일치하는 경우 이 출력 클레임에는 입력 매개 변수의 outputClaimIfMatched 값이 포함됩니다. 일치 항목이 없으면 null입니다.
OutputClaim regexCompareResultClaim 부울 값 정규식 일치 결과 출력 클레임 형식으로 설정되거나 false 일치 결과에 따라 설정 true 됩니다.
OutputClaim 클레임의 이름 string extractGroups 입력 매개 변수가 true로 설정된 경우 이 클레임 변환이 호출된 후에 생성되는 클레임 형식의 목록입니다. 클레임의 이름은 Regex 그룹 이름과 일치해야 합니다.

SetClaimsIfRegexMatch의 예

전화 번호 정규식 패턴에 따라 제공된 전화 번호가 유효한지 확인합니다.

<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • claimToMatch: "64854114520"
  • 입력 매개 변수:
    • matchTo: "^[0-9]{4,16}$"
    • outputClaimIfMatched: "Phone"
  • 출력 클레임:
    • outputClaim: "iPhone"
    • regexCompareResultClaim: true

추출 그룹이 있는 SetClaimsIfRegexMatch의 예

제공된 이메일 주소가 유효한지 확인하고 이메일 별칭을 반환합니다. 추출 그룹을 사용한 이 클레임 변환의 라이브 데모를 확인하세요.

<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • claimToMatch: "emily@contoso.com"
  • 입력 매개 변수:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: true
  • 출력 클레임:
    • outputClaim: "isEmail"
    • regexCompareResultClaim: true
    • mailAlias: emily

SetClaimsIfStringsAreEqual

문자열 클레임 및 matchTo 입력 매개 변수가 같은지를 확인하고 stringMatchMsgstringMatchMsgCode 입력 매개 변수에 있는 값을 사용하여 출력 클레임을 설정하는 동시에 비교 결과 출력 클레임(비교 결과에 따라 true 또는 false로 설정됨)도 설정합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 비교할 클레임 유형입니다.
InputParameter matchTo string 비교할 문자열입니다 inputClaim.
InputParameter stringComparison string 가능한 값: Ordinal 또는 OrdinalIgnoreCase.
InputParameter stringMatchMsg string 문자열이 같으면 설정할 첫 번째 값입니다.
InputParameter stringMatchMsgCode string 문자열이 같으면 설정할 두 번째 값입니다.
OutputClaim outputClaim1 string 문자열이 같으면 이 출력 클레임에는 입력 매개 변수의 stringMatchMsg 값이 포함됩니다.
OutputClaim outputClaim2 string 문자열이 같으면 이 출력 클레임에는 입력 매개 변수의 stringMatchMsgCode 값이 포함됩니다.
OutputClaim stringCompareResultClaim 부울 값 비교 결과 출력 클레임 유형으로 설정되거나 false 비교 결과에 따라 설정 true 됩니다.

SetClaimsIfStringsAreEqual의 예

클레임이 지정한 값과 같으면 이 클레임 변환을 사용하여 검사 수 있습니다. 예를 들어 다음 클레임 변환은 termsOfUseConsentVersion 클레임의 값이 같은 v1경우 검사. 두 값이 같은 경우 값을 v2로 변경합니다.

<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="v1" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
    <InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: v1
  • 입력 매개 변수:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: TOS는 v2로 업그레이드됨
  • 출력 클레임:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: TOS가 v2로 업그레이드됨
    • stringCompareResultClaim: true

SetClaimsIfStringsMatch

문자열 클레임 matchTo 입력 매개 변수가 같은지 확인하고 outputClaimIfMatched 입력 매개 변수에 있는 값을 사용하여 출력 클레임을 설정하는 동시에 비교 결과 출력 클레임(비교 결과에 따라 true 또는 false로 설정됨)도 설정합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim claimToMatch string 비교할 클레임 유형입니다.
InputParameter matchTo string inputClaim과 비교할 문자열입니다.
InputParameter stringComparison string 가능한 값: Ordinal 또는 OrdinalIgnoreCase.
InputParameter outputClaimIfMatched string 문자열이 같으면 설정할 값입니다.
OutputClaim outputClaim string 문자열이 같으면 이 출력 클레임에는 입력 매개 변수의 outputClaimIfMatched 값이 포함됩니다. 또는 문자열이 일치하지 않는 경우 null입니다.
OutputClaim stringCompareResultClaim 부울 값 비교 결과 출력 클레임 유형으로 설정되거나 false 비교 결과에 따라 설정 true 됩니다.

SetClaimsIfStringsMatch의 예

예를 들어 ageGroup 클레임 값이 같Minor으면 다음 클레임 변환이 검사. 그렇다면 값을 .로 반환합니다 B2C_V1_90001.

<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="Minor" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • claimToMatch: Minor
  • 입력 매개 변수:
    • matchTo: Minor
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • 출력 클레임:
    • isMinorResponseCode: true
    • isMinor: B2C_V1_90001

StringContains

지정된 substring이 입력 클레임 내에서 발생하는지 확인합니다. 결과는 값이 true 또는 false인 새 부울 클레임입니다. 이 문자열 내에서 값 매개 변수가 발생하면 true이고, 그렇지 않으면 false입니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 검색할 클레임 형식입니다.
InputParameter contains string 검색할 값입니다.
InputParameter Ignorecase string 비교 중인 문자열의 대/소문자를 무시해야 하는지 여부를 지정합니다.
OutputClaim outputClaim string 이 클레임 변환이 호출된 후에 생성되는 클레임입니다. 입력 클레임 내에서 부분 문자열이 발생하는 경우 부울 표시기입니다.

StringContains의 예

문자열 클레임 형식에 부분 문자열이 포함된 경우 이 클레임 변환을 사용하여 검사. 다음 예제에서는 문자열 클레임 형식에 관리자roles 포함되어 있는지 여부를 검사.

<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="contains" DataType="string" Value="admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: "관리, 승인자, 편집기"
  • 입력 매개 변수:
    • contains: "admin"
    • ignoreCase: true
  • 출력 클레임:
    • outputClaim: true

StringSubstring

문자열 클레임 형식에서 지정된 위치의 문자로 시작하는 부분을 추출하고 지정된 문자 수를 반환합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 문자열을 포함하는 클레임 형식입니다.
InputParameter startIndex int 이 인스턴스의 부분 문자열에 있는 0부터 시작할 문자 위치입니다.
InputParameter length int 부분 문자열에 있는 문자의 수입니다.
OutputClaim outputClaim string 이 인스턴스의 startIndex에서 시작하는 길이의 부분 문자열과 동일한 문자열이거나 startIndex가 이 인스턴스의 길이와 같고 길이가 0인 경우 Empty입니다.

StringSubstring의 예

예를 들어 전화 번호 국가/지역 접두사를 가져옵니다.

<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="startIndex" DataType="int" Value="0" />
  <InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: "+1644114520"
  • 입력 매개 변수:
    • startIndex: 0
    • length: 2
  • 출력 클레임:
    • outputClaim: "+1"

StringReplace

클레임 형식 문자열에서 지정된 값을 검색하고, 현재 문자열에서 발견된 지정 문자열이 다른 지정 문자열로 모두 바뀌는 새 클레임 형식 문자열을 반환합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 문자열을 포함하는 클레임 형식입니다.
InputParameter oldValue string 검색할 문자열입니다.
InputParameter newValue string 모든 항목을 바꿀 문자열입니다. oldValue
OutputClaim outputClaim 부울 값 oldValue의 모든 인스턴스가 newValue로 대체된다는 점을 제외하고 현재 문자열과 동일한 문자열입니다. oldValue를 현재 인스턴스에서 찾을 수 없으면 메서드가 변경되지 않은 현재 인스턴스를 반환합니다.

StringReplace의 예

예를 들어 문자를 제거하여 전화 번호를 정규화합니다 - .

<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="oldValue" DataType="string" Value="-" />
  <InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: "+164-411-452-054"
  • 입력 매개 변수:
    • oldValue: "-"
    • newValue: ""
  • 출력 클레임:
    • outputClaim: "+164411452054"

StringJoin

각 요소 또는 멤버 사이에 지정된 구분 기호를 사용하여 지정된 문자열 컬렉션 클레임 형식의 요소를 연결합니다.

이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim stringCollection 연결할 문자열을 포함하는 컬렉션입니다.
InputParameter delimiter string 구분 기호로 사용할 문자열(예: 쉼 ,표)입니다.
OutputClaim outputClaim string 입력 매개 변수로 구분된 문자열 컬렉션의 inputClaim 멤버로 delimiter 구성된 문자열입니다.

StringJoin의 예

다음 예에서는 사용자 역할의 문자열 컬렉션을 쉼표 구분 기호 문자열로 변환합니다. 이 방법으로 Azure AD B2C 사용자 계정에 문자열 컬렉션을 저장할 수 있습니다. 나중에 디렉터리에서 계정을 읽을 때 StringSplit를 사용하여 쉼표 구분 기호 문자열을 다시 문자열 컬렉션으로 변환합니다.

<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
  <InputClaims>
   <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter DataType="string" Id="delimiter" Value="," />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • 입력 매개 변수:
    • 구분 기호: ","
  • 출력 클레임:
    • outputClaim: "Admin,Author,Reader"

StringSplit

지정된 문자열의 요소로 구분된 이 인스턴스의 substring이 포함된 문자열 배열을 반환합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 주의
InputClaim inputClaim string 분할할 substring을 포함하는 문자열 클레임 형식입니다.
InputParameter delimiter string 구분 기호로 사용할 문자열(예: 쉼 ,표)입니다.
OutputClaim outputClaim stringCollection 입력 매개 변수로 구분된 이 문자열의 부분 문자열이 요소에 delimiter 포함된 문자열 컬렉션입니다.

참고 항목

OutputClaim stringCollection의 모든 기존 요소가 제거됩니다.

StringSplit의 예

다음 예제에서는 사용자 역할의 쉼표 구분 기호 문자열을 사용하여 문자열 컬렉션으로 변환합니다.

<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
  <InputParameter DataType="string" Id="delimiter" Value="," />
    </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: Admin,Author,Reader
  • 입력 매개 변수:
    • 구분 기호: ","
  • 출력 클레임:
    • outputClaim: [ "Admin", "Author", "Reader" ]

문자열 클레임 변환 식

Azure AD B2C 사용자 지정 정책의 클레임 변환 식은 테넌트 ID 및 기술 프로필 ID에 대한 컨텍스트 정보를 제공합니다.

설명 예시
{TechnicalProfileId} technical profileId 이름입니다. Facebook-OAUTH
{RelyingPartyTenantId} 신뢰 당사자 정책의 테넌트 ID입니다. your-tenant.onmicrosoft.com
{TrustFrameworkTenantId} 트러스트 프레임워크의 테넌트 ID입니다. your-tenant.onmicrosoft.com

다음 단계