문자열 클레임 변환
이 문서에서는 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
사용자에게 표시되는 오류 메시지를 제어합니다. 오류 메시지를 지역화할 수 있습니다.
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 | 구성표 | 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
- outputClaim:
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 | 문자열 비교, 즉 입력 클레임 값을 비교해야 하는 문자열인 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
- outputClaim:
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 클레임 변환을 사용하려면 다음을 수행합니다.
- 지역화 문자열을 정의하고 자체 어설션 기술 프로필과 연결합니다.
- 요소의 값을
ElementType
LocalizedString
.로 설정FormatLocalizedStringTransformationClaimType
해야 합니다. - 정의
StringId
한 고유 식별자이며 나중에 클레임 변환stringFormatId
에서 사용합니다. - 클레임 변환에서 지역화된 문자열로 설정할 클레임 목록을 지정합니다. 그런 다음 지역화된 문자열 요소의 값으로
StringId
설정합니다stringFormatId
. - 자체 어설션 기술 프로필 또는 표시 제어 입력 또는 출력 클레임 변환에서 클레임 변환에 대한 참조를 만듭니다.
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 클레임 변환을 사용하려면 다음을 수행합니다.
요소의 값을
ElementType
LocalizedString
.로 설정GetLocalizedStringsTransformationClaimType
해야 합니다.정의
StringId
한 고유 식별자이며 나중에 클레임 변환에서 사용합니다.클레임 변환에서 지역화된 문자열로 설정할 클레임 목록을 지정합니다.
ClaimTypeReferenceId
는 정책의 ClaimsSchema 섹션에 이미 정의되어 있는 클레임에 대한 참조입니다.TransformationClaimType
요소에 정의된StringId
지역화된 문자열의LocalizedString
이름입니다.기술 프로필을 콘텐츠 정의(예:
api.selfasserted
)와 연결합니다. 다음 예제에서는 기술 프로필을api.selfasserted
콘텐츠 정의에 연결하는 방법을 보여줍니다.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
다음 다이어그램은 지역화 요소를 사용하여 클레임 변환을 구성하는 방법을 보여줍니다.
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>
클레임 변환은 클레임 형식 주체의 값을 email_subject 값 StringId
으로 설정합니다.
<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 컬렉션 중 하나에서 도메인 이름을 조회합니다. 클레임 변환은 식별자에서 도메인 이름을 조회하고 해당 값(애플리케이션 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
사용자에게 표시되는 오류 메시지를 제어합니다.
다음 예제에서는 inputParameters 컬렉션 중 하나에서 도메인 이름을 조회합니다. 클레임 변환은 식별자에서 도메인 이름을 조회하고 해당 값(애플리케이션 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
ParseDomain
전자 메일 주소의 도메인 부분을 가져옵니다. 이 클레임 변환의 라이브 데모를 확인하세요.
요소 | TransformationClaimType | 데이터 형식 | 주의 |
---|---|---|---|
InputClaim | emailAddress | string | 이메일 주소를 포함하는 클레임입니다. |
OutputClaim | 도메인 | string | 이 클레임 변환이 호출된 후에 생성되는 클레임(도메인)입니다. |
ParseDomain의 예
이 클레임 변환을 사용하여 사용자의 @ 기호 뒤의 도메인 이름을 구문 분석합니다. 다음 클레임 변환은 전자 메일 클레임에서 도메인 이름을 구문 분석하는 방법을 보여 줍니다.
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- 입력 클레임:
- emailAddress: joe@outlook.com
- 출력 클레임:
- 도메인: 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
문자열 클레임 claimToMatch
및 matchTo
입력 매개 변수가 같은지 확인하고 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="(?<mailAlias>.*)@(.*)$" />
<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:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- 출력 클레임:
- outputClaim: "isEmail"
- regexCompareResultClaim: true
- mailAlias: emily
SetClaimsIfStringsAreEqual
문자열 클레임 및 matchTo
입력 매개 변수가 같은지를 확인하고 stringMatchMsg
및 stringMatchMsgCode
입력 매개 변수에 있는 값을 사용하여 출력 클레임을 설정하는 동시에 비교 결과 출력 클레임(비교 결과에 따라 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: "Admin, Approver, Editor"
- 입력 매개 변수:
- 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" ]
- inputClaim:
- 입력 매개 변수:
- 구분 기호: ","
- 출력 클레임:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
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
- inputClaim:
- 입력 매개 변수:
- 구분 기호: ","
- 출력 클레임:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
문자열 클레임 변환 식
Azure AD B2C 사용자 지정 정책의 클레임 변환 식은 테넌트 ID 및 기술 프로필 ID에 대한 컨텍스트 정보를 제공합니다.
식 | 설명 | 예시 |
---|---|---|
{TechnicalProfileId} |
technical profileId 이름입니다. | Facebook-OAUTH |
{RelyingPartyTenantId} |
신뢰 당사자 정책의 테넌트 ID입니다. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
트러스트 프레임워크의 테넌트 ID입니다. | your-tenant.onmicrosoft.com |
다음 단계
- Azure AD B2C 커뮤니티 GitHub 리포지토리에서 더 많은 클레임 변환 샘플 찾기