기술 프로필

참고 항목

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

기술 프로필다양한 유형의 당사자와 통신하는 기본 제공 메커니즘이 포함된 프레임워크를 제공합니다. 기술 프로필은 Azure AD B2C(Azure Active Directory B2C) 테넌트와 통신하여 사용자를 만들거나 사용자 프로필을 읽는 데 사용됩니다. 사용자와 상호 작용할 수 있도록 기술 프로필을 자체 어설션할 수 있습니다. 예를 들어 기술 프로필은 사용자의 자격 증명을 수집하여 로그인한 다음 등록 페이지 또는 암호 재설정 페이지를 렌더링할 수 있습니다.

기술 프로필 유형

기술 프로필을 사용하면 다음과 같은 유형의 시나리오를 사용할 수 있습니다.

  • Application Insights: 이벤트 데이터를 Application Insights에 보냅니다.
  • Microsoft Entra ID: Azure AD B2C 사용자 관리를 지원합니다.
  • Microsoft Entra 다단계 인증: Microsoft Entra 다단계 인증을 사용하여 전화 번호를 확인할 수 있도록 지원합니다.
  • 클레임 변환: 출력 클레임 변환을 호출하여 클레임 값을 조작하거나, 클레임의 유효성을 검사하거나, 출력 클레임 집합에 대한 기본값을 설정합니다.
  • ID 토큰 힌트: JWT 토큰 서명, 발급자 이름 및 토큰 대상 그룹의 유효성 id_token_hint 을 검사하고 인바운드 토큰에서 클레임을 추출합니다.
  • JWT 토큰 발급자: 신뢰 당사자 애플리케이션에 다시 반환되는 JWT 토큰을 내보낸다.
  • OAuth1: OAuth 1.0 프로토콜 ID 공급자와 페더레이션됩니다.
  • OAuth2: OAuth 2.0 프로토콜 ID 공급자와 페더레이션
  • 일회성 암호: 일회성 암호의 생성 및 확인을 관리하기 위한 지원을 제공합니다.
  • OpenID 커넥트: OpenID 커넥트 프로토콜 ID 공급자와 페더레이션합니다.
  • 전화 요소: 전화 번호 등록 및 확인을 지원합니다.
  • RESTful 공급자: 사용자 입력 유효성 검사, 사용자 데이터 보강 또는 LOB(기간 업무) 애플리케이션과의 통합과 같은 REST API 서비스를 호출합니다.
  • SAML ID 공급자: 모든 SAML 프로토콜 ID 공급자와 페더레이션
  • SAML 토큰 발급자: 신뢰 당사자 애플리케이션으로 다시 반환되는 SAML 토큰을 내보낸다.
  • 자체 어설션: 사용자와 상호 작용합니다. 예를 들어 로그인, 등록 페이지 렌더링 또는 암호 재설정을 위해 사용자의 자격 증명을 수집합니다.
  • 세션 관리: 다양한 유형의 세션을 처리합니다.

기술 프로필 흐름

모든 유형의 기술 프로필은 동일한 개념을 공유합니다. 먼저 입력 클레임을 읽고 클레임 변환을 실행합니다. 그런 다음, ID 공급자, REST API 또는 Microsoft Entra 디렉터리 서비스와 같은 구성된 당사자와 통신합니다. 프로세스가 완료되면 기술 프로필은 출력 클레임을 반환하고 출력 클레임 변환을 실행할 수 있습니다. 다음 다이어그램은 기술 프로필에서 참조되는 변환 및 매핑이 처리되는 방법을 보여 줍니다. 클레임 변환이 실행된 후에는 기술 프로필이 상호 작용하는 당사자에 관계없이 출력 클레임이 클레임 모음에 즉시 저장됩니다.

Diagram that illustrates the technical profile flow.

  1. SSO(Single Sign-On) 세션 관리: SSO 세션 관리를 사용하여 기술 프로필의 세션 상태를 복원합니다.
  2. 입력 클레임 변환: 기술 프로필이 시작되기 전에 Azure AD B2C에서 입력 클레임 변환을 실행합니다.
  3. 입력 클레임: 클레임은 기술 프로필에 사용되는 클레임 모음에서 선택됩니다.
  4. 기술 프로필 실행: 기술 프로필은 구성된 당사자와 클레임을 교환합니다. 예:
    • 사용자를 ID 공급자로 리디렉션하여 로그인을 완료합니다. 로그인에 성공하면 사용자가 다시 반환되고 기술 프로필 실행이 계속됩니다.
    • 매개 변수를 InputClaims로 보내고 정보를 OutputClaims로 다시 가져오는 동안 REST API를 호출합니다.
    • 사용자 계정을 만들거나 업데이트합니다.
    • 다단계 인증 문자 메시지를 보내고 확인합니다.
  5. 유효성 검사 기술 프로필: 자체 어설션된 기술 프로필은 유효성 검사 기술 프로필을 호출하여 사용자가 프로파일한 데이터의 유효성을 검사할 수 있습니다. 자체 어설션된 기술 프로필만 유효성 검사 기술 프로필을 사용할 수 있습니다.
  6. 출력 클레임: 클레임이 클레임 모음으로 다시 반환됩니다. 이러한 클레임은 다음 오케스트레이션 단계 또는 출력 클레임 변환에서 사용할 수 있습니다.
  7. 출력 클레임 변환: 기술 프로필이 완료된 후 Azure AD B2C는 출력 클레임 변환을 실행합니다.
  8. SSO 세션 관리: SSO 세션 관리를 사용하여 기술 프로필의 데이터를 세션에 유지합니다.

TechnicalProfiles 요소에는 클레임 공급자가 지원하는 기술 프로필 세트가 포함됩니다. 모든 클레임 공급자에는 하나 이상의 기술 프로필이 있어야 합니다. 기술 프로필은 클레임 공급자와 통신하는 데 필요한 엔드포인트 및 프로토콜을 결정합니다. 클레임 공급자는 여러 기술 프로필을 가질 수 있습니다.

<ClaimsProvider>
  <DisplayName>Display name</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Technical profile identifier">
      <DisplayName>Display name of technical profile</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        ...
      </Metadata>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

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

Attribute Required 설명
ID 기술 프로필의 고유 식별자입니다. 정책 파일의 다른 요소에서 이 식별자를 사용하여 기술 프로필을 참조할 수 있습니다. OrchestrationStepsValidationTechnicalProfile을 예로 들 수 있습니다.

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

요소 발생 설명
도메인 0:1 기술 프로필의 do기본 이름입니다. 예를 들어 기술 프로필이 Facebook ID 공급자를 지정하는 경우 do기본 이름은 Facebook.com.
DisplayName 1:1 기술 프로필의 표시 이름입니다.
설명 0:1 기술 프로필에 대한 설명입니다.
프로토콜 1:1 상대방과의 통신에 사용되는 프로토콜입니다.
메타데이터 0:1 기술 프로필의 동작을 제어하는 키 및 값 세트입니다.
InputTokenFormat 0:1 입력 토큰의 형식입니다. 가능한 값은 JSON, JWT, SAML11 또는 SAML2입니다. 값은 JWT IETF 사양에 따라 JSON 웹 토큰을 나타냅니다. 값은 SAML11 OASIS 사양에 따라 SAML 1.1 보안 토큰을 나타냅니다. SAML2 값은 OASIS 사양에 따른 SAML 2.0 보안 토큰을 나타냅니다.
OutputTokenFormat 0:1 출력 토큰의 형식입니다. 가능한 값은 JSON, JWT, SAML11 또는 SAML2입니다.
CryptographicKeys 0:1 기술 프로필에 사용되는 암호화 키 목록입니다.
InputClaimsTransformations 0:1 클레임 공급자 또는 신뢰 당사자에게 클레임이 전송되기 전에 실행해야 하는 클레임 변환에 대한 이전에 정의된 참조 목록입니다.
InputClaims 0:1 기술 프로필에서 입력으로 사용하는 클레임 형식에 대해 이전에 정의된 참조 목록입니다.
PersistedClaims 0:1 기술 프로필에서 유지할 클레임 형식에 대해 이전에 정의된 참조 목록입니다.
DisplayClaims 0:1 자체 어설션된 기술 프로필에서 제공하는 클레임 형식에 대해 이전에 정의된 참조 목록입니다. DisplayClaims 기능은 현재 미리 보기로 제공됩니다.
OutputClaims 0:1 기술 프로필에서 출력으로 가져온 클레임 형식에 대해 이전에 정의된 참조 목록입니다.
OutputClaimsTransformations 0:1 클레임 공급자로부터 클레임을 받은 후 실행되어야 하는 클레임 변환에 대해 이전에 정의된 참조 목록입니다.
ValidationTechnicalProfiles 0:n 기술 프로필이 유효성 검사를 위해 사용하는 다른 기술 프로필에 대한 참조 목록입니다. 자세한 내용은 유효성 검사 기술 프로필을 참조 하세요.
SubjectNamingInfo 0:1 주체 이름이 클레임과 별도로 지정되는 토큰에서 주체 이름 생성을 제어합니다. 예를 들어 OAuth 또는 SAML입니다.
IncludeInSso 0:1 이 기술 프로필의 사용이 세션에 대해 SSO 동작을 적용해야 하는지 아니면 명시적 상호 작용이 필요한지 여부입니다. 이 요소는 유효성 검사 기술 프로필 내에서 사용되는 SelfAsserted 프로필에서만 유효합니다. 가능한 값은 true(기본값) 또는 false입니다.
IncludeClaimsFromTechnicalProfile 0:1 모든 입력 및 출력 클레임을 이 기술 프로필에 추가하려는 기술 프로필의 식별자입니다. 참조된 기술 프로필은 동일한 정책 파일에 정의되어야 합니다.
IncludeTechnicalProfile 0:1 모든 데이터를 이 기술 프로필에 추가하려는 기술 프로필의 식별자입니다.
UseTechnicalProfileForSessionManagement 0:1 세션 관리에 사용할 다른 기술 프로필입니다.
EnabledForUserJourneys 0:1 기술 프로필이 사용자 경험에서 실행되는지 제어합니다.

프로토콜

Protocol 요소는 상대방과의 통신에 사용할 프로토콜을 지정합니다. Protocol 요소에는 다음 특성이 포함됩니다.

Attribute Required 설명
입력 기술 프로필의 일부로 사용되는 Azure AD B2C에서 지원하는 유효한 프로토콜의 이름입니다. 가능한 값은 OAuth1, OAuth2, SAML2, OpenIdConnect, Proprietary 또는 None입니다.
처리기 아니요 프로토콜 이름을 설정 Proprietary하면 Azure AD B2C에서 프로토콜 처리기를 결정하는 데 사용되는 어셈블리의 이름을 지정합니다. 프로토콜 이름 특성을 None으로 설정하는 경우 Handler 특성을 포함하지 마세요.

메타데이터

메타데이터 요소에는 특정 프로토콜에 대한 관련 구성 옵션이 포함되어 있습니다. 지원되는 메타데이터 목록은 해당 기술 프로필 사양에 설명되어 있습니다. 메타데이터 요소에는 다음 요소가 포함됩니다.

요소 발생 설명
항목 0:n 기술 프로필과 관련된 메타데이터입니다. 각 유형의 기술 프로필에는 다른 메타데이터 항목 집합이 있습니다. 자세한 내용은 기술 프로필 유형 섹션을 참조하세요.

Item

Metadata 요소의 Item 요소에 포함되는 특성은 다음과 같습니다.

Attribute Required 설명
메타데이터 키입니다. 메타데이터 항목 목록은 각 기술 프로필 유형을 참조하세요.

다음 예제에서는 OAuth2 기술 프로필과 관련된 메타데이터를 사용하는 방법을 보여 줍니다.

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <Metadata>
    <Item Key="ProviderName">facebook</Item>
    <Item Key="authorization_endpoint">https://www.facebook.com/dialog/oauth</Item>
    <Item Key="AccessTokenEndpoint">https://graph.facebook.com/oauth/access_token</Item>
    <Item Key="HttpBinding">GET</Item>
    <Item Key="UsePolicyInRedirectUri">0</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

다음 예제에서는 REST API 기술 프로필과 관련된 메타데이터를 사용하는 방법을 보여 줍니다.

<TechnicalProfile Id="REST-Validate-Email">
  ...
  <Metadata>
    <Item Key="ServiceUrl">https://api.sendgrid.com/v3/mail/send</Item>
    <Item Key="AuthenticationType">Bearer</Item>
    <Item Key="SendClaimsIn">Body</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

암호화 키

Azure AD B2C는 통합된 서비스에 대한 신뢰를 구축하기 위해 비밀 및 인증서를 정책 키 형식으로 저장합니다. 기술 프로필을 실행하는 동안 Azure AD B2C는 Azure AD B2C 정책 키에서 암호화 키를 검색합니다. 그런 다음, Azure AD B2C는 키를 사용하여 신뢰를 설정하거나 토큰을 암호화하거나 서명합니다. 이러한 트러스트는 다음으로 구성됩니다.

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

요소 발생 설명
1:n 이 기술 프로필에 사용되는 암호화 키입니다.

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

Attribute Required 설명
ID 아니요 정책 파일의 다른 요소에서 참조되는 특정 키 쌍의 고유 식별자입니다.
StorageReferenceId 정책 파일의 다른 요소에서 참조되는 스토리지 키 컨테이너의 식별자입니다.

입력 클레임 변환

InputClaimsTransformations 요소에는 입력 클레임을 수정하거나 새 클레임을 생성하는 데 사용되는 입력 클레임 변환 요소의 컬렉션이 포함될 수 있습니다.

클레임 변환 컬렉션에서 이전 클레임 변환의 출력 클레임은 후속 입력 클레임 변환의 입력 클레임이 될 수 있습니다. 이러한 방식으로 서로 종속된 클레임 변환의 시퀀스를 사용할 수 있습니다.

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

요소 발생 설명
InputClaimsTransformation 1:n 클레임 공급자 또는 신뢰 당사자에게 클레임을 보내기 전에 실행해야 하는 클레임 변환의 식별자입니다. 클레임 변환을 사용하여 기존 ClaimsSchema 클레임을 수정하거나 새 클레임을 생성할 수 있습니다.

InputClaimsTransformation

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

Attribute Required 설명
참조 정책 파일 또는 부모 정책 파일에 이미 정의된 클레임 변환의 식별자입니다.

다음 기술 프로필은 CreateOtherMailsFromEmail 클레임 변환을 참조합니다. 클레임 변환은 디렉터리에 데이터를 유지하기 전에 컬렉션에 클레임 otherMails 값을 email 추가합니다.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  ...
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  ...
</TechnicalProfile>

입력 클레임

InputClaims 요소는 기술 프로필에 사용되는 클레임 모음에서 클레임을 선택합니다. 예를 들어 자체 어설션된 기술 프로필 은 입력 클레임을 사용하여 사용자가 제공하는 출력 클레임을 미리 채워 옵니다. REST API 기술 프로필은 입력 클레임을 사용하여 REST API 엔드포인트에 입력 매개 변수를 보냅니다. Azure AD B2C는 입력 클레임을 고유 식별자로 사용하여 계정을 읽거나, 업데이트하거나, 삭제합니다.

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

요소 발생 설명
InputClaim 1:n 예상된 입력 클레임 유형입니다.

InputClaim

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

Attribute Required 설명
ClaimTypeReferenceId 클레임 형식의 식별자입니다. 클레임은 정책 파일 또는 부모 정책 파일의 클레임 스키마 섹션에 이미 정의되어 있습니다.
DefaultValue 아니요 ClaimTypeReferenceId로 표시된 클레임이 없으면 클레임을 만드는 데 사용할 기본값으로, 결과 클레임을 기술 프로필에서 InputClaim 요소로 사용할 수 있습니다.
AlwaysUseDefaultValue 기본값을 강제로 사용합니다.
PartnerClaimType 아니요 지정된 정책 클레임 유형이 매핑되는 외부 파트너의 클레임 형식 식별자입니다. PartnerClaimType 특성이 지정되지 않은 경우 지정한 정책 클레임 유형이 동일한 이름의 파트너 클레임 유형에 매핑됩니다. 클레임 유형 이름이 다른 당사자와 다른 경우 이 속성을 사용합니다. 예를 들어 파트너가 first_name 클레임을 사용하는 동안 첫 번째 클레임 이름이 givenName인 경우입니다.

표시 클레임

DisplayClaims 요소에는 사용자로부터 데이터를 수집하기 위해 화면에 표시할 클레임 목록이 포함되어 있습니다. 표시 클레임 컬렉션에서 만든 클레임 형식 또는 표시 컨트롤대한 참조를 포함할 수 있습니다.

  • 클레임 유형은 화면에 표시할 클레임에 대한 참조입니다.
    • 사용자가 특정 클레임에 대한 값을 입력하도록 강제 지정하려면 DisplayClaim 요소의 Required 특성을 true로 설정합니다.
    • 표시 클레임 값을 미리 채우려면 이전에 설명한 입력 클레임을 사용합니다. 요소에 기본값이 포함될 수도 있습니다.
    • DisplayClaims 컬렉션의 ClaimType 요소는 UserInputType 요소를 Azure AD B2C에서 지원하는 모든 사용자 입력 형식으로 설정해야 합니다. 예는 다음과 같습니다TextBox.DropdownSingleSelect
  • 표시 컨트롤은 특수한 기능을 가지며 Azure AD B2C 백 엔드 서비스와 상호 작용하는 사용자 인터페이스 요소입니다. 이를 통해 사용자는 백 엔드에서 유효성 검사 기술 프로필을 호출하는 페이지에서 작업을 수행할 수 있습니다. 예를 들어 전자 메일 주소, 전화 번호 또는 고객 충성도 번호를 확인합니다.

DisplayClaims의 요소 순서는 Azure AD B2C가 화면에서 클레임을 렌더링하는 순서를 지정합니다.

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

요소 발생 설명
DisplayClaim 1:n 예상된 입력 클레임 유형입니다.

DisplayClaim

DisplayClaim 요소에 포함되는 특성은 다음과 같습니다.

Attribute Required 설명
ClaimTypeReferenceId 아니요 정책 파일 또는 부모 정책 파일의 ClaimsSchema 섹션에 이미 정의된 클레임 유형의 식별자입니다.
DisplayControlReferenceId 아니요 정책 파일 또는 부모 정책 파일의 ClaimsSchema 섹션에 이미 정의된 표시 컨트롤의 식별자입니다.
필수 아니요 표시 클레임이 필요한지 여부를 나타냅니다.

다음 예제에서는 자체 어설션된 기술 프로필에서 표시 클레임 및 표시 컨트롤을 사용하는 방법을 보여 줍니다.

Screenshot that shows a self-asserted technical profile with display claims.

다음 기술 프로필에서

  • 첫 번째 표시 클레임은 전자 메일 주소를 수집하고 확인하는 표시 컨트롤을 참조 emailVerificationControl 합니다.
  • 다섯 번째 표시 클레임은 전화 번호를 수집하고 확인하는 디스플레이 컨트롤을 참조 phoneVerificationControl 합니다.
  • 다른 표시 클레임은 사용자로부터 수집할 ClaimType 요소입니다.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim DisplayControlReferenceId="phoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
</TechnicalProfile>

지속형 클레임

PersistedClaims 요소에는 정책의 ClaimsSchema 섹션에 이미 정의된 클레임 유형과 Microsoft Entra 특성 이름 간에 가능한 매핑 정보가 포함된 Microsoft Entra ID 기술 프로필에서 유지해야 하는 모든 값이 포함됩니다.

Microsoft Entra 특성 이름을 포함하는 PartnerClaimType 특성이 지정되지 않은 경우 클레임 이름은 Microsoft Entra 특성 이름입니다.

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

요소 발생 설명
PersistedClaim 1:n 유지할 클레임 유형입니다.

PersistedClaim

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

Attribute Required 설명
ClaimTypeReferenceId 정책 파일 또는 부모 정책 파일의 ClaimsSchema 섹션에 이미 정의된 클레임 유형의 식별자입니다.
DefaultValue 아니요 클레임이 없는 경우 클레임을 만드는 데 사용할 기본값입니다.
PartnerClaimType 아니요 지정된 정책 클레임 유형이 매핑되는 외부 파트너의 클레임 형식 식별자입니다. PartnerClaimType 특성이 지정되지 않은 경우 지정한 정책 클레임 유형이 동일한 이름의 파트너 클레임 유형에 매핑됩니다. 클레임 유형 이름이 다른 당사자와 다른 경우 이 속성을 사용합니다. 예를 들어 파트너가 first_name 클레임을 사용하는 동안 첫 번째 클레임 이름이 givenName인 경우입니다.

다음 예제 에서 새 로컬 계정을 만드는 AAD-UserWriteUsingLogonEmail 기술 프로필 또는 시작 팩은 다음 클레임을 유지합니다.

<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
  <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
  <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
  <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
  <PersistedClaim ClaimTypeReferenceId="givenName" />
  <PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>

출력 클레임

OutputClaims 요소는 기술 프로필이 완료된 후 클레임 모음으로 다시 반환되는 클레임 컬렉션입니다. 이러한 클레임은 다음 오케스트레이션 단계 또는 출력 클레임 변환에서 사용할 수 있습니다. OutputClaims 요소에는 다음 요소가 포함됩니다.

요소 발생 설명
OutputClaim 1:n 예상 출력 클레임 유형입니다.

OutputClaim

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

Attribute Required 설명
ClaimTypeReferenceId 정책 파일 또는 부모 정책 파일의 ClaimsSchema 섹션에 이미 정의된 클레임 유형의 식별자입니다.
DefaultValue 아니요 클레임이 없는 경우 클레임을 만드는 데 사용할 기본값입니다.
AlwaysUseDefaultValue 아니요 기본값을 강제로 사용합니다.
PartnerClaimType 아니요 지정된 정책 클레임 유형이 매핑되는 외부 파트너의 클레임 형식 식별자입니다. 파트너 클레임 유형 특성을 지정하지 않으면 지정된 정책 클레임 유형이 동일한 이름의 파트너 클레임 형식에 매핑됩니다. 클레임 유형 이름이 다른 당사자와 다른 경우 이 속성을 사용합니다. 예를 들어 파트너가 first_name 클레임을 사용하는 동안 첫 번째 클레임 이름이 givenName인 경우입니다.

출력 클레임 변환

OutputClaimsTransformations 요소에는 OutputClaimsTransformation 요소의 컬렉션이 포함될 수 있습니다. 출력 클레임 변환은 출력 클레임을 수정하거나 새 클레임을 생성하는 데 사용됩니다. 실행 후 출력 클레임은 클레임 모음에 다시 저장됩니다. 다음 오케스트레이션 단계에서 해당 클레임을 사용할 수 있습니다.

클레임 변환 컬렉션에서 이전 클레임 변환의 출력 클레임은 후속 입력 클레임 변환의 입력 클레임이 될 수 있습니다. 이러한 방식으로 서로 종속된 클레임 변환의 시퀀스를 사용할 수 있습니다.

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

요소 발생 설명
OutputClaimsTransformation 1:n 클레임 공급자 또는 신뢰 당사자에게 클레임을 보내기 전에 실행해야 하는 클레임 변환의 식별자입니다. 클레임 변환을 사용하여 기존 ClaimsSchema 클레임을 수정하거나 새 클레임을 생성할 수 있습니다.

OutputClaimsTransformation

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

Attribute Required 설명
참조 정책 파일 또는 부모 정책 파일에 이미 정의된 클레임 변환의 식별자입니다.

다음 기술 프로필은 AssertAccountEnabledIsTrue 클레임 변환을 참조하여 디렉터리에서 accountEnabled 클레임을 읽은 후 계정이 사용하도록 설정되어 있는지 여부를 평가합니다.

<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="accountEnabled" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  ...
</TechnicalProfile>

유효성 검사 기술 프로필

유효성 검사 기술 프로필은 자체 어설션된 기술 프로필에서 출력 클레임의 유효성을 검사하는 데 사용됩니다. 유효성 검사 기술 프로필은 Microsoft Entra ID 또는 REST API와 같은 모든 프로토콜의 일반적인 기술 프로필입니다. 유효성 검사 기술 프로필에서 출력 클레임을 반환하거나 오류 코드를 반환합니다. 오류 메시지는 화면에서 사용자에게 렌더링되므로 사용자가 다시 시도할 수 있습니다.

다음 다이어그램에서는 Azure AD B2C에서 유효성 검사 기술 프로필을 사용하여 사용자 자격 증명의 유효성을 검사하는 방법을 보여 줍니다.

Diagram that shows a validation technical profile flow.

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

요소 발생 설명
ValidationTechnicalProfile 1:n 사용되는 기술 프로필의 식별자는 참조 기술 프로필의 출력 클레임 중 일부 또는 전부의 유효성을 검사합니다. 참조된 기술 프로필의 모든 입력 클레임이 참조 기술 프로필의 출력 클레임에 표시되어야 합니다.

ValidationTechnicalProfile

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

Attribute Required 설명
참조 정책 파일 또는 부모 정책 파일에 이미 정의된 기술 프로필의 식별자입니다.

SubjectNamingInfo

SubjectNamingInfo 요소는 신뢰 당사자 정책의 토큰에 사용되는 주체 이름을 정의합니다. SubjectNamingInfo 요소에는 다음 특성이 포함됩니다.

Attribute Required 설명
ClaimType 정책 파일의 ClaimsSchema 섹션에 이미 정의된 클레임 형식의 식별자입니다.

기술 프로필 포함

기술 프로필에는 설정을 변경하거나 새 기능을 추가하는 다른 기술 프로필이 포함될 수 있습니다. IncludeTechnicalProfile 요소는 기술 프로필이 파생되는 일반적인 기술 프로필에 대한 참조입니다. 정책 요소의 중복성과 복잡성을 줄이려면 핵심 요소를 공유하는 여러 기술 프로필이 있을 때 포함을 사용합니다. 공통 기술 프로필을 포함하는 특정 작업 기술 프로필과 함께 일반적인 구성 집합과 함께 공통 기술 프로필을 사용합니다.

다른 시나리오에 대해 서로 다른 클레임 집합을 보내야 하는 단일 엔드포인트가 있는 REST API 기술 프로필 이 있다고 가정합니다. REST API 엔드포인트 URI, 메타데이터, 인증 유형 및 암호화 키와 같은 공유 기능을 사용하여 공통 기술 프로필을 만듭니다. 일반적인 기술 프로필을 포함하는 특정 작업 기술 프로필을 만듭니다. 그런 다음 입력 및 출력 클레임을 추가하거나 해당 기술 프로필과 관련된 REST API 엔드포인트 URI를 덮어씁 수 있습니다.

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

Attribute Required 설명
참조 정책 파일 또는 부모 정책 파일에 이미 정의된 기술 프로필의 식별자입니다.

다음 예제에서는 포함의 사용을 보여 줍니다.

  • REST-API-Common: 기본 구성을 포함한 일반 기술 프로필입니다.
  • REST-ValidateProfile: REST-API-Common 기술 프로필을 포함하고 입력 및 출력 클레임을 지정합니다.
  • REST-UpdateProfile: REST-API-Common 기술 프로필을 포함하고, 입력 클레임을 지정하고, 메타데이터를 ServiceUrl 덮어씁니다.
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Common">
      <DisplayName>Base REST API configuration</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_B2cRestClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_B2cRestClientSecret" />
      </CryptographicKeys>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-ValidateProfile">
      <DisplayName>Validate the account and return promo code</DisplayName>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="promoCode" />
      </OutputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-UpdateProfile">
      <DisplayName>Update the user profile</DisplayName>  
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity/update</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

다단계 포함

기술 프로필에는 단일 기술 프로필이 포함될 수 있습니다. 포함 수준에는 제한이 없습니다. 예를 들어 AAD-UserReadUsingAlternativeSecurityId-NoError 기술 프로필에는 AAD-UserReadUsingAlternativeSecurityId가 포함됩니다. 이 기술 프로필은 RaiseErrorIfClaimsPrincipalDoesNotExist 메타데이터 항목을 설정하며 true , 소셜 계정이 디렉터리에 없는 경우 오류를 발생합니다. AAD-UserReadUsingAlternativeSecurityId-NoError 는 이 동작을 재정의하고 해당 오류 메시지를 사용하지 않도록 설정합니다.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
  </Metadata>
  <IncludeTechnicalProfile ReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId 에는 기술 프로필이 AAD-Common 포함됩니다.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">User does not exist. Please sign up before you can sign in.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId-NoErrorAAD-UserReadUsingAlternativeSecurityId모두 AAD-Common 기술 프로필에 지정되어 있으므로 필요한 프로토콜 요소를 지정하지 않습니다.

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  ...
</TechnicalProfile>

세션 관리에 기술 프로필 사용

UseTechnicalProfileForSessionManagement 요소는 SSO 세션 기술 프로필을 참조합니다. UseTechnicalProfileForSessionManagement 요소에는 다음 특성이 포함됩니다.

Attribute Required 설명
참조 정책 파일 또는 부모 정책 파일에 이미 정의된 기술 프로필의 식별자입니다.

사용자 경험에 사용

사용자 경험의 ClaimsProviderSelections는 클레임 공급자 선택 옵션과 해당 순서를 정의합니다. EnabledForUserJourneys 요소를 사용하여 사용자가 사용할 수 있는 클레임 공급자를 필터링합니다. EnabledForUserJourneys 요소에는 다음 값 중 하나가 포함됩니다.

  • 항상: 기술 프로필을 실행합니다.
  • Never: 기술 프로필을 건너뜁니다.
  • OnClaimsExistence: 기술 프로필에 지정된 특정 클레임이 있는 경우에만 실행됩니다.
  • OnItemExistenceInStringCollectionClaim: 문자열 컬렉션 클레임에 항목이 있는 경우에만 실행합니다.
  • OnItemAbsenceInStringCollectionClaim: 문자열 컬렉션 클레임에 항목이 없는 경우에만 실행합니다.

OnClaimsExistence, OnItemExistenceInStringCollectionClaim 또는 OnItemAbsenceInStringCollectionClaim을 사용하여 다음 메타데이터를 제공해야 합니다.

  • ClaimTypeOnWhichToEnable: 평가할 클레임의 형식을 지정합니다.
  • ClaimValueOnWhichToEnable: 비교할 값을 지정합니다.

다음 기술 프로필은 identityProviders 문자열 컬렉션에 다음 값facebook.com이 포함된 경우에만 실행됩니다.

<TechnicalProfile Id="UnLink-Facebook-OAUTH">
  <DisplayName>Unlink Facebook</DisplayName>
...
    <Metadata>
      <Item Key="ClaimTypeOnWhichToEnable">identityProviders</Item>
      <Item Key="ClaimValueOnWhichToEnable">facebook.com</Item>
    </Metadata>
...
  <EnabledForUserJourneys>OnItemExistenceInStringCollectionClaim</EnabledForUserJourneys>
</TechnicalProfile>