Konfigurera lösenordsändring med hjälp av anpassade principer 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 konfigurerar. 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 skiljer sig åt för varje metod.

Du kan konfigurera Azure Active Directory B2C (Azure AD B2C) så att en användare som är inloggad med ett lokalt konto kan ändra sitt lösenord utan att använda e-postverifiering för att bevisa sin identitet.

Flödet för lösenordsändring omfattar följande steg:

  1. Användaren loggar in på sitt lokala konto. Om sessionen fortfarande är aktiv auktoriserar Azure AD B2C användaren och går vidare till nästa steg.

  2. I Gammalt lösenord verifierar användaren sitt gamla lösenord. I Nytt lösenord skapar och bekräftar de sitt nya lösenord.

    Screenshot that shows two numbered dialogs for making a password change.

Dricks

En användare kan använda det lösenordsändringsflöde som beskrivs i den här artikeln endast när de känner till sitt lösenord och vill ändra sitt lösenord. Vi rekommenderar att du även aktiverar självbetjäning av lösenordsåterställning för att stödja fall där användaren glömmer sitt lösenord.

Den här funktionen är endast tillgänglig för anpassade principer. För installationssteg väljer du Anpassad princip i föregående väljare.

Förutsättningar

Lägg till elementen

  1. Öppna filen TrustFrameworkExtensions.xml . Lägg till följande ClaimType-element i elementet ClaimsSchema med en identifierare för oldPassword:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="oldPassword">
          <DisplayName>Old Password</DisplayName>
          <DataType>string</DataType>
          <UserHelpText>Enter your old password</UserHelpText>
          <UserInputType>Password</UserInputType>
        </ClaimType>
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Ett ClaimsProvider-element innehåller den tekniska profil som autentiserar användaren. Lägg till följande anspråksproviders i elementet ClaimsProviders :

    <ClaimsProviders>
      <ClaimsProvider>
        <DisplayName>Local Account SignIn</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="login-NonInteractive-PasswordChange">
            <DisplayName>Local Account SignIn</DisplayName>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="oldPassword" PartnerClaimType="password" Required="true" />
              </InputClaims>
            <IncludeTechnicalProfile ReferenceId="login-NonInteractive" />
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
      <ClaimsProvider>
        <DisplayName>Local Account Password Change</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="LocalAccountWritePasswordChangeUsingObjectId">
            <DisplayName>Change password (username)</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
              <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
            </Metadata>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="objectId" />
            </InputClaims>
            <OutputClaims>
              <OutputClaim ClaimTypeReferenceId="oldPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
            </OutputClaims>
            <ValidationTechnicalProfiles>
              <ValidationTechnicalProfile ReferenceId="login-NonInteractive-PasswordChange" />
              <ValidationTechnicalProfile ReferenceId="AAD-UserWritePasswordUsingObjectId" />
            </ValidationTechnicalProfiles>
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
    </ClaimsProviders>
    
  3. Elementet UserJourneys definierar den sökväg som användaren tar när de interagerar med ditt program. Lägg till userJourneys-elementet om det inte finns, med UserJourney-identifieraren PasswordChangeför :

    <UserJourneys>
      <UserJourney Id="PasswordChange">
        <OrchestrationSteps>
          <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.signuporsignin">
            <ClaimsProviderSelections>
              <ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" />
            </ClaimsProviderSelections>
          </OrchestrationStep>
          <OrchestrationStep Order="2" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="3" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordChangeUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="4" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="5" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
        </OrchestrationSteps>
        <ClientDefinition ReferenceId="DefaultWeb" />
      </UserJourney>
    </UserJourneys>
    
  4. Spara principfilen TrustFrameworkExtensions.xml.

  5. Kopiera filen ProfileEdit.xml som du laddade ned med startpaketet och ge den namnet ProfileEditPasswordChange.xml.

  6. Öppna den nya filen och uppdatera attributet PolicyId med ett unikt värde. Det här värdet är namnet på principen. Till exempel B2C_1A_profile_edit_password_change.

  7. Ändra attributet ReferenceId i DefaultUserJourney så att det matchar ID:t för den nya användarresa som du skapade. Till exempel PasswordChange.

  8. Spara dina ändringar.

Ladda upp och testa principen

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.
  3. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.
  4. Välj Identity Experience Framework.
  5. I Anpassade principer väljer du Ladda upp princip.
  6. Välj Skriv över principen om den finns och sök sedan efter och välj filen TrustFrameworkExtensions.xml .
  7. Välj överför.
  8. Upprepa steg 5 till och med 7 för den förlitande partfilen, till exempel ProfileEditPasswordChange.xml.

Kör principen

  1. Öppna principen som du ändrade. Till exempel B2C_1A_profile_edit_password_change.
  2. För Program väljer du det program som du registrerade tidigare. Om du vill se token ska svars-URL :en visa https://jwt.ms.
  3. Välj kör nu. På den nya fliken som öppnas tar du bort "&prompt=login" från URL:en och uppdaterar fliken. Logga sedan in med det konto som du skapade tidigare. En dialogruta för lösenordsändring ger dig möjlighet att ändra lösenordet.

Nästa steg