Configurar a alteração de senha usando políticas personalizadas no Azure Ative Directory B2C

Antes de começar, use o seletor Escolha um tipo de política para escolher o tipo de política que você está configurando. O Azure Ative Directory B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos de usuário predefinidos ou por meio de políticas personalizadas totalmente configuráveis. As etapas exigidas neste artigo são diferentes para cada método.

Você pode configurar o Azure Ative Directory B2C (Azure AD B2C) para que um usuário conectado com uma conta local possa alterar sua senha sem usar a verificação de email para provar sua identidade.

O fluxo de alteração de senha envolve as seguintes etapas:

  1. O utilizador inicia sessão na respetiva conta local. Se a sessão ainda estiver ativa, o Azure AD B2C autorizará o usuário e pulará para a próxima etapa.

  2. Em Senha antiga, o usuário verifica sua senha antiga. Em Nova senha, eles criam e confirmam sua nova senha.

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

Gorjeta

Um usuário pode usar o fluxo de alteração de senha descrito neste artigo somente quando souber sua senha e quiser alterar sua senha. Recomendamos que você também habilite a redefinição de senha de autoatendimento para suportar casos em que o usuário esquece sua senha.

Este recurso está disponível apenas para políticas personalizadas. Para as etapas de configuração, selecione Política personalizada no seletor anterior.

Pré-requisitos

Adicionar os elementos

  1. Abra seu arquivo TrustFrameworkExtensions.xml . Adicione o seguinte elemento ClaimType ao elemento ClaimsSchema , com um identificador de 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. Um elemento ClaimsProvider contém o perfil técnico que autentica o usuário. Adicione os seguintes provedores de declarações ao elemento 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. O elemento UserJourneys define o caminho que o usuário toma quando interage com seu aplicativo. Adicione o elemento UserJourneys se ele não existir, com o identificador UserJourney de 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. Salve o arquivo de política TrustFrameworkExtensions.xml .

  5. Copie o arquivo ProfileEdit.xml que você baixou com o pacote inicial e nomeie-o ProfileEditPasswordChange.xml.

  6. Abra o novo arquivo e atualize o atributo PolicyId com um valor exclusivo. Este valor é o nome da sua política. Por exemplo, B2C_1A_profile_edit_password_change.

  7. Modifique o atributo ReferenceId em DefaultUserJourney para corresponder à ID da nova jornada do usuário que você criou. Por exemplo, PasswordChange.

  8. Guardar as suas alterações.

Carregue e teste a política

  1. Inicie sessão no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. Escolha Todos os serviços no canto superior esquerdo do portal do Azure e, em seguida, procure e selecione Azure AD B2C.
  4. Selecione Identity Experience Framework.
  5. Em Políticas personalizadas, selecione Política de carregamento.
  6. Selecione Substituir a política, se ela existir, e procure e selecione o arquivo TrustFrameworkExtensions.xml .
  7. Selecione Carregar.
  8. Repita as etapas 5 a 7 para o arquivo de terceira parte confiável, como ProfileEditPasswordChange.xml.

Executar a política

  1. Abra a política que você alterou. Por exemplo, B2C_1A_profile_edit_password_change.
  2. Em Aplicativo, selecione o aplicativo que você registrou anteriormente. Para ver o token, o URL de resposta deve mostrar https://jwt.ms.
  3. Selecione Executar agora. Na nova guia que se abre, remova "prompt=login"& do URL e atualize a guia. Em seguida, inicie sessão com a conta que criou anteriormente. Uma caixa de diálogo de alteração de palavra-passe dá-lhe a opção de alterar a palavra-passe.

Próximos passos