Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.
Než začnete, pomocí selektoru Zvolit typ zásady v horní části této stránky 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ší.
V cestě pro registraci a přihlášenímůže uživatel resetovat vlastní heslo pomocí odkazu Zapomněli jste heslo?. Tento tok samoobslužného resetování hesla se vztahuje na místní účty v Azure Active Directory B2C (Azure AD B2C), které používají e-mailovou adresu nebo uživatelské jméno s heslem pro přihlášení.
Návod
Uživatel může změnit heslo pomocí toku samoobslužného resetování hesla, pokud heslo zapomene a chce ho resetovat. Můžete také zvolit jednu z následujících možností toku uživatele a změnit heslo uživatele:
- Pokud uživatel zná své heslo a chce ho změnit, použijte tok změn hesla .
- Pokud chcete uživateli vynutit resetování hesla (například při prvním přihlášení, resetování hesel správcem nebo po migraci do Azure AD B2C s náhodnými hesly), použijte vynutit resetování hesla tok.
Tok resetování hesla zahrnuje následující kroky:
- Na registrační a přihlašovací stránce uživatel vybere Zapomněli jste heslo? odkaz. Azure AD B2C zahájí tok resetování hesla.
- V dalším dialogovém okně, které se zobrazí, uživatel zadá svoji e-mailovou adresu a pak vybere Odeslat ověřovací kód. Azure AD B2C odešle ověřovací kód do e-mailového účtu uživatele. Uživatel zkopíruje ověřovací kód z e-mailu, zadá kód do dialogového okna pro resetování hesla Azure AD B2C a pak vybere Ověřit kód.
- Uživatel pak může zadat nové heslo. (Po ověření e-mailu může uživatel stále vybrat tlačítko Změnit e-mail; viz Skrýt tlačítko změnit e-mail, pokud chcete odebrat.)
Výchozí název tlačítka Změnit e-mail v selfAsserted.html je changeclaims . Název tlačítka najdete tak, že na registrační stránce zkontrolujete zdrojový kód stránky pomocí nástrojů prohlížeče, jako je Inspect.
Požadavky
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
- Dokončete kroky v Začněte s vlastními zásadami ve službě Azure Active Directory B2C. V tomto kurzu se dozvíte, jak aktualizovat soubory vlastních zásad tak, aby používaly konfiguraci tenanta Azure AD B2C.
- Zaregistrujte webovou aplikaci.
- Uživatelé B2C musí mít zadanou metodu ověřování pro samoobslužné resetování hesla. Vyberte uživatele B2C; v nabídce vlevo pod Spravovatzvolte Metody ověřování. Ujistěte se, že jsou nastavené kontaktní údaje o ověřování,. Uživatelé B2C vytvoření v rámci procesu registrace mají tuto možnost nastavenou ve výchozím nastavení. Pro uživatele vytvořené prostřednictvím webu Azure Portal nebo rozhraní Graph API je potřeba nastavit kontaktní informace o ověřování, aby SSPR fungovalo.
Samoobslužné resetování hesla (doporučeno)
Nové prostředí pro resetování hesla je teď součástí zásad registrace nebo přihlašování. Když uživatel vybere Zapomněli jste heslo? odkaz, okamžitě se odešlou do prostředí Zapomenuté heslo. Vaše aplikace už nemusí zpracovávat kód chyby AADB2C90118a pro resetování hesla nepotřebujete samostatnou zásadu.
Samoobslužné resetování hesla je možné nakonfigurovat pro toky přihlášení (doporučeno) nebo registrace a přihlášení (doporučeno). Pokud nemáte nastavený jeden z těchto toků uživatelů, vytvořte tok registrace nebo přihlášení.
Nastavení samoobslužného resetování hesla pro tok registrace nebo přihlášení uživatele:
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
- Vyberte toky uživatelů.
- Vyberte tok uživatelského registrace nebo přihlašování (typ Doporučeno), který chcete přizpůsobit.
- V nabídce v části Nastavenívyberte Vlastnosti.
- V části Konfigurace heslavyberte samoobslužné resetování hesla.
- Zvolte Uložit.
- V levém menu v části Přizpůsobitvyberte Rozvržení stránky.
- Ve verzi rozložení stránky vyberte 2.1.3 nebo novější.
- Zvolte Uložit.
Následující části popisují, jak do vlastních zásad přidat samoobslužnou možnost pro práci s hesly. Ukázka je založena na souborech zásad, které jsou součástí úvodní sady vlastních zásad .
Návod
Kompletní ukázku zásad pro registraci a přihlášení pomocí resetování hesla najdete na GitHubu.
Označuje, že uživatel vybral odkaz Zapomněli jste heslo?
Chcete-li označit zásadu, že uživatel vybral Zapomněli jste heslo? odkaz, definujte logický požadavek. Pomocí nároku nasměrujte cestu uživatele na technický profil Zapomenuté heslo . Příkaz může být také vydán tokenu, aby aplikace zjistila, že se uživatel přihlásil pomocí toku 'Zapomenuté heslo'.
Deklarujte své nároky ve schématu nároků . Otevřete soubor rozšíření vašich zásad, například v SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
Vyhledejte prvek BuildingBlocks. Pokud prvek neexistuje, přidejte ho.
Vyhledejte prvek ClaimsSchema. Pokud prvek neexistuje, přidejte ho.
Do elementu ClaimsSchema přidejte následující položku tvrzení.
<!-- <BuildingBlocks> <ClaimsSchema> --> <ClaimType Id="isForgotPassword"> <DisplayName>isForgotPassword</DisplayName> <DataType>boolean</DataType> <AdminHelpText>Whether the user has selected Forgot your Password</AdminHelpText> </ClaimType> <!-- </ClaimsSchema> </BuildingBlocks> -->
Aktualizujte verzi rozložení stránky
Verze rozložení stránky 2.1.2 je vyžadována k povolení samoobslužného procesu resetování hesla během cesty registrace nebo přihlášení. Aktualizujte verzi rozložení stránky.
Otevřete základní soubor zásad, například SocialAndLocalAccounts/TrustFrameworkBase.xml.
Vyhledejte prvek BuildingBlocks. Pokud prvek neexistuje, přidejte ho.
Vyhledejte prvek ContentDefinitions. Pokud prvek neexistuje, přidejte ho.
Upravte prvek DataURI v elementu ContentDefinition tak, aby měl ID
api.signuporsignin:<!-- <BuildingBlocks> <ContentDefinitions> --> <ContentDefinition Id="api.signuporsignin"> <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri> </ContentDefinition> <!-- </ContentDefinitions> </BuildingBlocks> -->
Přidání technických profilů
Technický profil transformace nároků přistupuje k nároku isForgotPassword. Na technický profil se odkazuje později. Při vyvolání nastaví hodnotu deklarace isForgotPassword na true.
- Otevřete soubor rozšíření vašich zásad, například v SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Vyhledejte prvek ClaimsProviders (pokud prvek neexistuje, vytvořte ho) a poté přidejte následující poskytovatele deklarací:
<!--
<ClaimsProviders> -->
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="ForgotPassword">
<DisplayName>Forgot your password?</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="true" AlwaysUseDefaultValue="true"/>
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="setting.forgotPasswordLinkOverride">ForgotPasswordExchange</Item>
</Metadata>
</TechnicalProfile>
<TechnicalProfile Id="LocalAccountWritePasswordUsingObjectId">
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders> -->
SelfAsserted-LocalAccountSignin-Email technického profilu.forgotPasswordLinkOverride definuje výměnu deklarací pro resetování hesla, která se provádí na cestě uživatelů.
Technický profil LocalAccountWritePasswordUsingObjectId v rámci správy relací UseTechnicalProfileForSessionManagementSM-AAD je vyžadován pro to, aby se uživatel mohl úspěšně přihlásit v následných relacích za podmínek jednotného přihlašování.
Přidejte podproces pro resetování hesla
Uživatel se teď může přihlásit, zaregistrovat a provést resetování hesla v rámci uživatelské cesty. Pokud chcete lépe uspořádat cestu uživatele, můžete použít podcestu ke zpracování toku obnovení hesla.
Dílčí cesta je vyvolána z cesty uživatele a provádí konkrétní kroky, které uživateli poskytují zkušenost s resetováním hesla. Použijte dílčí cestu typu Call, aby se po jejím dokončení řízení vrátilo do kroku orchestrace, který ji inicioval.
- Otevřete soubor s příponami zásad, například SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
- Najděte prvek SubJourneys. Pokud prvek neexistuje, přidejte ho za prvek User Journeys. Pak přidejte následující dílčí cestu:
<!--
<SubJourneys>-->
<SubJourney Id="PasswordReset" Type="Call">
<OrchestrationSteps>
<!-- Validate user's email address. -->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Collect and persist a new password. -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
</OrchestrationSteps>
</SubJourney>
<!--
</SubJourneys>-->
Příprava cesty uživatele
Chcete-li propojit odkaz Zapomněli jste heslo? s dílčí cestou Zapomenuté heslo, musíte odkazovat na ID dílčí cesty Zapomenuté heslo v elementu ClaimsProviderSelection kroku CombinedSignInAndSignUp.
Pokud nemáte vlastní upravenou cestu uživatele, která obsahuje krok CombinedSignInAndSignUp, proveďte následující kroky pro duplikaci stávající cesty uživatele pro registraci nebo přihlášení. V opačném případě pokračujte k další části.
- V úvodním balíčku otevřete soubor TrustFrameworkBase.xml, například SocialAndLocalAccounts/TrustFrameworkBase.xml.
- Najděte a zkopírujte celý obsah prvku UserJourney, který obsahuje
Id="SignUpOrSignIn". - Otevřete TrustFrameworkExtensions.xml soubor, například SocialAndLocalAccounts/TrustFrameworkExtensions.xml, a najděte UserJourneys element. Pokud prvek neexistuje, vytvořte ho.
- Vytvořte dětský prvek UserJourneys zkopírováním celého obsahu UserJourney elementu, který jste zkopírovali v kroku 2.
- Přejmenujte ID cesty uživatele. Například
Id="CustomSignUpSignIn".
Připojte odkaz Zapomenuté heslo k postupu Zapomenuté heslo
V rámci vaší cesty uživatele můžete dílčí cestu Zapomenuté heslo reprezentovat jako ClaimsProviderSelection. Přidáním tohoto prvku připojíte Zapomněli jste heslo? odkaz na dílčí cestu Zapomenuté heslo.
Otevřete soubor TrustFrameworkExtensions.xml, například SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
V rámci cesty uživatele vyhledejte orchestrační krok, který obsahuje
Type="CombinedSignInAndSignUp"neboType="ClaimsProviderSelection". Obvykle se jedná o první krok orchestrace. Element ClaimsProviderSelections obsahuje seznam zprostředkovatelů identity, které může uživatel použít k přihlášení. Přidejte následující řádek:<ClaimsProviderSelection TargetClaimsExchangeId="ForgotPasswordExchange" />V dalším kroku orchestrace přidejte element ClaimsExchange přidáním následujícího řádku:
<ClaimsExchange Id="ForgotPasswordExchange" TechnicalProfileReferenceId="ForgotPassword" />Přidejte následující krok orchestrace mezi aktuální krok a další krok. Nový krok orchestrace, který přidáte, zkontroluje, zda existuje nárok isForgotPassword. Pokud existuje nárok, vyvolá dílčí cestu k resetování hesla.
<OrchestrationStep Order="3" Type="InvokeSubJourney"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>isForgotPassword</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <JourneyList> <Candidate SubJourneyReferenceId="PasswordReset" /> </JourneyList> </OrchestrationStep>Po přidání nového kroku orchestrace přečíslujte kroky postupně bez vynechání celých čísel od 1 do N.
Nastavte uživatelskou cestu ke spuštění
Teď, když jste upravili nebo vytvořili uživatelskou cestu, zadejte v části Relying Party cestu, kterou Azure AD B2C provede pro tuto vlastní zásadu.
Otevřete soubor, který obsahuje prvek Relying Party, například SocialAndLocalAccounts/SignUpOrSignin.xml.
V elementu RelyingParty najděte element DefaultUserJourney.
Aktualizujte DefaultUserJourney ReferenceId tak, aby odpovídal ID cesty uživatele, ve které jste přidali ClaimsProviderSelections.
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Naznačte tok zapomenutého hesla ve vaší aplikaci
Vaše aplikace může potřebovat zjistit, jestli se uživatel přihlásil pomocí procesu obnovení hesla. Deklarace identity isForgotPassword obsahuje logickou hodnotu, která označuje, že to tak je. Nárok může být vydán v tokenu, který se odešle do vaší aplikace. V případě potřeby přidejte isForgotPassword do výstupních deklarací v části Spoléhající se strana. Vaše aplikace může zkontrolovat položku isForgotPassword a zjistit, jestli uživatel obnovuje heslo.
<RelyingParty>
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="false" />
</OutputClaims>
</RelyingParty>
Nahrajte vlastní zásadu
- Přihlaste se do Azure Portalu.
- Pokud máte přístup k více tenantům, vyberte v horní nabídce ikonu Nastavení a poté z nabídky Adresáře + předplatná přepněte do tenanta Azure AD B2C.
- Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
- V nabídce v části Zásadyvyberte rozhraní Identity Experience Framework.
- Vyberte Nahrát vlastní zásady. V následujícím pořadí nahrajte soubory zásad, které jste změnili:
- Základní soubor vaší zásady, například TrustFrameworkBase.xml.
- Rozšiřovací politika, například TrustFrameworkExtensions.xml.
- Zásady důvěřující strany, například SignUpSignIn.xml.
Skrytí tlačítka změnit e-mail (volitelné)
Po ověření e-mailu může uživatel stále vybrat Změnit e-mailovou, zadat jinou e-mailovou adresu a pak opakovat ověření e-mailu. Pokud chcete skrýt tlačítko Změnit e-mail, můžete upravit šablony stylů CSS tak, aby skryly přidružené prvky HTML v dialogovém okně. Můžete například přidat následující položku CSS pro selfAsserted.html a přizpůsobit uživatelské rozhraní pomocí šablon HTML:
<style type="text/css">
.changeClaims
{
visibility: hidden;
}
</style>
Otestování toku resetování hesla
- Vyberte tok uživatele pro registraci nebo přihlášení (doporučený typ), který chcete otestovat.
- Vyberte Spustit tok uživatele.
- Pro aplikaci vyberte webovou aplikaci s názvem webapp1, kterou jste zaregistrovali dříve. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms. - Vyberte Spustit tok uživatele.
- Na registrační nebo přihlašovací stránce vyberte Zapomněli jste heslo?.
- Ověřte e-mailovou adresu účtu, který jste vytvořili dříve, a pak vyberte Pokračovat.
- V zobrazeném dialogovém okně změňte heslo uživatele a pak vyberte Pokračovat. Token se vrátí do
https://jwt.msa prohlížeč ho zobrazí. - Zkontrolujte hodnotu deklarace identity návratového tokenu isForgotPassword. Pokud existuje a je nastavená na
true, uživatel resetuje heslo.
Zásady resetování hesla (starší verze)
Pokud samoobslužné resetování hesla prostředí není povolené, po výběru tohoto odkazu se automaticky neaktivuje tok uživatele pro resetování hesla. Místo toho se do vaší aplikace vrátí kód chyby AADB2C90118. Vaše aplikace musí tento kód chyby zpracovat opětovnou inicializací knihovny pro ověřování uživatelského toku resetování hesla Azure AD B2C.
Následující diagram znázorňuje proces:
- V aplikaci uživatel vybere Přihlásit se. Aplikace zahájí žádost o autorizaci a přesměruje ji do Azure AD B2C, aby uživatel mohl dokončit přihlášení. Žádost o autorizaci určuje název zásady registrace nebo přihlášení, například B2C_1_signup_signin.
- Uživatel vybere Zapomněli jste heslo? odkaz. Azure AD B2C vrátí do aplikace kód chyby
AADB2C90118. - Aplikace zpracuje kód chyby a zahájí novou žádost o autorizaci. Žádost o autorizaci určuje název zásady resetování hesla, například B2C_1_pwd_reset.
Základní ukázku toho, jak jsou propojeny toky uživatelů, si můžete prohlédnout v našem vzorku ASP.NET.
Vytvoření uživatelského toku pro resetování hesla
Pokud chcete uživatelům aplikace umožnit resetovat hesla, vytvořte tok uživatele pro resetování hesla:
- Na webu Azure Portal přejděte na přehled tenanta Azure AD B2C.
- V nabídce vlevo v části Zásadyvyberte Toky uživatelůa pak vyberte Nový tok uživatele.
- V Vytvoření toku uživatelevyberte tok resetování hesla.
- V části Vyberte verzi, vyberte Doporučenéa pak vyberte Vytvořit.
- Do pole Názevzadejte název toku uživatele. Například reset hesla1.
- Pro zprostředkovatele identitypovolte resetování hesla pomocí uživatelského jména nebo resetování hesla pomocí e-mailové adresy.
- V části Vícefaktorové ověřování, pokud chcete, aby uživatelé ověřili své identity pomocí druhé metody ověřování, vyberte typ metody a kdy chcete vynutit vícefaktorové ověřování. Další informace.
- V části Podmíněný přístup, pokud jste nakonfigurovali zásady podmíněného přístupu pro vašeho tenanta Azure AD B2C a chcete je použít v tomto toku uživatele, zaškrtněte políčko Vynutit zásady podmíněného přístupu. Nemusíte zadávat název zásady. Další informace.
- V části Žádosti aplikacevyberte Zobrazit více. Zvolte nároky, které chcete vrátit v autorizačních tokenech posílaných zpět do vaší aplikace. Vyberte například ID objektu uživatele.
- Vyberte OK.
- Vyberte Vytvořit a přidejte tok pro uživatele. Do názvu se automaticky přidá předpona B2C_1.
Testování toku uživatele
Otestování toku uživatele:
- Vyberte uživatelský tok, který jste vytvořili. Na stránce s přehledem toku uživatele vyberte Spustit tok uživatele.
- V aplikacevyberte webovou aplikaci, kterou chcete testovat, například aplikaci s názvem webapp1, pokud jste ji zaregistrovali dříve. Adresa URL odpovědi by měla být
https://jwt.ms. - Vyberte Spustit uživatelský tok, ověřte e-mailovou adresu účtu, pro který chcete resetovat heslo, a pak vyberte Pokračovat.
- Změňte heslo a pak vyberte Pokračovat. Token se vrátí do
https://jwt.msa prohlížeč ho zobrazí.
Vytvoření zásady resetování hesel
Vlastní zásady jsou sada souborů XML, které nahrajete do tenanta Azure AD B2C a definují cesty uživatelů. Poskytujeme úvodní balíčky, které mají několik předem připravených zásad, včetně registrace a přihlášení, resetování hesla a zásad úprav profilu. Další informace najdete v tématu Začínáme s vlastními zásadami v Azure AD B2C.
Řešení potíží s uživatelskými toky a vlastními zásadami v Azure AD B2C.
Vaše aplikace musí zpracovávat určité chyby pocházející ze služby Azure B2C. Přečtěte si, jak řešit potíže s toky uživatelů Azure AD B2C a vlastními zásadami.
Související obsah
Nastavte vynucené resetování hesla.