Konfigurace požadavků na složitost hesel v Azure Active Directory B2C

Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Azure Active Directory B2C (Azure AD B2C) podporuje změnu složitých požadavků na hesla poskytnutá koncovým uživatelem při vytváření účtu. Azure AD B2C ve výchozím nastavení používá silná hesla. Azure AD B2C také podporuje možnosti konfigurace pro řízení složitosti hesel, která můžou zákazníci používat.

Předpoklady

Vynucení pravidla hesla

Při registraci nebo resetování hesla musí koncový uživatel zadat heslo, které splňuje pravidla složitosti. Pravidla složitosti hesel se vynucují na tok uživatele. Jeden tok uživatele může během registrace vyžadovat čtyřmístný pin kód, zatímco jiný tok uživatele vyžaduje během registrace osmimístný řetězec. Můžete například použít tok uživatele s různou složitostí hesla pro dospělé než pro děti.

Složitost hesla se při přihlašování nikdy nevynucuje. Uživatelé se při přihlášení nikdy nezobrazí výzva ke změně hesla, protože nesplňuje aktuální požadavek na složitost.

Složitost hesla můžete nakonfigurovat v následujících typech toků uživatelů:

  • Tok registrace nebo přihlášení uživatele
  • Tok uživatele resetování hesla

Pokud používáte vlastní zásady, můžete nakonfigurovat složitost hesla ve vlastních zásadách.

Konfigurace složitosti hesla

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
  4. Vyberte Toky uživatele.
  5. Vyberte tok uživatele a klikněte na Vlastnosti.
  6. V části Složitost hesla změňte složitost hesla pro tento tok uživatele na Jednoduchý, Silný nebo Vlastní.

Srovnávací graf

Složitost Popis
Stručně Heslo, které je alespoň 864 znaků.
Silné Heslo, které je alespoň 864 znaků. Vyžaduje 3 z 4 malých písmen, velkých písmen, čísel nebo symbolů.
Vlastní Tato možnost poskytuje největší kontrolu nad pravidly složitosti hesel. Umožňuje konfigurovat vlastní délku. Umožňuje také přijímat hesla jen pro čísla (špendlíky).

Vlastní možnosti

Znaková sada

Umožňuje přijímat pouze číslice (špendlíky) nebo úplnou znakové sady.

  • Čísla umožňují při zadávání hesla jenom číslice (0–9).
  • Všechny umožňují libovolné písmeno, číslo nebo symbol.

Délka

Umožňuje řídit požadavky na délku hesla.

  • Minimální délka musí být minimálně 4.
  • Maximální délka musí být větší nebo rovna minimální délce a maximálně může mít 256 znaků.

Třídy znaků

Umožňuje řídit různé typy znaků používané v hesle.

  • 2 z 4: Malá písmena, Velká písmena, Číslo (0-9), Symbol zajišťuje, že heslo obsahuje aspoň dva typy znaků. Například číslo a malá písmena.

  • 3 z 4: Malá písmena, Velká písmena, Číslo (0-9), Symbol zajišťuje, že heslo obsahuje aspoň tři typy znaků. Například číslo, malá písmena a velká písmena.

  • 4 z 4: Malá písmena, Velká písmena, Číslo (0-9), Symbol zajišťuje, že heslo obsahuje všechny typy znaků.

    Poznámka:

    Vyžadování 4 ze 4 může vést k frustraci koncových uživatelů. Některé studie ukázaly, že tento požadavek nezlepší entropii hesel. Viz pokyny pro hesla NIST

Ověření predikátu hesla

Pokud chcete nakonfigurovat složitost hesla, přepište newPassword typy deklarací reenterPasswordidentity odkazem na ověřování predikátu. PredikateValidations element seskupí sadu predikátů, které vytvoří ověření vstupu uživatele, které lze použít na typ deklarace identity. Otevřete soubor s příponami zásad. Například, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Vyhledejte element BuildingBlocks . Pokud prvek neexistuje, přidejte ho.

  2. Vyhledejte element ClaimsSchema . Pokud prvek neexistuje, přidejte ho.

  3. Přidejte a newPasswordreenterPassword deklarací identity do elementu ClaimsSchema .

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="newPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
        <ClaimType Id="reenterPassword">
          <PredicateValidationReference Id="CustomPassword" />
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  4. Predikáty definují základní ověření, které kontroluje hodnotu typu deklarace identity a vrací hodnotu true nebo false. Ověření se provádí pomocí zadaného prvku metody a sady parametrů relevantních pro metodu. Přidejte následující predikáty do elementu BuildingBlocks bezprostředně za uzavření elementu </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. Přidejte následující ověření predikátu do elementu BuildingBlocks bezprostředně za uzavření elementu </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>-->
    

Zakázání silného hesla

Následující technické profily jsou technické profily služby Active Directory, které čtou a zapisují data do Microsoft Entra ID. Přepište tyto technické profily v souboru s příponou. Slouží PersistedClaims k zakázání zásad silného hesla. Vyhledejte element ClaimsProviders . Následujícím způsobem přidejte následující zprostředkovatele deklarací identity:

<!-- 
<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>-->

Pokud používáte zásady přihlašování založené na uživatelském jménu, aktualizujte AAD-UserWriteUsingLogonEmailprofily a LocalAccountWritePasswordUsingObjectIdAAD-UserWritePasswordUsingObjectIdtechnické profily pomocí zásad DisableStrongPassword.

Uložte soubor zásad.

Testování zásad

Nahrání souborů

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Vyberte Architekturu prostředí identit.
  5. Na stránce Vlastní zásady vyberte Nahrát zásadu.
  6. Vyberte Přepsat zásadu, pokud existuje, a pak vyhledejte a vyberte soubor TrustFrameworkExtensions.xml .
  7. Vyberte Odeslat.

Spuštění zásad

  1. Otevřete zásady registrace nebo přihlášení, jako je B2C_1A_signup_signin.
  2. V případě aplikace vyberte aplikaci, kterou jste předtím zaregistrovali. Aby se zobrazil token, měla by se zobrazit https://jwt.msadresa URL odpovědi .
  3. Vyberte Spustit.
  4. Vyberte Zaregistrovat se, zadejte e-mailovou adresu a zadejte nové heslo. Pokyny jsou uvedeny v omezeních hesel. Dokončete zadávání informací o uživateli a pak vyberte Vytvořit. Měl by se zobrazit obsah vráceného tokenu.

Další kroky