Nastavení změny hesla pomocí vlastních zásad 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) můžete nakonfigurovat tak, aby uživatel, který je přihlášen pomocí místního účtu, mohl změnit heslo bez ověření e-mailu, aby prokázal svou identitu.
Tok změny hesla zahrnuje následující kroky:
Uživatel se přihlásí ke svému místnímu účtu. Pokud je relace stále aktivní, Azure AD B2C autorizuje uživatele a přeskočí k dalšímu kroku.
Ve starém hesle uživatel ověří své staré heslo. V části Nové heslo vytvoří a potvrdí nové heslo.
Tip
Uživatel může použít tok změn hesel, který je popsaný v tomto článku, jenom když zná heslo a chce změnit heslo. Doporučujeme také povolit samoobslužné resetování hesla pro případy podpory, ve kterých uživatel zapomene heslo.
Tato funkce je dostupná jenom pro vlastní zásady. Pro kroky nastavení vyberte v předchozím selektoru vlastní zásady .
Předpoklady
- Dokončete kroky v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.
- Registrace webové aplikace v Azure Active Directory B2C
Přidání prvků
Otevřete soubor TrustFrameworkExtensions.xml . Do elementu ClaimsSchema přidejte následující element ClaimType s identifikátorem
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>
Element ClaimsProvider obsahuje technický profil, který ověřuje uživatele. Do elementu ClaimsProviders přidejte následující zprostředkovatele deklarací identity:
<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>
Element UserJourneys definuje cestu, kterou uživatel vezme při interakci s vaší aplikací. Přidejte element UserJourneys, pokud neexistuje, s identifikátorem UserJourney :
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>
Uložte soubor zásad TrustFrameworkExtensions.xml.
Zkopírujte soubor ProfileEdit.xml, který jste stáhli s úvodní sadou, a pojmenujte ho ProfileEditPasswordChange.xml.
Otevřete nový soubor a aktualizujte atribut PolicyId jedinečnou hodnotou. Tato hodnota je název vaší zásady. Například B2C_1A_profile_edit_password_change.
Upravte atribut ReferenceId v DefaultUserJourney tak, aby odpovídal ID nové cesty uživatele, kterou jste vytvořili. Například PasswordChange.
Uloží vaše změny.
Nahrání a otestování zásad
- Přihlaste se k portálu Azure.
- 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.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Vyberte Architekturu prostředí identit.
- Ve vlastních zásadách vyberte Nahrát zásadu.
- Vyberte Přepsat zásadu, pokud existuje, a pak vyhledejte a vyberte soubor TrustFrameworkExtensions.xml .
- Vyberte Odeslat.
- Opakujte kroky 5 až 7 pro soubor předávající strany, například ProfileEditPasswordChange.xml.
Spuštění zásad
- Otevřete zásadu, kterou jste změnili. Například B2C_1A_profile_edit_password_change.
- V části Aplikace vyberte aplikaci, kterou jste zaregistrovali dříve. Aby se zobrazil token, měla by se zobrazit
https://jwt.ms
adresa URL odpovědi . - Vyberte Spustit. Na nové kartě, která se otevře, odeberte z adresy URL "&prompt=login" a aktualizujte kartu. Pak se přihlaste pomocí účtu, který jste vytvořili dříve. Dialogové okno pro změnu hesla umožňuje změnit heslo.
Další kroky
- Najděte ukázkovou zásadu na GitHubu.
- Přečtěte si, jak v Azure AD B2C nakonfigurovat složitost hesel.
- Nastavte tok resetování hesla.