Konfigurera ett lösenordsåterställningsflöde i Azure Active Directory B2C

*Innan du börjar _, använder du väljaren _ Välj en principtyp * för att välja den typ av princip som du ställer in. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln är olika för varje metod.

Under en registrering och inloggning kan en användareåterställa sitt eget lösenord med hjälp av länken Har du glömt ditt lösenord? Det här lösenordsåterställningsflödet via självbetjäning gäller för lokala konton i Azure Active Directory B2C (Azure AD B2C) som använder en e-postadress eller ett användarnamn med lösenord för inloggning.

Flödet för lösenordsåterställning omfattar följande steg:

  1. På sidan för registrering och inloggning väljer användaren länken Har du glömt ditt lösenord? Azure AD B2C initierar flödet för lösenordsåterställning.

  2. I nästa dialogruta som visas anger användaren sin e-postadress och väljer sedan Skicka verifieringskod. Azure AD B2C skickar en verifieringskod till användarens e-postkonto. Användaren kopierar verifieringskoden från e-postmeddelandet, anger koden i dialogrutan Azure AD B2C för lösenordsåterställning och väljer sedan Verifiera kod.

  3. Användaren kan sedan ange ett nytt lösenord. (När e-postmeddelandet har verifierats kan användaren fortfarande välja knappen Ändra e-post. Se Dölj knappen För att ändra e-post.)

    Diagram som visar tre dialogrutor i flödet för lösenordsåterställning.

Tips

En användare kan ändra sitt lösenord med hjälp av flödet för lösenordsåterställning via självbetjäning om de glömmer sitt lösenord och vill återställa det. Välj något av följande alternativ för användarflöde:

  • Om en användare känner till sitt lösenord och vill ändra det använder du ett flöde för lösenordsändring.
  • Om du vill tvinga en användare att återställa sitt lösenord (till exempel när de loggar in för första gången, när deras lösenord har återställts av en administratör eller när de har migrerats till Azure AD B2C med slumpmässiga lösenord) använder du ett framtrollat lösenordsåterställningsflöde.

Dölj knappen ändra e-post

När e-postmeddelandet har verifierats kan användaren fortfarande välja Ändra e-postadress, ange en annan e-postadress och sedan upprepa e-postverifieringen. Om du föredrar att dölja knappen Ändra e-post kan du ändra CSS för att dölja de associerade HTML-elementen i dialogrutan. Du kan till exempel lägga till följande CSS-post selfAsserted.html och anpassa användargränssnittet med hjälp av HTML-mallar:

<style type="text/css">
   .changeClaims
   {
     visibility: hidden;
   }
</style>

Standardnamnet för knappen Ändra e-post iselfAsserted.html är changeclaims. Om du vill hitta knappnamnet går du till registreringssidan och inspekterar sidkällan med hjälp av ett webbläsarverktyg som Inspektera.

Förutsättningar

Den nya lösenordsåterställningen är nu en del av registrering- eller inloggningsprincipen. När användaren väljer länken Har du glömt ditt lösenord? skickas de omedelbart till upplevelsen Glömt lösenord. Programmet behöver inte längre hantera felkoden AADB2C90118och du behöver inte en separat princip för lösenordsåterställning.

Självåterställning av lösenord kan konfigureras för användarflödena Logga in (rekommenderas) eller Registrera dig och logga in (rekommenderas). Om du inte har något av dessa användarflöden konfigurerade kan du skapa ett användarflöde för registrering eller inloggning.

Konfigurera lösenordsåterställning via självbetjäning för användarflödet för registrering eller inloggning:

  1. Logga in på Azure-portalen.
  2. I portalens verktygsfält väljer du ikonen Kataloger + prenumerationer.
  3. I portalens inställningar | Fönstret Kataloger + prenumerationer, leta upp Azure AD B2C katalog i listan Katalognamn och välj sedan Växla.
  4. I listan Azure Portal du efter och väljer Azure AD B2C.
  5. Välj Användarflöden.
  6. Välj ett användarflöde för registrering eller inloggning (av typen Rekommenderas) som du vill anpassa.
  7. I menyn under Inställningar väljer du Egenskaper.
  8. Under Lösenordskonfiguration väljer du Självbetjäning av lösenordsåterställning.
  9. Välj Spara.
  10. I den vänstra menyn under Anpassa väljer du Sidlayouter.
  11. I Sidlayoutversion väljer du 2.1.3 eller senare.
  12. Välj Spara.

I följande avsnitt beskrivs hur du lägger till en lösenordsupplevelse med självbetjäning i en anpassad princip. Exemplet baseras på de principfiler som ingår i det anpassade principstartpaketet.

Tips

Du hittar ett komplett exempel på principen registrera dig och logga in med lösenordsåterställning på GitHub.

Om du vill ange för principen att en användare har valt länken Glömt ditt lösenord? definierar du ett booleskt anspråk. Använd anspråket för att dirigera användarresan till den tekniska profilen Glömt lösenord. Anspråket kan också utfärdas till token, så programmet identifierar att användaren har loggat in med användarflödet Glömt lösenord.

Deklarera dina anspråk i anspråksschemat. Öppna filtillägg för principen, till exempel i SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Sök efter elementet BuildingBlocks. Om elementet inte finns lägger du till det.

  2. Leta upp elementet ClaimsSchema. Om elementet inte finns lägger du till det.

  3. Lägg till följande anspråk i elementet ClaimsSchema.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="isForgotPassword">
          <DisplayName>isForgotPassword</DisplayName>
          <DataType>boolean</DataType>
          <AdminHelpText>Whether the user has selected Forgot your Password</AdminHelpText>
        </ClaimType>
      <!--
      </ClaimsSchema>
    </BuildingBlocks> -->
    

Uppgradera sidlayoutversionen

Sidlayout version 2.1.2 krävs för att aktivera flödet för lösenordsåterställning via självbetjäning under registrering eller inloggning. Så här uppgraderar du sidlayoutversionen:

  1. Sök efter elementet BuildingBlocks. Om elementet inte finns lägger du till det.

  2. Leta upp elementet ContentDefinitions. Om elementet inte finns lägger du till det.

  3. Ändra DataURI-elementet i ContentDefinition-elementet så att det har ID:t api.signuporsignin :

    <!-- 
    <BuildingBlocks>
      <ContentDefinitions> -->
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri>
        </ContentDefinition>
      <!-- 
      </ContentDefinitions>
    </BuildingBlocks> -->
    

En teknisk profil för anspråksomvandling initierar isForgotPassword-anspråket. Den tekniska profilen refereras senare. När det anropas anges värdet för isForgotPassword-anspråket till true . Leta upp elementet ClaimsProviders. Om elementet inte finns lägger du till det. Lägg sedan till följande anspråksprovider:

<!-- 
<ClaimsProviders> -->
  <ClaimsProvider>
    <DisplayName>Local Account</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="ForgotPassword">
        <DisplayName>Forgot your password?</DisplayName>
        <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="true" AlwaysUseDefaultValue="true"/>
        </OutputClaims>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
      </TechnicalProfile>
      <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
        <Metadata>
          <Item Key="setting.forgotPasswordLinkOverride">ForgotPasswordExchange</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
<!-- 
</ClaimsProviders> -->

Den tekniska profilinställningen SelfAsserted-LocalAccountSignin-Email.forgotPasswordLinkOverride definierar anspråksutbytet för lösenordsåterställning som körs under din användarresa.

Lägga till en underresa för lösenordsåterställning

Användaren kan nu logga in, registrera sig och utföra lösenordsåterställning under användarresan. Om du vill organisera användarresan på ett bättre sätt kan du använda en underresa för att hantera flödet för lösenordsåterställning.

Underresan anropas från användarresan och utför de specifika steg som levererar lösenordsåterställningen till användaren. Använd typen underresa så att kontrollen returneras till orkestreringssteget som initierade underresan när Call underresan är klar.

Hitta elementet SubJourneys. Om elementet inte finns lägger du till det efter elementet User Journeys. Lägg sedan till följande underresa:

<!--
<SubJourneys>-->
  <SubJourney Id="PasswordReset" Type="Call">
    <OrchestrationSteps>
      <!-- Validate user's email address. -->
      <OrchestrationStep Order="1" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
        </ClaimsExchanges>
      </OrchestrationStep>

      <!-- Collect and persist a new password. -->
      <OrchestrationStep Order="2" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
        </ClaimsExchanges>
      </OrchestrationStep>
    </OrchestrationSteps>
  </SubJourney>
<!--
</SubJourneys>-->

Förbered din användarresa

Anslut sedan länken Har du glömt ditt lösenord? till underresan Glömt lösenord. Referera till underresa-ID:t För glömt lösenord i elementet ClaimsProviderSelection i steget CombinedSignInAndSignUp.

Om du inte har en egen anpassad användarresa som har steget CombinedSignInAndSignUp utför du följande steg för att duplicera en befintlig användarresa för registrering eller inloggning. Annars fortsätter du till nästa avsnitt.

  1. I startpaketet öppnar du TrustFrameworkBase.xml filen.
  2. Hitta och kopiera hela innehållet i elementet UserJourney som innehåller Id="SignUpOrSignIn" .
  3. Öppna TrustFrameworkExtensions.xml och leta reda på elementet UserJourneys. Om elementet inte finns lägger du till ett.
  4. Skapa ett under element i elementet UserJourneys genom att klistra in hela innehållet i elementet UserJourney som du kopierade i steg 2.
  5. Byt namn på ID:t för användarresan. Till exempel Id="CustomSignUpSignIn".

I din användarresa kan du representera underresan Glömt lösenord som en ClaimsProviderSelection. När du lägger till det här elementet ansluts länken Har du glömt ditt lösenord? till underresan Glömt lösenord.

  1. Under användarresan hittar du orkestreringsstegelementet som Type="CombinedSignInAndSignUp" innehåller eller Type="ClaimsProviderSelection" . Det är vanligtvis det första orkestreringssteget. Elementet ClaimsProviderSelections innehåller en lista över identitetsproviders som en användare kan använda för att logga in. Lägg till följande rad:

    <ClaimsProviderSelection TargetClaimsExchangeId="ForgotPasswordExchange" />
    
  2. I nästa orkestreringssteg lägger du till ett ClaimsExchange-element. Lägg till följande rad:

    <ClaimsExchange Id="ForgotPasswordExchange" TechnicalProfileReferenceId="ForgotPassword" />
    
  3. Lägg till följande orkestreringssteg mellan det aktuella steget och nästa steg. Det nya orkestreringssteget som du lägger till kontrollerar om isForgotPassword-anspråket finns. Om anspråket finns anropar det underresan för lösenordsåterställning.

    <OrchestrationStep Order="3" Type="InvokeSubJourney">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
          <Value>isForgotPassword</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <JourneyList>
        <Candidate SubJourneyReferenceId="PasswordReset" />
      </JourneyList>
    </OrchestrationStep>
    
  4. När du har lagt till det nya orkestreringssteget numrerar du om stegen sekventiellt utan att hoppa över några heltal från 1 till N.

Ange den användarresa som ska köras

Nu när du har ändrat eller skapat en användarresa går du till avsnittet Förlitande part och anger den resa som Azure AD B2C ska köra för den här anpassade principen. Leta reda på elementet DefaultUserJourney i elementet RelyingParty. Uppdatera DefaultUserJourney ReferenceId så att det matchar ID:t för den användarresa där du lade till ClaimsProviderSelections.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Ange flödet Glömt lösenord till din app

Programmet kan behöva identifiera om användaren har loggat in med användarflödet Glömt lösenord. IsForgotPassword-anspråket innehåller ett booleskt värde som anger att de gjorde det. Anspråket kan utfärdas i den token som skickas till ditt program. Om det behövs lägger du till isForgotPassword till utgående anspråk i avsnittet Förlitande part. Programmet kan kontrollera isForgotPassword-anspråket för att avgöra om användaren återställer sitt lösenord.

<RelyingParty>
  <OutputClaims>
    ...
    <OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="false" />
  </OutputClaims>
</RelyingParty>

Upload den anpassade principen

  1. Logga in på Azure-portalen.
  2. I portalens verktygsfält väljer du ikonen Kataloger + prenumerationer.
  3. I portalens inställningar | Fönstret Kataloger + prenumerationer, leta upp Azure AD B2C katalog i listan Katalognamn och välj sedan Växla.
  4. I listan Azure Portal du efter och väljer Azure AD B2C.
  5. I menyn under Principer väljer du Identity Experience Framework.
  6. Välj Upload anpassad princip. Ladda upp de två principfiler som du ändrade i följande ordning:
    1. Tilläggspolicyn, till exempel TrustFrameworkExtensions.xml.
    2. Den förlitande partsprincipen, till exempel SignUpSignIn.xml.

Testa flödet för lösenordsåterställning

  1. Välj ett användarflöde för registrering eller inloggning (rekommenderad typ) som du vill testa.
  2. Välj Kör användarflöde.
  3. För Program väljer du webbappen med namnet webapp1 som du registrerade tidigare. Svars-URL:en ska visa https://jwt.ms .
  4. Välj Kör användarflöde.
  5. På sidan för registrering eller inloggning väljer du Har du glömt ditt lösenord?.
  6. Kontrollera e-postadressen för det konto som du skapade tidigare och välj sedan Fortsätt.
  7. I dialogrutan som visas ändrar du lösenordet för användaren och väljer sedan Fortsätt. Token returneras till https://jwt.ms och webbläsaren visar den.
  8. Kontrollera returtokens isForgotPassword-anspråksvärde. Om den finns och är inställd på true har användaren återställt lösenordet.

Princip för lösenordsåterställning (äldre)

Om självbetjäning av lösenordsåterställning inte är aktiverat utlöses inte användarflödet för lösenordsåterställning automatiskt om du väljer den här länken. I stället returneras AADB2C90118 felkoden till ditt program. Programmet måste hantera den här felkoden genom att initiera autentiseringsbiblioteket igen för att autentisera Azure AD B2C användarflödet för lösenordsåterställning.

Följande diagram visar processen:

  1. I programmet väljer användaren Logga in. Appen initierar en auktoriseringsbegäran och omdirigerar till Azure AD B2C så att användaren kan logga in. Auktoriseringsbegäran anger ett namn på registrering eller inloggningsprincip, till exempel B2C_1_signup_signin.

  2. Användaren väljer länken Har du glömt ditt lösenord? Azure AD B2C AADB2C90118 returnerar felkoden till programmet.

  3. Programmet hanterar felkoden och initierar en ny auktoriseringsbegäran. Auktoriseringsbegäran anger namnet på principen för lösenordsåterställning, till exempel B2C_1_pwd_reset.

    Diagram som visar användarflödet för äldre lösenordsåterställning.

Du kan se ett grundläggande ASP.NET ,som visar hur användarflöden länkar.

Skapa ett användarflöde för återställning av lösenord

Om du vill att dina programanvändare ska kunna återställa sina lösenord skapar du ett användarflöde för lösenordsåterställning:

  1. I den Azure Portal går du till Azure AD B2C översikt över klientorganisationen.
  2. I den vänstra menyn under Principer väljer du Användarflöden och sedan Nytt användarflöde.
  3. I Skapa ett användarflöde väljer du användarflödet Lösenordsåterställning.
  4. Under Välj en version väljer du Rekommenderad och sedan Skapa.
  5. I Namn anger du ett namn för användarflödet. Till exempel passwordreset1.
  6. För Identitetsproviders aktiverar du Återställ lösenord med användarnamn eller Återställ lösenord med hjälp av e-postadressen.
  7. Om du vill kräva att användarna verifierar sina identiteter med hjälp av en andra autentiseringsmetod under Multifaktorautentisering väljer du metodtypen och när multifaktorautentisering ska framtvingas. Läs mer.
  8. Under Villkorlig åtkomst, om du har konfigurerat principer för villkorlig åtkomst för din Azure AD B2C-klientorganisation och du vill använda dem i det här användarflödet, markerar du kryssrutan Framtvinga principer för villkorlig åtkomst. Du behöver inte ange ett principnamn. Läs mer.
  9. Under Programanspråk väljer du Visa mer. Välj de anspråk som du vill ska returneras i de auktoriseringstoken som skickas tillbaka till ditt program. Välj till exempel Användarobjekt-id.
  10. Välj OK.
  11. Välj Skapa för att lägga till användarflödet. Ett prefix B2C_1 läggs automatiskt till i namnet.

Testa användarflödet

Så här testar du användarflödet:

  1. Välj det användarflöde som du skapade. På översiktssidan för användarflödet väljer du Kör användarflöde.
  2. För Program väljer du webbappen med namnet webapp1 som du registrerade tidigare. Svars-URL:en ska vara https://jwt.ms .
  3. Välj Kör användarflöde, verifiera e-postadressen för det konto som du skapade tidigare och välj sedan Fortsätt.
  4. Ändra lösenordet och välj sedan Fortsätt. Token returneras till https://jwt.ms och webbläsaren visar den.

Skapa en princip för återställning av lösenord

Anpassade principer är en uppsättning XML-filer som du överför till din Azure AD B2C för att definiera användarresor. Vi tillhandahåller startpaket som har flera förbyggda principer, inklusive registrering och inloggning, lösenordsåterställning och profilredigeringsprinciper. Mer information finns i Kom igång med anpassade principer i Azure AD B2C.

Felsöka Azure AD B2C användarflöden och anpassade principer

Programmet måste hantera vissa fel som kommer från Azure B2C-tjänsten. Lär dig hur du felsöker Azure AD B2C användarflöden och anpassade principer.

Nästa steg

Konfigurera en tvingad lösenordsåterställning.