Configurar os requisitos de complexidade de senhas fornecidas no Azure Active Directory B2C

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

O Azure Active Directory B2C (Azure AD B2C) oferece suporte à alteração de requisitos de complexidade para senhas fornecidas por um usuário final ao criar uma conta. Por padrão, o Azure AD B2C usa senhas Fortes. O Azure AD B2C também oferece suporte a opções de configuração para controlar a complexidade de senhas que os clientes podem usar.

Pré-requisitos

Imposição de regras de senha

Durante a inscrição ou redefinição de senha, um usuário final deve fornecer uma senha que atenda às regras de complexidade. Regras de complexidade de senha são impostas pelo fluxo de usuários. É possível que o fluxo de um usuário exija um PIN de quatro dígitos enquanto o fluxo de outro exija uma cadeia de caracteres de oito caracteres durante a inscrição. Por exemplo, você pode usar um fluxo de usuários com diferente complexidade de senha para adultos e crianças.

A complexidade de senha nunca é aplicada durante a inscrição. Nunca será solicitado que os usuários mudem sua senha ao entrar por ela não atender aos requisitos de complexidade atual.

Você pode configurar a complexidade da senha nos seguintes tipos de fluxos de usuário:

  • Fluxo de usuário de inscrição ou entrada
  • Fluxo de usuário de redefinição de senha

Se estiver usando políticas personalizadas, você poderá configurar a complexidade da senha em uma política personalizada.

Configurar a complexidade de senha

  1. Entre 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 o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
  3. No portal do Azure, pesquise e selecione Azure AD B2C.
  4. Escolha Fluxos de usuário.
  5. Selecione um fluxo de usuário e clique em Propriedades.
  6. Em Complexidade da senha, altere a complexidade da senha para esse fluxo de usuário para Simples, Forte ou Personalizada.

Gráfico de comparação

Complexidade Descrição
Simples Uma senha que tenha de 8 a 64 caracteres.
Forte Uma senha que tenha de 8 a 64 caracteres. São necessários 3 dos 4 de caracteres minúsculos, maiúsculos, números ou símbolos.
Personalizado Essa opção fornece mais controle sobre as regras de complexidade de senha. Ela permite configurar um tamanho personalizado. E permite aceitar somente senhas numéricas (pins).

Opções personalizadas

Conjunto de caracteres

Permite que você aceite somente dígitos (pins) ou o conjunto completo de caracteres.

  • Somente números permite somente dígitos (0-9) ao digitar uma senha.
  • Todos permite qualquer letra, número ou símbolo.

Comprimento

Permite que você controle as exigências de comprimento da senha.

  • Comprimento mínimo deve ser pelo menos 4.
  • O Comprimento Máximo deve ser maior ou igual ao comprimento mínimo e não pode ultrapassar 256 caracteres.

Classes de caracteres

Permite que você controle os diferentes tipos de caracteres usados na senha.

  • 2 de 4: caracteres maiúsculos, minúsculos, números (0-9) ou símbolos a senha deve ter, no mínimo, dois tipos de caracteres. Por exemplo, um número e um caractere minúsculo.

  • 3 de 4: caracteres minúsculos, maiúsculos, números (0-9) ou símbolos – a senha deve ter, no mínimo, três tipos de caracteres. Por exemplo, um número, um caractere minúsculo e um caractere maiúsculos.

  • 4 de 4: caracteres maiúsculos, minúsculos, números (0-9) ou símbolos a senha deve ter todos os tipos de caracteres.

    Observação

    Exigir 4 de 4 pode resultar em frustração do usuário final. Alguns estudos mostraram que esse requisito não melhora a entropia de senha. Confira as Diretrizes de senha NIST

Validação de predicado de senha

Para configurar a complexidade da senha, substitua o newPassword e os reenterPasswordtipos de declaração por uma referência às validações de predicado. O elemento PredicateValidations agrupa um conjunto de predicados para formar uma validação de entrada de usuário que pode ser aplicada a um tipo de declaração. Abra o arquivo de extensões da sua política. Por exemplo, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Pesquise o elemento BuildingBlocks. Se o elemento não existir, adicione-o.

  2. Localize o elemento ClaimsSchema. Se o elemento não existir, adicione-o.

  3. Adicione as declarações newPassword e reenterPassword ao elemento ClaimsSchema.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="newPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
        <ClaimType Id="reenterPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  4. Os Predicados definem uma validação básica para verificar o valor de um tipo de declaração e retorna true ou false. A validação é feita usando um elemento método especificado e um conjunto de parâmetros relevantes para o método. Adicione os seguintes predicados ao elemento BuildingBlocks, imediatamente após o fechamento do elemento </ClaimsSchema>:

    <!-- 
    <BuildingBlocks>-->
      <Predicates>
        <Predicate Id="LengthRange" Method="IsLengthRange">
          <UserHelpText>The password must be between 6 and 64 characters.</UserHelpText>
          <Parameters>
            <Parameter Id="Minimum">6</Parameter>
            <Parameter Id="Maximum">64</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Lowercase" Method="IncludesCharacters">
          <UserHelpText>a lowercase letter</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">a-z</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Uppercase" Method="IncludesCharacters">
          <UserHelpText>an uppercase letter</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">A-Z</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Number" Method="IncludesCharacters">
          <UserHelpText>a digit</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">0-9</Parameter>
          </Parameters>
        </Predicate>
        <Predicate Id="Symbol" Method="IncludesCharacters">
          <UserHelpText>a symbol</UserHelpText>
          <Parameters>
            <Parameter Id="CharacterSet">@#$%^&amp;*\-_+=[]{}|\\:',.?/`~"();!</Parameter>
          </Parameters>
        </Predicate>
      </Predicates>
    <!-- 
    </BuildingBlocks>-->
    
  5. Adicione as seguintes validações de predicado ao elemento BuildingBlocks, imediatamente após o fechamento do elemento </Predicates>:

    <!-- 
    <BuildingBlocks>-->
      <PredicateValidations>
        <PredicateValidation Id="CustomPassword">
          <PredicateGroups>
            <PredicateGroup Id="LengthGroup">
              <PredicateReferences MatchAtLeast="1">
                <PredicateReference Id="LengthRange" />
              </PredicateReferences>
            </PredicateGroup>
            <PredicateGroup Id="CharacterClasses">
              <UserHelpText>The password must have at least 3 of the following:</UserHelpText>
              <PredicateReferences MatchAtLeast="3">
                <PredicateReference Id="Lowercase" />
                <PredicateReference Id="Uppercase" />
                <PredicateReference Id="Number" />
                <PredicateReference Id="Symbol" />
              </PredicateReferences>
            </PredicateGroup>
          </PredicateGroups>
        </PredicateValidation>
      </PredicateValidations>
    <!-- 
    </BuildingBlocks>-->
    

Desabilitar senha forte

Os perfis técnicos a seguir são os Perfis técnicos do Active Directory, que leem e gravam os dados na ID do Microsoft Entra. Substitua esses perfis técnicos no arquivo de extensão. Use PersistedClaims para desabilitar a política de senha forte. Localize o elemento ClaimsProviders. Adicione os seguintes provedores de declaração conforme demonstrado abaixo:

<!-- 
<ClaimsProviders>-->
  <ClaimsProvider>
    <DisplayName>Azure Active Directory</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
        <PersistedClaims>
          <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
        </PersistedClaims>
      </TechnicalProfile>
      <TechnicalProfile Id="AAD-UserWritePasswordUsingObjectId">
        <PersistedClaims>
          <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>
        </PersistedClaims>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
<!-- 
</ClaimsProviders>-->

Se você usa a política Entrada baseada em nome de usuário, atualize os perfis técnicos AAD-UserWriteUsingLogonEmail, AAD-UserWritePasswordUsingObjectId e LocalAccountWritePasswordUsingObjectId com a política DisableStrongPassword.

Salve o arquivo da política.

Testar sua política

Fazer upload dos arquivos

  1. Entre 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 o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
  3. Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
  4. Selecione Estrutura de Experiência de Identidade.
  5. Na página de políticas personalizadas, selecione Carregar Política.
  6. Selecione Substituir a política se ela existir, depois procure o arquivo TrustFrameworkExtensions.xml e selecione-o.
  7. Escolha Carregar.

Executar a política

  1. Abra a política de inscrição ou entrada, como B2C_1A_signup_signin.
  2. Para Aplicativo, selecione seu aplicativo que você registrou anteriormente. Para ver o token, a URL de resposta deve mostrar https://jwt.ms.
  3. Selecione Executar Agora.
  4. Selecione Inscrever-se agora, insira um endereço de email e insira uma nova senha. Algumas restrições de senhas são apresentadas. Termine de inserir as informações do usuário e selecione Criar. Você deverá ver o conteúdo do token retornado.

Próximas etapas