Udostępnij za pośrednictwem


Tworzenie i odczytywanie konta użytkownika przy użyciu zasad niestandardowych usługi Azure Active Directory B2C

Usługa Azure Active Directory B2C (Azure AD B2C) jest oparta na identyfikatorze Entra firmy Microsoft i używa magazynu Microsoft Entra ID do przechowywania kont użytkowników. Profil użytkownika katalogu usługi Azure AD B2C zawiera wbudowany zestaw atrybutów, takich jak imię, nazwisko, miasto, kod pocztowy i numer telefonu, ale można rozszerzyć profil użytkownika przy użyciu własnych atrybutów niestandardowych bez konieczności używania zewnętrznego magazynu danych.

Zasady niestandardowe mogą łączyć się z magazynem Microsoft Entra ID przy użyciu profilu technicznego Microsoft Entra ID w celu przechowywania, aktualizowania lub usuwania informacji o użytkowniku. Z tego artykułu dowiesz się, jak skonfigurować zestaw profilów technicznych microsoft Entra ID do przechowywania i odczytywania konta użytkownika przed zwróceniem tokenu JWT.

Omówienie scenariusza

W artykule Wywoływanie interfejsu API REST przy użyciu usługi Azure Active Directory B2C zasad niestandardowych zbieramy informacje od użytkownika, weryfikowaliśmy dane, nazywano interfejsem API REST, a na koniec zwracaliśmy zestaw JWT bez przechowywania konta użytkownika. Musimy przechowywać informacje o użytkowniku, aby nie utracić informacji po zakończeniu wykonywania zasad. Tym razem po zebraniu informacji o użytkowniku i zweryfikowaniu go musimy przechowywać informacje o użytkowniku w magazynie usługi Azure AD B2C, a następnie odczytywać przed zwróceniem tokenu JWT. Pełny proces przedstawiono na poniższym diagramie.

A flowchart of creating a user account in Azure AD.

Wymagania wstępne

Uwaga

Ten artykuł jest częścią serii Instrukcje tworzenia i uruchamiania własnych zasad niestandardowych w usłudze Azure Active Directory B2C. Zalecamy rozpoczęcie tej serii od pierwszego artykułu.

Krok 1. Deklarowanie oświadczeń

Należy zadeklarować dwa kolejne oświadczenia, userPrincipalNamei passwordPolicies:

  1. ContosoCustomPolicy.XML W pliku znajdź element ClaimsSchema i zadeklaruj userPrincipalName i passwordPolicies oświadczenia, używając następującego kodu:

        <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>
    

    Dowiedz się więcej o użyciu userPrincipalName oświadczeń i passwordPolicies w artykule Atrybuty profilu użytkownika.

Krok 2. Tworzenie profilów technicznych identyfikatora entra firmy Microsoft

Należy skonfigurować dwa profile techniczne identyfikatora entra firmy Microsoft. Jeden profil techniczny zapisuje szczegóły użytkownika w magazynie Microsoft Entra ID, a drugi odczytuje konto użytkownika z magazynu Microsoft Entra ID.

  1. ContosoCustomPolicy.XML W pliku znajdź element ClaimsProviders i dodaj nowego dostawcę oświadczeń, używając poniższego kodu. Ten dostawca oświadczeń przechowuje profile techniczne identyfikatora entra firmy Microsoft:

        <ClaimsProvider>
            <DisplayName>Azure AD Technical Profiles</DisplayName>
            <TechnicalProfiles>
                <!--You'll add you Azure AD Technical Profiles here-->
            </TechnicalProfiles>
        </ClaimsProvider>
    
  2. W właśnie utworzonym dostawcy oświadczeń dodaj profil techniczny Microsoft Entra ID przy użyciu następującego kodu:

        <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>
    

    Dodaliśmy nowy profil techniczny microsoft Entra ID. AAD-UserWrite Należy zanotować następujące ważne elementy profilu technicznego:

    • Operacja: Operacja określa akcję do wykonania, w tym przypadku write. Dowiedz się więcej o innych operacjach u dostawcy technicznego identyfikatora entra firmy Microsoft.

    • Oświadczenia utrwalone: element PersistedClaims zawiera wszystkie wartości, które powinny być przechowywane w magazynie Microsoft Entra ID.

    • InputClaims: element InputClaims zawiera oświadczenie, które służy do wyszukiwania konta w katalogu lub tworzenia nowego. W kolekcji oświadczeń wejściowych musi znajdować się dokładnie jeden element oświadczenia wejściowego dla wszystkich profilów technicznych identyfikatora entra firmy Microsoft. Ten profil techniczny używa oświadczenia e-mail jako identyfikatora klucza dla konta użytkownika. Dowiedz się więcej o innych identyfikatorach kluczy, których można używać w sposób unikatowy do identyfikowania konta użytkownika.

  3. ContosoCustomPolicy.XML W pliku znajdź AAD-UserWrite profil techniczny, a następnie dodaj nowy profil techniczny, używając następującego kodu:

        <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>
    

    Dodaliśmy nowy profil techniczny microsoft Entra ID. AAD-UserRead Skonfigurowaliśmy ten profil techniczny, aby wykonać operację odczytu i zwrócić objectIdoświadczenia , userPrincipalName, givenNamesurname idisplayName, jeśli zostanie znalezione konto użytkownika z email sekcją InputClaim .

Krok 3. Korzystanie z profilu technicznego Microsoft Entra ID

Po zebraniu szczegółów użytkownika przy użyciu własnego profilu technicznego UserInformationCollector musimy napisać konto użytkownika w magazynie Microsoft Entra ID przy użyciu profilu technicznego AAD-UserWrite . W tym celu należy użyć profilu technicznego AAD-UserWrite jako profilu technicznego weryfikacji w profilu technicznym samodzielnie asertywnego UserInformationCollector .

ContosoCustomPolicy.XML W pliku znajdź UserInformationCollector profil techniczny, a następnie dodaj AAD-UserWrite profil techniczny jako profil techniczny weryfikacji w ValidationTechnicalProfiles kolekcji. Należy dodać to po CheckCompanyDomain profilu technicznym weryfikacji.

Użyjemy profilu technicznego AAD-UserRead w krokach aranżacji podróży użytkownika, aby odczytać szczegóły użytkownika przed wystawieniem tokenu JWT.

Krok 4. Aktualizowanie profilu technicznego ClaimGenerator

Używamy profilu technicznego ClaimGenerator do wykonywania trzech przekształceń oświadczeń, GenerateRandomObjectIdTransformation, CreateDisplayNameTransformation i CreateMessageTransformation.

  1. ContosoCustomPolicy.XML W pliku znajdź ClaimGenerator profil techniczny i zastąp go następującym kodem:

        <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>
    

    Profil techniczny został podzielony na dwa oddzielne profile techniczne. Profil techniczny UserInputMessageClaimGenerator generuje komunikat wysłany jako oświadczenie w tokenie JWT. Profil techniczny UserInputDisplayNameGenerator generuje displayName oświadczenie. Wartość displayName oświadczenia musi być dostępna, zanim AAD-UserWrite profil techniczny zapisze rekord użytkownika w magazynie Microsoft Entra ID. W nowym kodzie usuwamy funkcję GenerateRandomObjectIdTransformation , ponieważ objectId jest ona tworzona i zwracana przez identyfikator Entra firmy Microsoft po utworzeniu konta, więc nie musimy generować jej samodzielnie w ramach zasad.

  2. ContosoCustomPolicy.XML W pliku znajdź UserInformationCollector własny profil techniczny, a następnie dodaj UserInputDisplayNameGenerator profil techniczny jako profil techniczny weryfikacji. Po wykonaniu UserInformationCollector tej czynności kolekcja profilu ValidationTechnicalProfiles technicznego powinna wyglądać podobnie do następującego kodu:

        <!--<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>-->
    

    Przed zapisaniem rekordu użytkownika w magazynie Microsoft Entra ID należy dodać profil techniczny weryfikacji, AAD-UserWrite ponieważ displayName AAD-UserWrite wartość oświadczenia musi być dostępna.

Krok 5. Aktualizowanie kroków orkiestracji podróży użytkownika

HelloWorldJourney Znajdź podróż użytkownika i zastąp wszystkie kroki orkiestracji następującym kodem:

    <!--<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>-->

W kroku 4aranżacji wykonamy AAD-UserRead profil techniczny, aby odczytać szczegóły użytkownika (które mają zostać uwzględnione w tokenie JWT) z utworzonego konta użytkownika.

Ponieważ nie przechowujemy message oświadczenia, w kroku 5aranżacji wykonujemy UserInputMessageClaimGenerator polecenie w celu wygenerowania message oświadczenia do dołączenia do tokenu JWT.

Krok 6. Przekazywanie zasad

Wykonaj kroki opisane w temacie Przekazywanie pliku zasad niestandardowych, aby przekazać plik zasad. Jeśli przekazujesz plik o tej samej nazwie co plik już w portalu, upewnij się, że wybierzesz pozycję Zastąp zasady niestandardowe, jeśli już istnieje.

Krok 7. Testowanie zasad

Wykonaj kroki opisane w artykule Testowanie zasad niestandardowych, aby przetestować zasady niestandardowe.

Po zakończeniu wykonywania zasad i otrzymaniu tokenu identyfikatora sprawdź, czy rekord użytkownika został utworzony:

  1. Zaloguj się do witryny Azure Portal przy użyciu uprawnień administratora globalnego Administracja istratora lub roli uprzywilejowanej Administracja istratora.

  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.

  3. W obszarze Usługi platformy Azure wybierz pozycję Azure AD B2C. Możesz też użyć pola wyszukiwania, aby znaleźć i wybrać usługę Azure AD B2C.

  4. W obszarze Zarządzanie wybierz pozycję Użytkownicy.

  5. Znajdź właśnie utworzone konto użytkownika i wybierz je. Profil konta wygląda podobnie do poniższego zrzutu ekranu:

    A screenshot of creating a user account in Azure AD.

W naszym AAD-UserWrite profilu technicznym microsoft Entra ID określamy, że jeśli użytkownik już istnieje, zgłaszamy komunikat o błędzie.

Ponownie przetestuj zasady niestandardowe przy użyciu tego samego adresu e-mail. Zamiast wykonywania zasad w celu ukończenia wystawiania tokenu identyfikatora powinien zostać wyświetlony komunikat o błędzie podobny do poniższego zrzutu ekranu.

A screenshot of error as account already exists.

Uwaga

Wartość oświadczenia hasła jest bardzo ważnym elementem informacji, dlatego należy zachować ostrożność podczas obsługi jej w zasadach niestandardowych. Z podobnej przyczyny usługa Azure AD B2C traktuje wartość oświadczenia hasła jako wartość specjalną. Po zebraniu wartości oświadczenia hasła w samozwańcznym profilu technicznym ta wartość jest dostępna tylko w ramach tego samego profilu technicznego lub w ramach profilów technicznych weryfikacji, które są przywoływane przez ten sam własny profil techniczny. Po zakończeniu wykonywania tego samozwańczego profilu technicznego i przejściu do innego profilu technicznego wartość zostanie utracona.

Weryfikowanie adresu e-mail użytkownika

Zalecamy zweryfikowanie adresu e-mail użytkownika przed użyciem go do utworzenia konta użytkownika. Podczas weryfikowania adresów e-mail upewnij się, że konta są tworzone przez prawdziwych użytkowników. Pomagasz również użytkownikom w korzystaniu z poprawnych adresów e-mail w celu utworzenia konta.

Niestandardowe zasady usługi Azure AD B2C umożliwiają weryfikowanie adresu e-mail przy użyciu kontrolki wyświetlania weryfikacji. Wysyłasz kod weryfikacyjny do wiadomości e-mail. Po wysłaniu kodu użytkownik odczytuje komunikat, wprowadza kod weryfikacyjny do kontrolki dostarczonej przez kontrolkę wyświetlania i wybiera przycisk Weryfikuj kod .

Kontrolka wyświetlania to element interfejsu użytkownika, który ma specjalne funkcje i współdziała z usługą zaplecza azure Active Directory B2C (Azure AD B2C). Umożliwia on użytkownikowi wykonywanie akcji na stronie, które wywołują profil techniczny weryfikacji na zapleczu. Kontrolki wyświetlania są wyświetlane na stronie i są przywoływane przez własny profil techniczny.

Aby dodać weryfikację poczty e-mail przy użyciu kontrolki wyświetlania, wykonaj następujące kroki:

Deklarowanie oświadczenia

Należy zadeklarować oświadczenie, które ma być używane do przechowywania kodu weryfikacji.

Aby zadeklarować oświadczenie, w ContosoCustomPolicy.XML pliku znajdź ClaimsSchema element i zadeklaruj verificationCode oświadczenie przy użyciu następującego kodu:

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

Konfigurowanie profilu technicznego wysyłania i weryfikowania kodu

Usługa Azure AD B2C używa profilu technicznego samoobsługowego resetowania hasła identyfikatora firmy Microsoft w celu zweryfikowania adresu e-mail. Ten profil techniczny może wygenerować i wysłać kod na adres e-mail lub zweryfikować kod w zależności od sposobu jego konfigurowania.

ContosoCustomPolicy.XML W pliku znajdź ClaimsProviders element i dodaj dostawcę oświadczeń przy użyciu następującego kodu:

    <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>

Skonfigurowaliśmy dwa profile AadSspr-SendCode techniczne i AadSspr-VerifyCode. AadSspr-SendCode Generuje i wysyła kod na adres e-mail określony w InputClaims sekcji, podczas gdy AadSspr-VerifyCode weryfikuje kod. Należy określić akcję, którą chcesz wykonać w metadanych profilu technicznego.

Konfigurowanie kontrolki wyświetlania

Musisz skonfigurować kontrolkę wyświetlania weryfikacji poczty e-mail, aby umożliwić weryfikowanie poczty e-mail użytkowników. Skonfigurowana kontrolka wyświetlania weryfikacji poczty e-mail zastąpi oświadczenie wyświetlania wiadomości e-mail używane do zbierania wiadomości e-mail od użytkownika.

Aby skonfigurować kontrolkę wyświetlania, wykonaj następujące czynności:

  1. ContosoCustomPolicy.XML W pliku znajdź sekcjęBuildingBlocks, a następnie dodaj kontrolkę wyświetlania jako element podrzędny przy użyciu następującego kodu:

        <!--<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>-->
    

    Zadeklarowaliśmy kontrolkę wyświetlania: emailVerificationControl. Zanotuj następujące ważne elementy:

    • DisplayClaims — podobnie jak w przypadku samodzielnego profilu technicznego, ta sekcja określa kolekcję oświadczeń, które mają być zbierane od użytkownika w kontrolce wyświetlania.

    • Akcje — określa kolejność akcji, które mają być wykonywane przez kontrolkę wyświetlania. Każda akcja odwołuje się do profilu technicznego odpowiedzialnego za wykonywanie akcji. Na przykład kod SendCode odwołuje się do profilu technicznego AadSspr-SendCode , który generuje i wysyła kod na adres e-mail.

  2. ContosoCustomPolicy.XML W pliku znajdź UserInformationCollector własny profil techniczny i zastąp oświadczenie wyświetlania wiadomości e-mail, aby wyświetlić emailVerificationControl kontrolę:

    Od:

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

    Do:

        <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    
  3. Użyj procedury w kroku 6 i kroku 7 , aby przekazać plik zasad i przetestować go. Tym razem musisz zweryfikować swój adres e-mail przed utworzeniem konta użytkownika.

Aktualizowanie konta użytkownika przy użyciu profilu technicznego Microsoft Entra ID

Możesz skonfigurować profil techniczny microsoft Entra ID w celu zaktualizowania konta użytkownika zamiast próby utworzenia nowego. W tym celu ustaw profil techniczny Identyfikator entra firmy Microsoft, aby zgłosić błąd, jeśli określone konto użytkownika jeszcze nie istnieje w Metadata kolekcji, używając następującego kodu. Operacja musi być ustawiona na Zapis:

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

Używanie atrybutów niestandardowych

W tym artykule przedstawiono sposób przechowywania szczegółów użytkownika przy użyciu wbudowanych atrybutów profilu użytkownika. Jednak często trzeba utworzyć własne atrybuty niestandardowe, aby zarządzać konkretnym scenariuszem. W tym celu postępuj zgodnie z instrukcjami w artykule Define custom attributes in Azure Active Directory B2C (Definiowanie atrybutów niestandardowych w usłudze Azure Active Directory B2C ).

Następne kroki