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
- Criar um fluxo do usuário para que os usuários podem se registrar e entrar no seu aplicativo.
- Registrar um aplicativo Web.
- Conclua as etapas em Introdução às políticas personalizadas no Active Directory B2C
- Registrar um aplicativo Web.
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
- Entre no portal do Azure.
- 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.
- No portal do Azure, pesquise e selecione Azure AD B2C.
- Escolha Fluxos de usuário.
- Selecione um fluxo de usuário e clique em Propriedades.
- 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 reenterPassword
tipos 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
.
Pesquise o elemento BuildingBlocks. Se o elemento não existir, adicione-o.
Localize o elemento ClaimsSchema. Se o elemento não existir, adicione-o.
Adicione as declarações
newPassword
ereenterPassword
ao elemento ClaimsSchema.<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="newPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <ClaimType Id="reenterPassword"> <PredicateValidationReference Id="CustomPassword" /> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks>-->
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">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter> </Parameters> </Predicate> </Predicates> <!-- </BuildingBlocks>-->
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
- Entre no portal do Azure.
- 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.
- Escolha Todos os serviços no canto superior esquerdo do Portal do Azure, pesquise Azure AD B2C e selecione-o.
- Selecione Estrutura de Experiência de Identidade.
- Na página de políticas personalizadas, selecione Carregar Política.
- Selecione Substituir a política se ela existir, depois procure o arquivo TrustFrameworkExtensions.xml e selecione-o.
- Escolha Carregar.
Executar a política
- Abra a política de inscrição ou entrada, como B2C_1A_signup_signin.
- Para Aplicativo, selecione seu aplicativo que você registrou anteriormente. Para ver o token, a URL de resposta deve mostrar
https://jwt.ms
. - Selecione Executar Agora.
- 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
- Saiba como Configurar a alteração de senha no Azure Active Directory B2C.
- Saiba mais sobre os Predicados e os elementos PredicateValidations na referência do IEF.