Share via


Azure Active Directory B2C 사용자 지정 정책에서 OAuth2 사용자 지정 오류 기술 프로필 정의

이 문서에서는 Azure AD B2C(Azure Active Directory B2C)를 사용하여 OAuth2 사용자 지정 오류를 처리하는 방법을 설명합니다. 정책 내에서 문제가 발생하는 경우 이 기술 프로필을 사용합니다. 기술 프로필은 OAuth2 또는 OpenId Connect 신뢰 당사자 애플리케이션에 오류를 반환합니다. OAuth2 사용자 지정 오류 기술 프로필의 실시간 데모를 체크 아웃합니다.

사용자 지정 OAuth2 오류 메시지를 처리하려면

  1. OAuth2 오류 기술 프로필을 정의합니다.
  2. 오류 코드 및 오류 메시지 클레임을 설정합니다.
  3. 사용자 경험에서 OAuth2 오류 기술 프로필을 호출합니다.

OAuth2 오류

오류는 다음 데이터와 함께 반환됩니다.

  • error - access_denied
  • error_description - AAD_Custom_<errorCode>: <errorMessage> 규칙을 사용하는 오류 메시지입니다.
  • Correlation ID -Azure AD B2C 상관 관계 ID입니다.
  • Timestamp - 오류의 타임스탬프입니다.

다음 예제에서는 https://jwt.ms 앱에 반환되는 사용자 지정 오류 메시지를 보여 줍니다.

https://jwt.ms/#error=access_denied&error_description=AAD_Custom_1234%3a+My+custom+error+message%0d%0aCorrelation+ID%3a+233bf9bd-747a-4800-9062-6236f3f69a47%0d%0aTimestamp%3a+2021-03-25+14%3a01%3a23Z%0d%0a

프로토콜

Protocol 요소의 Name 특성은 OAuth2로 설정해야 합니다. OutputTokenFormat 요소를 OAuth2Error로 설정합니다.

다음 예제는 ReturnOAuth2Error의 기술 프로필을 보여 줍니다.

<!--
 <ClaimsProviders> -->
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="ReturnOAuth2Error">
        <DisplayName>Return OAuth2 error</DisplayName>
        <Protocol Name="OAuth2" />
        <OutputTokenFormat>OAuth2Error</OutputTokenFormat>
        <CryptographicKeys>
          <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
        </CryptographicKeys>
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="errorCode" />
          <InputClaim ClaimTypeReferenceId="errorMessage" />
        </InputClaims>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
<!--
</ClaimsProviders> -->

입력 클레임

Inputclaims 요소는 OAuth2 오류를 반환하는 데 필요한 클레임 목록을 포함합니다.

ClaimReferenceId 필수 Description
errorCode 오류 코드입니다.
errorMessage 오류 메시지입니다.

암호화 키

CryptographicKeys 요소는 다음 키를 포함합니다.

attribute 필수 Description
issuer_secret X509 인증서(RSA 키 집합). 사용자 지정 정책 시작에서 구성하는 B2C_1A_TokenSigningKeyContainer 키를 사용합니다.

기술 프로필 호출

사용자 경험 또는 하위 경험(transfer 유형)에서 OAuth2 오류 기술 프로필을 호출할 수 있습니다. OAuth2 오류 기술 프로필에 대한 참조를 사용하여 오케스트레이션 단계 유형을 SendClaims로 설정합니다.

사용자 경험 또는 하위 경험에 이미 다른 SendClaims 오케스트레이션 단계가 있는 경우 DefaultCpimIssuerTechnicalProfileReferenceId 특성을 토큰 발급자 기술 프로필로 설정합니다.

다음 예제에서는

  • 사용자 경험 SignUpOrSignIn-CustomDefaultCpimIssuerTechnicalProfileReferenceId를 토큰 발급자 기술 프로필 JwtIssuer로 설정합니다.
  • 8번째 오케스트레이션 단계는 errorCode가 있는지 여부를 확인합니다. 이 코드가 있으면 ReturnOAuth2Error 기술 프로필을 호출하여 오류를 반환합니다.
  • errorCode가 없으면 9번째 오케스트레이션 단계가 토큰을 발급합니다.
<UserJourney Id="SignUpOrSignIn-Custom" DefaultCpimIssuerTechnicalProfileReferenceId="JwtIssuer">
  <OrchestrationSteps>
    ...
    <OrchestrationStep Order="8" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="ReturnOAuth2Error">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
          <Value>errorCode</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
    </OrchestrationStep>

    <OrchestrationStep Order="9" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />

  </OrchestrationSteps>
  <ClientDefinition ReferenceId="DefaultWeb" />
</UserJourney>

다음 단계

UserJourneys 에 대한 자세한 정보