Wachtwoordwijziging instellen met behulp van aangepast beleid in Azure Active Directory B2C

Voordat u begint, gebruikt u de selector Een beleidstype kiezen om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiƫren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.

U kunt Azure Active Directory B2C (Azure AD B2C) configureren, zodat een gebruiker die is aangemeld met een lokaal account het wachtwoord kan wijzigen zonder e-mailverificatie te gebruiken om zijn identiteit te bewijzen.

De stroom voor wachtwoordwijziging omvat de volgende stappen:

  1. De gebruiker meldt zich aan bij zijn lokale account. Als de sessie nog steeds actief is, geeft Azure AD B2C de gebruiker toestemming en gaat het verder met de volgende stap.

  2. In Oud wachtwoord verifieert de gebruiker zijn oude wachtwoord. In Nieuw wachtwoord maken en bevestigen ze hun nieuwe wachtwoord.

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

Fooi

Een gebruiker kan de stroom voor wachtwoordwijziging gebruiken die alleen in dit artikel wordt beschreven wanneer ze hun wachtwoord kennen en hun wachtwoord willen wijzigen. U wordt aangeraden ook selfservice voor wachtwoordherstel in te schakelen ter ondersteuning van gevallen waarin de gebruiker zijn of haar wachtwoord vergeet.

Deze functie is alleen beschikbaar voor aangepast beleid. Voor configuratiestappen selecteert u Aangepast beleid in de voorgaande selector.

Vereisten

De elementen toevoegen

  1. Open het bestand TrustframeworkExtensions.xml. Voeg het volgende ClaimType-element toe aan het element ClaimsSchema, met een id van 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. Een ClaimProvider-element bevat het technische profiel waarmee de gebruiker wordt geverifieerd. Voeg de volgende claimproviders toe aan het element 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. Het element UserJourneys definieert het pad dat de gebruiker gebruikt wanneer deze met uw toepassing communiceert. Voeg het element UserJourneys toe als het niet bestaat, met de UserJourney-id van PasswordChange:

    <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. Sla het beleidsbestand TrustframeworkExtensions.xml op.

  5. Kopieer het ProfileEdit.xml-bestand dat u met het starterspakket hebt gedownload en noem het ProfileEditPasswordChange.xml.

  6. Open het nieuwe bestand en werk het kenmerk PolicyId bij met een unieke waarde. Deze waarde is de naam van uw beleid. Bijvoorbeeld B2C_1A_profile_edit_password_change.

  7. Wijzig het kenmerk ReferenceId in DefaultUserJourney zodat deze overeenkomt met de id van het nieuwe gebruikerstraject dat u hebt gemaakt. Bijvoorbeeld PasswordChange.

  8. Uw wijzigingen opslaan.

Het beleid uploaden en testen

  1. Meld u aan bij de Azure-portal.
  2. Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
  3. Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
  4. Selecteer Identity Experience Framework.
  5. Selecteer Uploadbeleid in Aangepast beleid.
  6. Selecteer Overschrijf het beleid als het bestaat en ga vervolgens naar het bestand TrustFrameworkExtensions.xml en selecteer dit.
  7. Selecteer Uploaden.
  8. Herhaal stap 5 tot en met 7 voor het relying party-bestand, zoals ProfileEditPasswordChange.xml.

Het beleid uitvoeren

  1. Open het beleid dat u hebt gewijzigd. Bijvoorbeeld B2C_1A_profile_edit_password_change.
  2. Selecteer voor Toepassing de toepassing die u eerder hebt geregistreerd. Als u het token wilt zien, moet de antwoord-URL worden weergegevenhttps://jwt.ms.
  3. Selecteer Nu uitvoeren. Verwijder in het nieuwe tabblad dat wordt geopend '&prompt=login' uit de URL en vernieuw het tabblad. Meld u vervolgens aan met het account dat u eerder hebt gemaakt. Een dialoogvenster voor wachtwoordwijziging biedt u de mogelijkheid om het wachtwoord te wijzigen.

Volgende stappen