Visa kontroller

Kommentar

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

En visningskontroll är ett användargränssnittselement som har särskilda funktioner och interagerar med Azure Active Directory B2C-serverdelstjänsten (Azure AD B2C). Det gör att användaren kan utföra åtgärder på sidan som anropar en teknisk valideringsprofil i serverdelen. Visningskontroller visas på sidan och refereras av en självkontrollerad teknisk profil.

Förutsättningar

I avsnittet Metadata i en självsäkrad teknisk profil måste det refererade ContentDefinition ha DataUri angetts till sidkontraktsversion 2.1.9 eller senare. Till exempel:

<ContentDefinition Id="api.selfasserted">
  <LoadUri>~/tenant/default/selfAsserted.cshtml</LoadUri>
  <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
  <DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.9</DataUri>
  ...

Definiera visningskontroller

Elementet DisplayControl innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Id Ja En identifierare som används för visningskontrollen. Det kan refereras till.
UserInterfaceControlType Ja Visningskontrollens typ. För närvarande stöds VerificationControl, TOTP-kontroller och CAPTCHA-kontroller.

Verifieringskontroll

Kontrollen för verifieringsvisning verifierar anspråk, till exempel en e-postadress eller ett telefonnummer, med en verifieringskod som skickas till användaren. Följande bild visar en självkontrollerad registreringssida med två visningskontroller som validerar en primär och sekundär e-postadress.

Screenshot showing email verification display control

TOTP-kontroller

TOTP-visningskontrollerna är en uppsättning visningskontroller som tillhandahåller TOTP-multifaktorautentisering med Microsoft Authenticator-appen. Följande bild visar en TOTP-registreringssida med de tre visningskontrollerna.

Screenshot showing TOTP display controls

QrCodeControl

Elementet DisplayControl innehåller följande element:

Element Händelser beskrivning
InputClaims 0:1 InputClaims används för att fylla i värdet för de anspråk som ska samlas in från användaren. Mer information finns i InputClaims-element .
DisplayClaims 0:1 DisplayClaims används för att representera anspråk som ska samlas in från användaren. Mer information finns i DisplayClaim-element .
OutputClaims 0:1 OutputClaims används för att representera anspråk som ska sparas tillfälligt för denna DisplayControl. Mer information finns i OutputClaims-element .
Actions 0:1 Åtgärder används för att lista de tekniska valideringsprofiler som ska anropas för användaråtgärder som sker i klientdelen.

Indataanspråk

I en visningskontroll kan du använda InputClaims-element för att fylla i värdet för anspråk för att samla in från användaren på sidan. Alla InputClaimsTransformations kan definieras i den självsäkra tekniska profilen, som refererar till den här visningskontrollen.

I följande exempel fylls e-postadressen i för att verifieras med den adress som redan finns.

<DisplayControl Id="emailControl" UserInterfaceControlType="VerificationControl">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="emailAddress" />
  </InputClaims>
  ...

Visa anspråk

Varje typ av visningskontroll kräver en annan uppsättning visningsanspråk, utdataanspråk och åtgärder som ska utföras.

På samma sätt som de visningsanspråk som definierats i en självkontrollerad teknisk profil representerar visningsanspråken de anspråk som ska samlas in från användaren i visningskontrollen. Det ClaimType-element som refereras måste ange userInputType-elementet för en användarindatatyp som stöds av Azure AD B2C, till exempel TextBox eller DropdownSingleSelect. Om ett visningsanspråksvärde krävs av en åtgärd anger du attributet Obligatoriskt för true att tvinga användaren att ange ett värde för det specifika visningsanspråket.

Vissa visningsanspråk krävs för vissa typer av visningskontroll. Till exempel krävs VerificationCode för visningskontrollen av typen VerificationControl. Använd attributet ControlClaimType för att ange vilken DisplayClaim som är avsedd för det nödvändiga anspråket. Till exempel:

<DisplayClaim ClaimTypeReferenceId="otpCode" ControlClaimType="VerificationCode" Required="true" />

Utdataanspråk

Utdataanspråken för en visningskontroll skickas inte till nästa orkestreringssteg. De sparas tillfälligt endast för den aktuella visningskontrollsessionen. Dessa tillfälliga anspråk kan delas mellan de olika åtgärderna i samma visningskontroll.

Om du vill bubbla upp utdataanspråken till nästa orkestreringssteg använder du OutputClaims för den faktiska självsäkra tekniska profilen, som refererar till den här visningskontrollen.

Visa kontrollåtgärder

Åtgärderna för en visningskontroll är procedurer som inträffar i Azure AD B2C-serverdelen när en användare utför en viss åtgärd på klientsidan (webbläsaren). Till exempel valideringarna som ska utföras när användaren väljer en knapp på sidan.

En åtgärd definierar en lista över tekniska verifieringsprofiler. De används för att verifiera vissa eller alla visningsanspråk för visningskontrollen. Den tekniska valideringsprofilen validerar användarens indata och kan returnera ett fel till användaren. Du kan använda ContinueOnError, ContinueOnSuccess och Villkor i visningskontrollen Åtgärd som liknar hur de används i tekniska valideringsprofiler i en självkontrollerad teknisk profil.

Åtgärder

Elementet Actions innehåller följande element:

Element Händelser beskrivning
Action 1:n Lista över åtgärder som ska köras.

Åtgärd

Åtgärdselementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Id Ja Typ av åtgärd. Möjliga värden: SendCode eller VerifyCode. Värdet SendCode skickar en kod till användaren. Den här åtgärden kan innehålla två tekniska valideringsprofiler: en för att generera en kod och en för att skicka den. Värdet VerifyCode verifierar koden som användaren skrev i textrutan för indata.

Åtgärdselementet innehåller följande element:

Element Händelser beskrivning
ValidationClaimsExchange 1:1 Identifierare för tekniska profiler som används för att verifiera vissa eller alla visningsanspråk för den refererande tekniska profilen. Alla indataanspråk för den refererade tekniska profilen måste visas i visningsanspråken för den refererande tekniska profilen.

ValidationClaimsExchange

Elementet ValidationClaimsExchange innehåller följande element:

Element Händelser beskrivning
ValidationClaimsExchangeTechnicalProfile 1:n En teknisk profil som ska användas för att verifiera vissa eller alla visningsanspråk för den refererande tekniska profilen.

Elementet ValidationClaimsExchangeTechnicalProfile innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
TechnicalProfileReferenceId Ja En identifierare för en teknisk profil som redan har definierats i principen eller den överordnade principen.

Elementet ValidationClaimsExchangeTechnicalProfile innehåller följande element:

Element Händelser beskrivning
Preconditions 0:1 En lista över förhandsvillkor som måste uppfyllas för att den tekniska valideringsprofilen ska kunna köras.

Elementet Precondition innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Type Ja Typen av kontroll eller fråga som ska utföras för förhandsvillkoret. Möjliga värden: ClaimsExist eller ClaimEquals. ClaimsExist anger att åtgärderna ska utföras om de angivna anspråken finns i användarens aktuella anspråksuppsättning. ClaimEquals anger att åtgärderna ska utföras om det angivna anspråket finns och dess värde är lika med det angivna värdet.
ExecuteActionsIf Ja Anger om åtgärderna i förhandsvillkoret ska utföras om testet är sant eller falskt.

Elementet Villkor innehåller följande element:

Element Händelser beskrivning
Value 1:n De data som används av kontrollen. Om typen av den här kontrollen är ClaimsExistanger det här fältet ett ClaimTypeReferenceId att fråga efter. Om typen av kontroll är ClaimEqualsanger det här fältet ett ClaimTypeReferenceId att fråga efter. Ange det värde som ska kontrolleras i ett annat värdeelement.
Action 1:1 Den åtgärd som ska vidtas om förhandsvillkorskontrollen i ett orkestreringssteg är sann. Värdet för åtgärden är inställt på SkipThisValidationTechnicalProfile, som anger att den associerade tekniska verifieringsprofilen inte ska köras.

I följande exempel skickas och verifieras e-postadressen med den tekniska profilen Microsoft Entra ID SSPR.

<DisplayControl Id="emailVerificationControl" UserInterfaceControlType="VerificationControl">
  <InputClaims></InputClaims>
  <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>

I följande exempel skickas en kod i e-post eller SMS baserat på användarens val av mfaType-anspråket med förhandsvillkor.

<Action Id="SendCode">
  <ValidationClaimsExchange>
    <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AzureMfa-SendSms">
      <Preconditions>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
          <Value>mfaType</Value>
          <Value>email</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
      </Preconditions>
    </ValidationClaimsExchangeTechnicalProfile>
    <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendEmail">
      <Preconditions>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
          <Value>mfaType</Value>
          <Value>phone</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
      </Preconditions>
    </ValidationClaimsExchangeTechnicalProfile>
  </ValidationClaimsExchange>
</Action>

Referera till visningskontroller

Visningskontroller refereras till i visningsanspråken för den självsäkra tekniska profilen.

Till exempel:

<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
  ...
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim DisplayControlReferenceId="PhoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />

Nästa steg

Exempel på hur du använder visningskontroll finns i: