Configurar a mudança de senha usando políticas personalizadas no Azure Ative Directory B2CConfigure password change using custom policies in Azure Active Directory B2C

Antes de começar, utilize o seletor acima para escolher o tipo de política que está a configurar.Before you begin, use the selector above to choose the type of policy you’re configuring. O Azure AD B2C oferece dois métodos para definir como os utilizadores interagem com as suas aplicações: através de fluxosde utilizador predefinidos, ou através de políticas personalizadastotalmente configuráveis .Azure AD B2C offers two methods of defining how users interact with your applications: through predefined user flows, or through fully configurable custom policies. Os passos exigidos neste artigo são diferentes para cada método.The steps required in this article are different for each method.

No Azure Ative Directory B2C (Azure AD B2C), pode permitir que os utilizadores que se inscrevem com uma conta local alterem a sua palavra-passe sem terem de provar a sua identidade através de verificação de email.In Azure Active Directory B2C (Azure AD B2C), you can enable users who are signed in with a local account to change their password without having to prove their identity through email verification. O fluxo de alteração da palavra-passe envolve os seguintes passos:The password change flow involves following steps:

  1. O utilizador entra na conta local.The user signs in to their local account. Se a sessão ainda estiver ativa, o Azure AD B2C autoriza o utilizador e salta para o passo seguinte.If the session is still active, Azure AD B2C authorizes the user and skips to the next step.
  2. O utilizador verifica a palavra-passe Antiga e, em seguida, cria e confirma a Nova palavra-passe.The user verifies the Old password, and then creates and confirms the New password.

Fluxo de mudança de senha

Dica

O fluxo de alteração de palavra-passe permite que os utilizadores alterem a sua palavra-passe apenas quando o utilizador souber da sua palavra-passe e quiser alterá-la.The password change flow allows users to change their password only when the user knows their password and wants to change it. Recomendamos que também ative o reset da palavra-passe de autosserviço para suportar casos em que o utilizador se esqueça da sua palavra-passe.We recommend you to also enable self-service password reset to support cases where the user forgets their password.

Esta funcionalidade está disponível apenas para políticas personalizadas.This feature is available for custom policies only. Para etapas de configuração, escolha a política personalizada acima.For setup steps, choose Custom policy above.

Pré-requisitosPrerequisites

Adicione os elementosAdd the elements

  1. Abra o seu ficheiro TrustframeworkExtensions.xml e adicione o seguinte elemento ClaimType com um identificador do oldPassword elemento ClaimsSchema:Open your TrustframeworkExtensions.xml file and add the following ClaimType element with an identifier of oldPassword to the ClaimsSchema element:

    <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. Um elemento ClaimsProvider contém o perfil técnico que autentica o utilizador.A ClaimsProvider element contains the technical profile that authenticates the user. Adicione os seguintes fornecedores de sinistros ao elemento ClaimsProviders:Add the following claims providers to the ClaimsProviders element:

    <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. O elemento UserJourney define o caminho que o utilizador toma ao interagir com a sua aplicação.The UserJourney element defines the path that the user takes when interacting with your application. Adicione o elemento UserJourneys se não existir com a Jornada do Utilizador identificada PasswordChange como:Add the UserJourneys element if it doesn't exist with the UserJourney identified as 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. Guarde o ficheiro de política TrustFrameworkExtensions.xml.Save the TrustFrameworkExtensions.xml policy file.

  5. Copie o ficheiro ProfileEdit.xml que descarregou com o pacote inicial e nomeie-o ProfileEditPasswordChange.xml.Copy the ProfileEdit.xml file that you downloaded with the starter pack and name it ProfileEditPasswordChange.xml.

  6. Abra o novo ficheiro e atualize o atributo PolicyId com um valor único.Open the new file and update the PolicyId attribute with a unique value. Este valor é o nome da sua apólice.This value is the name of your policy. Por exemplo, B2C_1A_profile_edit_password_change.For example, B2C_1A_profile_edit_password_change.

  7. Modifique o atributo ReferenceId <DefaultUserJourney> para corresponder ao ID da nova jornada do utilizador que criou.Modify the ReferenceId attribute in <DefaultUserJourney> to match the ID of the new user journey that you created. Por exemplo, PasswordChange.For example, PasswordChange.

  8. Guarde as alterações.Save your changes.

Faça upload e teste da políticaUpload and test the policy

  1. Inicie sessão no portal do Azure.Sign in to the Azure portal.
  2. Certifique-se de que está a utilizar o diretório que contém o seu inquilino Azure AD B2C selecionando o filtro de subscrição Diretório + no menu superior e escolhendo o diretório que contém o seu inquilino.Make sure you're using the directory that contains your Azure AD B2C tenant by selecting the Directory + subscription filter in the top menu and choosing the directory that contains your tenant.
  3. Escolha todos os serviços no canto superior esquerdo do portal Azure e, em seguida, procure e selecione Azure AD B2C.Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
  4. Selecione o Quadro de Experiência de Identidade.Select Identity Experience Framework.
  5. Na página 'Políticas Personalizadas', clique em 'Carregar' Política.On the Custom Policies page, click Upload Policy.
  6. Selecione Overwrite a política se ela existe e, em seguida, procure e selecione o ficheiro TrustframeworkExtensions.xml.Select Overwrite the policy if it exists, and then search for and select the TrustframeworkExtensions.xml file.
  7. Clique em Carregar.Click Upload.
  8. Repita os passos 5 a 7 para o ficheiro do partido, como ProfileEditPasswordChange.xml.Repeat steps 5 through 7 for the relying party file, such as ProfileEditPasswordChange.xml.

Executar a políticaRun the policy

  1. Abre a política que mudaste.Open the policy that you changed. Por exemplo, B2C_1A_profile_edit_password_change.For example, B2C_1A_profile_edit_password_change.
  2. Para Candidatura, selecione a sua candidatura que já se registou anteriormente.For Application, select your application that you previously registered. Para ver o símbolo, a URL de resposta deve mostrar https://jwt.ms .To see the token, the Reply URL should show https://jwt.ms.
  3. Clique em Executar agora.Click Run now. No novo separador que se abre, remova "&prompt=login" do URL e refresque o separador. Em seguida, inscreva-se com a conta que criou anteriormente.In the new tab that opens, remove "&prompt=login" from the URL and refresh the tab. Then sign in with the account you previously created. Terá agora a oportunidade de alterar a palavra-passe.You will now have the opportunity to change the password.

Passos seguintesNext steps