다음을 통해 공유


Azure Active Directory B2C 사용자 지정 정책을 사용하여 사용자 계정 만들기 및 읽기

Azure AD B2C(Azure Active Directory B2C)는 Microsoft Entra ID를 기반으로 빌드되므로 Microsoft Entra ID 스토리지를 사용하여 사용자 계정을 저장합니다. Azure AD B2C 디렉터리 사용자 프로필에는 이름, 성, 구/군/시, 우편 번호, 전화 번호 등의 기본 제공 특성 세트가 제공되지만 외부 데이터 저장소가 없어도 고유한 사용자 지정 특정을 사용하여 사용자 프로필을 확장할 수 있습니다.

사용자 지정 정책은 Microsoft Entra ID 기술 프로필을 통해 Microsoft Entra ID 스토리지에 연결하여 사용자 정보를 저장, 업데이트 또는 삭제할 수 있습니다. 이 문서에서는 JWT 토큰이 반환되기 전에 사용자 계정을 저장하고 읽도록 Microsoft Entra ID 기술 프로필 세트를 구성하는 방법을 알아봅니다.

시나리오 개요

Azure Active Directory B2C 사용자 지정 정책을 사용하여 REST API 호출 문서에서는 사용자의 정보를 수집하고, REST API라는 데이터의 유효성을 검사하고, 마지막으로 사용자 계정을 저장하지 않고 JWT를 반환했습니다. 정책 실행이 완료되면 정보가 손실되지 않도록 사용자 정보를 저장해야 합니다. 이번에는 사용자 정보를 수집하고 유효성을 검사한 후 Azure AD B2C 스토리지에 사용자 정보를 저장한 다음, JWT 토큰을 반환하기 전에 읽어야 합니다. 전체 프로세스는 다음 다이어그램에 표시됩니다.

A flowchart of creating a user account in Azure AD.

필수 조건

참고 항목

이 문서는 Azure Active Directory B2C 방법 가이드 시리즈에서 사용자 고유의 사용자 지정 정책 만들기 및 실행의 일부입니다. 이 시리즈는 첫 번째 문서부터 시작하는 것이 좋습니다.

1단계 - 클레임 선언

userPrincipalNamepasswordPolicies라는 두 개의 추가 클레임을 선언해야 합니다.

  1. ContosoCustomPolicy.XML 파일에서 ClaimsSchema 요소를 찾고 다음 코드를 사용하여 userPrincipalNamepasswordPolicies 클레임을 선언합니다.

        <ClaimType Id="userPrincipalName">
            <DisplayName>UserPrincipalName</DisplayName>
            <DataType>string</DataType>
            <UserHelpText>Your user name as stored in the Azure Active Directory.</UserHelpText>
        </ClaimType>
        <ClaimType Id="passwordPolicies">
            <DisplayName>Password Policies</DisplayName>
            <DataType>string</DataType>
            <UserHelpText>Password policies used by Azure AD to determine password strength, expiry etc.</UserHelpText>
        </ClaimType>
    

    사용자 프로필 특성 문서에서 userPrincipalNamepasswordPolicies 클레임의 사용에 대해 자세히 알아봅니다.

2단계 - Microsoft Entra ID 기술 프로필 만들기

두 개의 Microsoft Entra ID 기술 프로필을 구성해야 합니다. 한 기술 프로필은 사용자 세부 정보를 Microsoft Entra ID 스토리지에 쓰고 다른 기술 프로필은 Microsoft Entra ID 스토리지에서 사용자 계정을 읽습니다.

  1. ContosoCustomPolicy.XML 파일에서 ClaimsProviders 요소를 찾고 아래 코드를 사용하여 새 클레임 공급자를 추가합니다. 이 클레임 공급자에는 Microsoft Entra ID 기술 프로필이 포함됩니다.

        <ClaimsProvider>
            <DisplayName>Azure AD Technical Profiles</DisplayName>
            <TechnicalProfiles>
                <!--You'll add you Azure AD Technical Profiles here-->
            </TechnicalProfiles>
        </ClaimsProvider>
    
  2. 방금 만든 클레임 공급자에서 다음 코드를 사용하여 Microsoft Entra ID 기술 프로필을 추가합니다.

        <TechnicalProfile Id="AAD-UserWrite">
            <DisplayName>Write user information to AAD</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
                <Item Key="Operation">Write</Item>
                <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
                <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">The account already exists. Try to create another account</Item>
            </Metadata>
            <InputClaims>
                <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" Required="true" />
            </InputClaims>
            <PersistedClaims>
                <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />        
                <PersistedClaim ClaimTypeReferenceId="displayName" />
                <PersistedClaim ClaimTypeReferenceId="givenName" />
                <PersistedClaim ClaimTypeReferenceId="surname" />
                <PersistedClaim ClaimTypeReferenceId="password"/>
                <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration,DisableStrongPassword" />
            </PersistedClaims>
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="objectId" />
                <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
                <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
            </OutputClaims>
        </TechnicalProfile>
    

    새로운 Microsoft Entra ID 기술 프로필인 AAD-UserWrite를 추가했습니다. 기술 프로필의 다음과 같은 중요한 부분을 기록해 두어야 합니다.

    • Operation: 작업(operation)은 수행할 작업(action)(이 경우 Write)을 지정합니다. Microsoft Entra ID 기술 공급자의 다른 작업에 대해 자세히 알아봅니다.

    • 지속형 클레임: PersistedClaims 요소에는 Microsoft Entra ID 스토리지에 저장해야 하는 모든 값이 포함됩니다.

    • InputClaims: InputClaims 요소는 디렉터리에서 계정을 조회하거나 새 계정을 만드는 데 사용되는 클레임을 포함합니다. 모든 Microsoft Entra ID 기술 프로필의 입력 클레임 컬렉션에 정확히 하나의 입력 클레임 요소가 있어야 합니다. 이 기술 프로필은 email 클레임을 사용자 계정의 키 식별자로 사용합니다. 사용자 계정을 고유하게 식별하는 데 사용할 수 있는 다른 키 식별자에 대해 자세히 알아봅니다.

  3. ContosoCustomPolicy.XML 파일에서 AAD-UserWrite 기술 프로필을 찾고 다음 코드를 사용하여 그 뒤에 새 기술 프로필을 추가합니다.

        <TechnicalProfile Id="AAD-UserRead">
            <DisplayName>Read user from Azure AD storage</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
                <Item Key="Operation">Read</Item>
                <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">false</Item>
                <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
            </Metadata>
            <InputClaims>
                <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" Required="true" />
            </InputClaims>
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="objectId" />
                <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
                <OutputClaim ClaimTypeReferenceId="givenName"/>
                <OutputClaim ClaimTypeReferenceId="surname"/>
                <OutputClaim ClaimTypeReferenceId="displayName"/>
            </OutputClaims>
        </TechnicalProfile>
    

    새로운 Microsoft Entra ID 기술 프로필인 AAD-UserRead를 추가했습니다. InputClaim 섹션에 email이 있는 사용자 계정을 찾은 경우 이 기술 프로필이 읽기 작업을 수행하고 objectId, userPrincipalName, givenName, surnamedisplayName 클레임을 반환하도록 구성했습니다.

3단계 - Microsoft Entra ID 기술 프로필 사용

UserInformationCollector 자체 어설션 기술 프로필을 사용하여 사용자 세부 정보를 수집한 후에는 AAD-UserWrite 기술 프로필을 사용하여 사용자 계정을 Microsoft Entra ID 스토리지에 써야 합니다. 이렇게 하려면 UserInformationCollector 자체 어설션 기술 프로필에서 AAD-UserWrite 기술 프로필을 유효성 검사 기술 프로필로 사용합니다.

ContosoCustomPolicy.XML 파일에서 UserInformationCollector 기술 프로필을 찾은 다음, ValidationTechnicalProfiles 컬렉션에서 AAD-UserWrite 기술 프로필을 유효성 검사 기술 프로필로 추가합니다. 이 기술 프로필은 CheckCompanyDomain 유효성 검사 기술 프로필 뒤에 추가해야 합니다.

JWT 토큰을 발급하기 전에 사용자 경험 오케스트레이션 단계에서 AAD-UserRead 기술 프로필을 사용하여 사용자 세부 정보를 읽습니다.

4단계 - ClaimGenerator 기술 프로필 업데이트

ClaimGenerator 기술 프로필을 사용하여 GenerateRandomObjectIdTransformation, CreateDisplayNameTransformationCreateMessageTransformation의 세 가지 클레임 변환을 실행합니다.

  1. ContosoCustomPolicy.XML 파일에서 ClaimGenerator 기술 프로필을 찾고 다음 코드로 바꿉니다.

        <TechnicalProfile Id="UserInputMessageClaimGenerator">
            <DisplayName>User Message Claim Generator Technical Profile</DisplayName>
            <Protocol Name="Proprietary"
                Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="message" />
            </OutputClaims>
            <OutputClaimsTransformations>
                <OutputClaimsTransformation ReferenceId="CreateMessageTransformation" />
            </OutputClaimsTransformations>
        </TechnicalProfile>
    
        <TechnicalProfile Id="UserInputDisplayNameGenerator">
            <DisplayName>Display Name Claim Generator Technical Profile</DisplayName>
            <Protocol Name="Proprietary"
                Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="displayName" />
            </OutputClaims>
            <OutputClaimsTransformations>
                <OutputClaimsTransformation ReferenceId="CreateDisplayNameTransformation" />
            </OutputClaimsTransformations>
        </TechnicalProfile>
    

    기술 프로필을 두 개의 개별 기술 프로필로 분리했습니다. UserInputMessageClaimGenerator 기술 프로필은 JWT 토큰에서 클레임으로 전송된 메시지를 생성합니다. UserInputDisplayNameGenerator 기술 프로필은 displayName 클레임을 생성합니다. displayName 클레임 값은 AAD-UserWrite 기술 프로필이 사용자 레코드를 Microsoft Entra ID 스토리지에 쓰기 전에 사용할 수 있어야 합니다. objectId는 계정이 만들어진 후 Microsoft Entra ID에 의해 생성되고 반환되므로 새 코드에서는 GenerateRandomObjectIdTransformation을 제거합니다. 따라서 정책 내에서 직접 생성할 필요가 없습니다.

  2. ContosoCustomPolicy.XML 파일에서 UserInformationCollector 자체 어설션 기술 프로필을 찾은 다음, UserInputDisplayNameGenerator 기술 프로필을 유효성 검사 기술 프로필로 추가합니다. 이렇게 하면 UserInformationCollector 기술 프로필의 ValidationTechnicalProfiles 컬렉션이 다음 코드와 같이 표시됩니다.

        <!--<TechnicalProfile Id="UserInformationCollector">-->
            <ValidationTechnicalProfiles>
                <ValidationTechnicalProfile ReferenceId="CheckCompanyDomain">
                    <Preconditions>
                        <Precondition Type="ClaimEquals" ExecuteActionsIf="false">
                            <Value>accountType</Value>
                            <Value>work</Value>
                            <Action>SkipThisValidationTechnicalProfile</Action>
                        </Precondition>
                    </Preconditions>
                </ValidationTechnicalProfile>                        
                <ValidationTechnicalProfile ReferenceId="DisplayNameClaimGenerator"/>
                <ValidationTechnicalProfile ReferenceId="AAD-UserWrite"/>
            </ValidationTechnicalProfiles>
        <!--</TechnicalProfile>-->
    

    AAD-UserWrite 기술 프로필이 사용자 레코드를 Microsoft Entra ID 스토리지에 기록하기 전에 displayName 클레임 값을 사용할 수 있어야 하므로 AAD-UserWrite 전에 유효성 검사 기술 프로필을 추가해야 합니다.

5단계 - 사용자 경험 오케스트레이션 단계 업데이트

HelloWorldJourney 사용자 경험을 찾고 모든 오케스트레이션 단계를 다음 코드로 바꿉니다.

    <!--<OrchestrationSteps>-->
        <OrchestrationStep Order="1" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="AccountTypeInputCollectorClaimsExchange" TechnicalProfileReferenceId="AccountTypeInputCollector"/>
            </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="2" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="GetAccessCodeClaimsExchange" TechnicalProfileReferenceId="AccessCodeInputCollector" />
            </ClaimsExchanges>
            </OrchestrationStep>
        <OrchestrationStep Order="3" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="GetUserInformationClaimsExchange" TechnicalProfileReferenceId="UserInformationCollector"/>
            </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="4" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="AADUserReaderExchange" TechnicalProfileReferenceId="AAD-UserRead"/>
            </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="5" Type="ClaimsExchange">
            <ClaimsExchanges>
                <ClaimsExchange Id="GetMessageClaimsExchange" TechnicalProfileReferenceId="UserInputMessageClaimGenerator"/>
            </ClaimsExchanges>
        </OrchestrationStep>
        <OrchestrationStep Order="6" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer"/>
    <!--</OrchestrationSteps>-->

오케스트레이션 4단계에서 AAD-UserRead 기술 프로필을 실행하여 생성된 사용자 계정에서 사용자 세부 정보(JWT 토큰에 포함)를 읽습니다.

message 클레임을 저장하지 않으므로 오케스트레이션 5단계에서 UserInputMessageClaimGenerator를 실행하여 JWT 토큰에 포함할 message 클레임을 생성합니다.

6단계 - 정책 업로드

정책 파일을 업로드하려면 사용자 지정 정책 파일 업로드의 단계를 따릅니다. 이미 포털에 있는 파일과 이름이 같은 파일을 업로드하면 사용자 지정 정책이 이미 있는 경우 덮어쓰기를 선택해야 합니다.

7단계 - 정책 테스트

사용자 지정 정책을 테스트하려면 사용자 지정 정책 테스트의 단계를 따릅니다.

정책 실행이 완료되고 ID 토큰을 받으면 사용자 레코드가 만들어졌는지 확인합니다.

  1. 전역 관리자 또는 권한 있는 역할 관리자 권한으로 Azure Portal에 로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.

  3. Azure 서비스에서 Azure AD B2C를 선택합니다. 또는 검색 상자를 사용하여 Azure AD B2C를 찾고 선택합니다.

  4. 관리에서 사용자를 선택합니다.

  5. 방금 만든 사용자 계정을 찾고 선택합니다. 계정 프로필은 아래 스크린샷과 같이 표시됩니다.

    A screenshot of creating a user account in Azure AD.

AAD-UserWrite Microsoft Entra ID 기술 프로필에는 사용자가 이미 존재하는 경우 오류 메시지가 발생하도록 지정되어 있습니다.

동일한 메일 주소를 사용하여 사용자 지정 정책을 다시 테스트합니다. ID 토큰을 발급하기 위해 정책을 완료까지 실행하는 대신 아래 스크린샷과 유사한 오류 메시지가 표시되어야 합니다.

A screenshot of error as account already exists.

참고 항목

password 클레임 값은 매우 중요한 정보이므로 사용자 지정 정책에서 클레임 값 처리 방법에 매우 주의해야 합니다. 비슷한 이유로 Azure AD B2C는 암호 클레임 값을 특수 값으로 처리합니다. 자체 어설션 기술 프로필에서 암호 클레임 값을 수집하는 경우 해당 값은 동일한 기술 프로필 내에서 또는 동일한 자체 어설션 기술 프로필에서 참조되는 유효성 검사 기술 프로필 내에서만 사용할 수 있습니다. 자체 어설션 기술 프로필의 실행이 완료되고 다른 기술 프로필로 이동하면 값이 손실됩니다.

사용자 메일 주소 확인

사용자의 메일을 사용하여 사용자 계정을 만들기 전에 해당 메일을 확인하는 것이 좋습니다. 메일 주소를 확인할 때 실제 사용자가 계정을 만드는지 확인합니다. 또한 사용자가 올바른 메일 주소를 사용하여 계정을 만들고 있는지 확인하도록 도울 수 있습니다.

Azure AD B2C의 사용자 지정 정책은 확인 표시 컨트롤을 사용하여 메일 주소를 확인하는 방법을 제공합니다. 확인 코드를 메일에 보냅니다. 코드가 전송된 후 사용자는 메시지를 읽고, 표시 컨트롤에서 제공하는 컨트롤에 확인 코드를 입력하고, 코드 확인 단추를 선택합니다.

표시 컨트롤은 특수 기능이 있고 Azure AD B2C(Azure Active Directory B2C) 백 엔드 서비스와 상호 작용하는 사용자 인터페이스 요소입니다. 이를 통해 사용자는 백 엔드에서 유효성 검사 기술 프로필을 호출하는 페이지에서 작업을 수행할 수 있습니다. 표시 컨트롤은 페이지에 표시되며 자체 어설션된 기술 프로필에서 참조됩니다.

표시 컨트롤을 사용하여 메일 확인을 추가하려면 다음 단계를 사용합니다.

클레임 선언

확인 코드를 포함하는 데 사용할 클레임을 선언해야 합니다.

클레임을 선언하려면 ContosoCustomPolicy.XML 파일에서 ClaimsSchema 요소를 찾고 다음 코드를 사용하여 verificationCode 클레임을 선언합니다.

    <!--<ClaimsSchema>-->
        ...
        <ClaimType Id="verificationCode">
            <DisplayName>Verification Code</DisplayName>
            <DataType>string</DataType>
            <UserHelpText>Enter your verification code</UserHelpText>
            <UserInputType>TextBox</UserInputType>
        </ClaimType>
    <!--</ClaimsSchema>-->

보내기 구성 및 코드 기술 프로필 확인

Azure AD B2C는 Microsoft Entra ID SSPR 기술 프로필을 사용하여 이메일 주소를 확인합니다. 이 기술 프로필은 코드를 생성하고 메일 주소에 보낼 수 있거나 구성 방법에 따라 코드를 확인합니다.

ContosoCustomPolicy.XML 파일에서 ClaimsProviders 요소를 찾고 다음 코드를 사용하여 클레임 공급자를 추가합니다.

    <ClaimsProvider>
        <DisplayName>Azure AD self-service password reset (SSPR)</DisplayName>
        <TechnicalProfiles>
            <TechnicalProfile Id="AadSspr-SendCode">
            <DisplayName>Send Code</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
                <Item Key="Operation">SendCode</Item>
            </Metadata>
            <InputClaims>
                <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress" />
            </InputClaims>
            </TechnicalProfile>
            <TechnicalProfile Id="AadSspr-VerifyCode">
            <DisplayName>Verify Code</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
                <Item Key="Operation">VerifyCode</Item>
            </Metadata>
            <InputClaims>
                <InputClaim ClaimTypeReferenceId="verificationCode" />
                <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress" />
            </InputClaims>
            </TechnicalProfile>
        </TechnicalProfiles>
    </ClaimsProvider>

두 개의 기술 프로필 AadSspr-SendCodeAadSspr-VerifyCode를 구성했습니다. AadSspr-SendCode는 코드를 생성하고 InputClaims 섹션에 지정된 메일 주소로 보내지만, AadSspr-VerifyCode는 코드를 확인합니다. 기술 프로필의 메타데이터에서 수행할 작업을 지정합니다.

표시 컨트롤 구성

사용자 메일을 확인할 수 있도록 메일 확인 표시 컨트롤을 구성해야 합니다. 구성하는 메일 확인 표시 컨트롤은 사용자의 메일을 수집하는 데 사용하는 메일 표시 클레임을 대체합니다.

표시 컨트롤을 구성하려면 다음 단계를 사용합니다.

  1. ContosoCustomPolicy.XML 파일에서 BuildingBlocks 섹션을 찾고 다음 코드를 사용하여 표시 컨트롤을 자식 요소로 추가합니다.

        <!--<BuildingBlocks>-->
            ....
            <DisplayControls>
                <DisplayControl Id="emailVerificationControl" UserInterfaceControlType="VerificationControl">
                  <DisplayClaims>
                    <DisplayClaim ClaimTypeReferenceId="email" Required="true" />
                    <DisplayClaim ClaimTypeReferenceId="verificationCode" ControlClaimType="VerificationCode" Required="true" />
                  </DisplayClaims>
                  <OutputClaims></OutputClaims>
                  <Actions>
                    <Action Id="SendCode">
                      <ValidationClaimsExchange>
                        <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendCode" />
                      </ValidationClaimsExchange>
                    </Action>
                    <Action Id="VerifyCode">
                      <ValidationClaimsExchange>
                        <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-VerifyCode" />
                      </ValidationClaimsExchange>
                    </Action>
                  </Actions>
                </DisplayControl>
            </DisplayControls> 
        <!--</BuildingBlocks>-->
    

    표시 컨트롤 emailVerificationControl을 선언했습니다. 다음 중요한 부분을 기록해 둡니다.

    • DisplayClaims - 자체 어설션 기술 프로필과 마찬가지로 이 섹션에서는 표시 컨트롤 내에서 사용자로부터 수집할 클레임 컬렉션을 지정합니다.

    • Actions - 표시 컨트롤에서 수행할 작업 순서를 지정합니다. 각 작업은 작업을 수행할 책임이 있는 기술 프로필을 참조합니다. 예를 들어 SendCode는 코드를 생성하고 메일 주소에 보내는 AadSspr-SendCode 기술 프로필을 참조합니다.

  2. ContosoCustomPolicy.XML 파일에서 UserInformationCollector 자체 어설션 기술 프로필을 찾고 email 표시 클레임을 emailVerificationControl 표시 컨트롤로 바꿉니다.

    시작:

        <DisplayClaim ClaimTypeReferenceId="email" Required="true"/>
    

    다음으로 변경:

        <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    
  3. 6단계7단계의 절차를 사용하여 정책 파일을 업로드하고 테스트합니다. 이번에는 사용자 계정을 만들기 전에 메일 주소를 확인해야 합니다.

Microsoft Entra ID 기술 프로필을 사용하여 사용자 계정 업데이트

새 계정을 만드는 대신 사용자 계정을 업데이트하도록 Microsoft Entra ID 기술 프로필을 구성할 수 있습니다. 이렇게 하려면 지정된 사용자 계정이 Metadata 컬렉션에 없는 경우 다음 코드를 사용하여 오류가 발생하도록 Microsoft Entra ID 기술 프로필을 설정합니다. OperationWrite로 설정해야 합니다.

    <Item Key="Operation">Write</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>

사용자 지정 특성 사용

이 문서에서는 기본 제공 사용자 프로필 특성을 사용하여 사용자 세부 정보를 저장하는 방법을 알아보았습니다. 그러나 일반적으로 특정 시나리오를 관리하기 위해 사용자 지정 특성을 만들어야 합니다. 이렇게 하려면 Azure Active Directory B2C에서 사용자 지정 특성 정의 문서의 지침을 따릅니다.

다음 단계