다음을 통해 공유


부울 클레임 변환

이 문서에서는 Azure AD B2C(Active Directory B2C) 내 ID 경험 프레임워크 스키마의 부울 클레임 변환 사용을 위한 예제를 제공합니다. 자세한 내용은 클레임 변환을 참조하세요.

AndClaims

두 부울 입력 클레임의 And 연산을 계산하고 연산 결과를 사용하여 출력 클레임을 설정합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim inputClaim1 boolean 평가할 첫 번째 클레임입니다.
InputClaim inputClaim2 boolean 평가할 두 번째 클레임입니다.
OutputClaim outputClaim boolean 이 클레임 변환을 호출하고 나면 생성되는 클레임(true 또는 false)입니다.

AndClaims의 예

다음 클레임 변환은 두 부울 클레임(isEmailNotExistisSocialAccount)의 And 연산을 수행하는 방법을 보여 줍니다. 두 입력 클레임의 값이 모두 true이면 출력 클레임 presentEmailSelfAssertedtrue로 설정됩니다.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="AndClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isEmailNotExist" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isSocialAccount" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentEmailSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: true
    • inputClaim2: false
  • 출력 클레임:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

두 클레임의 부울 값이 같은지 확인하고 같지 않으면 예외를 throw합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
inputClaim inputClaim boolean 확인할 클레임입니다.
InputParameter valueToCompareTo boolean 비교할 값(true 또는 false)입니다.

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

AssertStringClaimsAreEqual 클레임 변환을 사용하는 방법을 보여 주는 다이어그램

AssertBooleanClaimIsEqualToValue의 예

다음 클레임 변환은 true 값을 사용하여 부울 클레임의 값을 확인하는 방법을 보여 줍니다. accountEnabled 클레임의 값이 false이면 오류 메시지가 throw됩니다.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: false
    • valueToCompareTo: true
  • 결과: 오류가 throw됨

AssertBooleanClaimIsEqualToValue 클레임 변환 호출

다음 Example-AssertBoolean 유효성 검사 기술 프로필은 AssertAccountEnabledIsTrue 클레임 변환을 호출합니다.

<TechnicalProfile Id="Example-AssertBoolean">
  <DisplayName>Unit test</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

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

<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
  <DisplayName>Example</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    <Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
  </Metadata>
  ...
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="Example-AssertBoolean" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

CompareBooleanClaimToValue

클레임의 부울 값이 true 또는 false와 같은지 확인하고 압축 결과를 반환합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim inputClaim boolean 비교할 클레임입니다.
InputParameter valueToCompareTo boolean 비교할 값(true 또는 false)입니다.
OutputClaim compareResult boolean 이 클레임 변환이 호출된 후에 생성되는 클레임입니다.

CompareBooleanClaimToValue의 예

다음 클레임 변환은 true 값을 사용하여 부울 클레임의 값을 확인하는 방법을 보여 줍니다. IsAgeOver21Years 클레임의 값이 true와 같으면 클레임 변환에서 true를 반환하고 다르면 false로 반환합니다.

<ClaimsTransformation Id="AssertAccountEnabled" TransformationMethod="CompareBooleanClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="IsAgeOver21Years" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim  ClaimTypeReferenceId="accountEnabled" TransformationClaimType="compareResult"/>
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: false
  • 입력 매개 변수:
    • valueToCompareTo: true
  • 출력 클레임:
    • compareResult: false

NotClaims

부울 입력 클레임의 Not 연산을 계산하고 연산 결과를 사용하여 출력 클레임을 설정합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim inputClaim boolean 연산을 수행할 클레임입니다.
OutputClaim outputClaim boolean 이 클레임 변환을 호출하고 나면 생성되는 클레임(true 또는 false)입니다.

NotClaims의 예

다음 클레임 변환은 클레임에 대해 논리적 부정을 수행하는 방법을 보여줍니다.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim: false
  • 출력 클레임:
    • outputClaim: true

OrClaims

두 부울 입력 클레임의 Or을 계산하고 연산 결과를 사용하여 출력 클레임을 설정합니다. 이 클레임 변환의 라이브 데모를 확인하세요.

요소 TransformationClaimType 데이터 형식 메모
InputClaim inputClaim1 boolean 평가할 첫 번째 클레임입니다.
InputClaim inputClaim2 boolean 평가할 두 번째 클레임입니다.
OutputClaim outputClaim boolean 이 클레임 변환을 호출하고 나면 생성되는 클레임(true 또는 false)입니다.

OrClaims의 예

다음 클레임 변환은 두 부울 클레임의 Or 연산을 수행하는 방법을 보여 줍니다.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="OrClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedNotExists" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentTOSSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 입력 클레임:
    • inputClaim1: true
    • inputClaim2: false
  • 출력 클레임:
    • outputClaim: true

다음 단계