Azure Active Directory B2C 사용자 지정 정책에서 유효성 검사 기술 프로필 정의

참고 항목

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

유효성 검사 기술 프로필은 Microsoft Entra ID 또는 REST API와 같은 모든 프로토콜의 일반적인 기술 프로필입니다. 유효성 검사 기술 프로필은 출력 클레임을 반환하거나 다음 데이터와 함께 4xx HTTP 상태 코드를 반환합니다. 자세한 내용은 오류 메시지 반환을 참조하세요.

{
    "version": "1.0.0",
    "status": 409,
    "userMessage": "Your error message"
}

유효성 검사 기술 프로필의 출력 클레임 범위는 유효성 검사 기술 프로필을 호출하는 자체 어설션된 기술 프로필 및 유효성 검사 기술 프로필로 제한됩니다. 다음 오케스트레이션 단계에서 출력 클레임을 사용하려면 유효성 검사 기술 프로필을 호출하는 자체 어설션된 기술 프로필에 출력 클레임을 추가합니다.

유효성 검사 기술 프로필은 ValidationTechnicalProfiles 요소에 표시되는 순서대로 실행됩니다. 유효성 검사 기술 프로필에서 오류가 발생하거나 성공하는 경우 후속 유효성 검사 기술 프로필을 계속 실행할지 여부를 유효성 검사 기술 프로필에 구성할 수 있습니다.

유효성 검사 기술 프로필은 ValidationTechnicalProfile 요소에 정의된 사전 조건에 따라 조건부로 실행할 수 있습니다. 예를 들어 특정 클레임이 있는지 또는 클레임이 지정된 값과 같은지 여부를 검사 수 있습니다.

자체 어설션된 기술 프로필은 일부 또는 모든 출력 클레임의 유효성을 검사하는 데 사용할 유효성 검사 기술 프로필을 정의할 수 있습니다. 참조된 기술 프로필의 모든 입력 클레임은 참조 유효성 검사 기술 프로필의 출력 클레임에 표시되어야 합니다.

참고 항목

자체 어설션된 기술 프로필만 유효성 검사 기술 프로필을 사용할 수 있습니다. 자체 어설션되지 않은 기술 프로필에서 출력 클레임의 유효성을 검사해야 하는 경우 유효성 검사를 담당하는 기술 프로필을 수용하기 위해 사용자 경험에서 추가 오케스트레이션 단계를 사용하는 것이 좋습니다.

ValidationTechnicalProfiles

ValidationTechnicalProfiles 요소에는 다음 요소가 포함됩니다.

요소 발생 설명
ValidationTechnicalProfile 1:n 참조하는 기술 프로필의 출력 클레임 중 일부 또는 전부의 유효성을 검사하는 데 사용할 기술 프로필입니다.

ValidationTechnicalProfile 요소에는 다음 특성이 포함됩니다.

Attribute Required 설명
참조 정책 또는 부모 정책에 이미 정의된 기술 프로필의 식별자입니다.
ContinueOnError 아니요 이 유효성 검사 기술 프로필이 오류를 발생시키는 경우 후속 유효성 검사 기술 프로필의 유효성 검사를 계속할지 여부를 나타냅니다. 가능한 값: true 또는 false(기본값, 추가 유효성 프로필의 처리가 중지되고 오류가 반환됨)
ContinueOnSuccess 아니요 이 유효성 검사 기술 프로필이 성공하는 경우 후속 유효성 검사 프로필의 유효성을 계속 검사할지 여부를 나타냅니다. 가능한 값: true 또는 false. 기본값은 true추가 유효성 검사 프로필의 처리가 계속됨을 의미합니다.

참고 항목

현재 ClaimsTransformation 형식의 유효성 검사 기술 프로필에 대해 ContinueOnError를 false로 설정하면 기술 프로필이 설정을 적용하지 않습니다. 이 문제를 해결하려면 사전 조건을 대신 사용합니다.

ValidationTechnicalProfile 요소에는 다음 요소가 포함됩니다.

요소 발생 설명
전제 조건 0:1 유효성 검사 기술 프로필을 실행하려면 충족해야 하는 사전 조건 목록입니다.

Precondition 요소에는 다음 특성이 포함됩니다.

Attribute Required 설명
Type 사전 조건에 대해 수행할 검사 또는 쿼리의 형식입니다. 지정된 클레임이 사용자의 현재 클레임 집합에 있는 경우 작업을 수행하도록 보장하기 위해 ClaimsExist가 지정되거나, 지정된 클레임이 있고 해당 값이 지정된 값과 같은 경우 작업을 수행하도록 보장하기 위해 ClaimEquals가 지정됩니다.
ExecuteActionsIf 테스트가 true이거나 false인 경우 사전 조건의 작업을 수행해야 하는지 여부를 나타냅니다.

Precondition 요소에는 다음 요소가 포함됩니다.

요소 발생 설명
1:n 검사에 사용되는 데이터입니다. 이 검사 형식이ClaimsExist면 이 필드는 쿼리할 ClaimTypeReferenceId를 지정합니다. 검사 형식이ClaimEquals면 이 필드는 쿼리할 ClaimTypeReferenceId를 지정합니다. 다른 값 요소에는 검사 값이 포함되어 있습니다.
작업 1:1 오케스트레이션 단계 내에서 검사 전제 조건이 true인 경우 수행해야 하는 작업입니다. Action의 값은 SkipThisValidationTechnicalProfile로 설정됩니다. 연결된 유효성 검사 기술 프로필을 실행하지 않도록 지정합니다.

예시

다음 예제에서는 이러한 유효성 검사 기술 프로필을 사용합니다.

  1. 첫 번째 유효성 검사 기술 프로필은 사용자 자격 증명을 검사 잘못된 사용자 이름 또는 잘못된 암호와 같은 오류가 발생하면 계속되지 않습니다.
  2. 다음 유효성 검사 기술 프로필은 userType 클레임이 없거나 userType Partner값이 있으면 실행되지 않습니다. 유효성 검사 기술 프로필은 내부 고객 데이터베이스에서 사용자 프로필을 읽으려고 시도하고, 사용할 수 없는 REST API 서비스 또는 내부 오류와 같은 오류가 발생하더라도 계속됩니다.
  3. 마지막 유효성 검사 기술 프로필은 userType 클레임이 없거나 userType Customer값이 있으면 실행되지 않습니다. 유효성 검사 기술 프로필은 내부 파트너 데이터베이스에서 사용자 프로필을 읽으려고 시도하고, 사용할 수 없는 REST API 서비스 또는 내부 오류와 같은 오류가 발생하더라도 계속됩니다.
<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="login-NonInteractive" ContinueOnError="false" />
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromCustomersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Partner</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromPartnersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Customer</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
</ValidationTechnicalProfiles>