Azure Active Directory B2C'de parola sıfırlama akışı ayarlama

Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.

Kaydolma ve oturum açma yolculuğunda, kullanıcı Parolanızı mı unuttunuz? bağlantısını kullanarak kendi parolasını sıfırlayabilir. Bu self servis parola sıfırlama akışı, Azure Active Directory B2C'de (Azure AD B2C) oturum açma için parolalı bir e-posta adresi veya kullanıcı adı kullanan yerel hesaplar için geçerlidir.

Parola sıfırlama akışı aşağıdaki adımları içerir:

  1. Kaydolma ve oturum açma sayfasında kullanıcı Parolanızı mı unuttunuz? bağlantısını seçer. Azure AD B2C, parola sıfırlama akışını başlatır.
  2. Görüntülenen sonraki iletişim kutusunda kullanıcı e-posta adresini girer ve doğrulama kodu gönder'i seçer. Azure AD B2C, kullanıcının e-posta hesabına bir doğrulama kodu gönderir. Kullanıcı doğrulama kodunu e-postadan kopyalar, Kodu Azure AD B2C parola sıfırlama iletişim kutusuna girer ve ardından Kodu doğrula'yı seçer.
  3. Kullanıcı daha sonra yeni bir parola girebilir. (E-posta doğrulandıktan sonra, kullanıcı E-postayı değiştir düğmesi; bkz . E-postayı değiştir düğmesini gizleme.)

Diagram that shows three dialogs in the password reset flow.

Bahşiş

Kullanıcı, parolasını unutur ve sıfırlamak isterse self servis parola sıfırlama akışını kullanarak parolasını değiştirebilir. Aşağıdaki kullanıcı akışı seçeneklerinden birini de seçebilirsiniz:

  • Kullanıcı parolasını biliyorsa ve parolayı değiştirmek istiyorsa parola değiştirme akışı kullanın.
  • Bir kullanıcıyı parolasını sıfırlamaya zorlamak istiyorsanız (örneğin, ilk kez oturum açtıklarında, parolaları bir yönetici tarafından sıfırlandığında veya rastgele parolalarla Azure AD B2C'ye geçirildikten sonra), parola sıfırlamaya zorlama akışını kullanın.

selfAsserted.html dosyasındaki E-postayı değiştir düğmesinin varsayılan adı changeclaims'tir. Düğme adını bulmak için, kaydolma sayfasında İncele gibi bir tarayıcı aracı kullanarak sayfa kaynağını inceleyin.

Önkoşullar

E-postayı değiştir düğmesini gizleme

E-posta doğrulandıktan sonra kullanıcı yine e-postayı değiştir'i seçebilir, başka bir e-posta adresi girebilir ve e-posta doğrulamayı yineleyebilir. E-postayı değiştir düğmesini gizlemeyi tercih ederseniz, CSS'yi iletişim kutusundaki ilişkili HTML öğelerini gizleyecek şekilde değiştirebilirsiniz. Örneğin, selfAsserted.html dosyasına aşağıdaki CSS girdisini ekleyebilir ve HTML şablonlarını kullanarak kullanıcı arabirimini özelleştirebilirsiniz:

<style type="text/css">
   .changeClaims
   {
     visibility: hidden;
   }
</style>

Yeni parola sıfırlama deneyimi artık kaydolma veya oturum açma ilkesinin bir parçasıdır. Kullanıcı Parolanızı mı unuttunuz? bağlantısını seçtiğinde, hemen Parolayı Unuttum deneyimine gönderilir. Uygulamanızın artık AADB2C90118 hata kodunu işlemesi gerekmez ve parola sıfırlama için ayrı bir ilkeye ihtiyacınız yoktur.

Self servis parola sıfırlama deneyimi, Oturum açma (Önerilen) veya Kaydolma ve oturum açma (Önerilen) kullanıcı akışları için yapılandırılabilir. Bu kullanıcı akışlarından birini ayarlamadıysanız bir kaydolma veya oturum açma kullanıcı akışı oluşturun.

Kaydolma veya oturum açma kullanıcı akışı için self servis parola sıfırlamayı ayarlamak için:

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. Kullanıcı akışları'ı seçin.
  5. Özelleştirmek istediğiniz bir kaydolma veya oturum açma kullanıcı akışı (Önerilen türünde) seçin.
  6. Ayarlar altındaki menüde Özellikler'i seçin.
  7. Parola yapılandırması'nın altında Self servis parola sıfırlama'yı seçin.
  8. Kaydet'i seçin.
  9. Özelleştir'in altındaki sol menüde Sayfa düzenleri'ni seçin.
  10. Sayfa Düzeni Sürümü'nde 2.1.3 veya üzerini seçin.
  11. Kaydet'i seçin.

Aşağıdaki bölümlerde, bir özel ilkeye self servis parola deneyiminin nasıl ekleneceği açıklanmaktadır. Örnek, özel ilke başlangıç paketine dahil edilen ilke dosyalarını temel alır.

İlkeye kullanıcının Parolanızı mı unuttunuz? bağlantısını seçtiğini belirtmek için bir Boole talebi tanımlayın. Kullanıcı yolculuğunu Parolayı Unuttum teknik profiline yönlendirmek için talebi kullanın. Talep belirteci de verebilir, böylece uygulama kullanıcının Parolayı Unuttum kullanıcı akışını kullanarak oturum açtığını algılar.

Talep şemanızda taleplerinizi bildirin. İlkenizin uzantı dosyasını açın( örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml).

  1. BuildingBlocks öğesini arayın. Öğesi yoksa ekleyin.

  2. ClaimsSchema öğesini bulun. Öğesi yoksa ekleyin.

  3. ClaimsSchema öğesine aşağıdaki talebi ekleyin.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="isForgotPassword">
          <DisplayName>isForgotPassword</DisplayName>
          <DataType>boolean</DataType>
          <AdminHelpText>Whether the user has selected Forgot your Password</AdminHelpText>
        </ClaimType>
      <!--
      </ClaimsSchema>
    </BuildingBlocks> -->
    

Sayfa düzeni sürümünü yükseltme

Kaydolma veya oturum açma yolculuğunda self servis parola sıfırlama akışını etkinleştirmek için sayfa düzeni sürüm 2.1.2 gereklidir. Sayfa düzeni sürümünü yükseltmek için:

  1. İlkenizin temel dosyasını açın; örneğin, SocialAndLocalAccounts/TrustFrameworkBase.xml.

  2. BuildingBlocks öğesini arayın. Öğesi yoksa ekleyin.

  3. ContentDefinitions öğesini bulun. Öğesi yoksa ekleyin.

  4. ContentDefinition öğesindeki DataURI öğesini kimliğine api.signuporsigninsahip olacak şekilde değiştirin:

    <!-- 
    <BuildingBlocks>
      <ContentDefinitions> -->
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri>
        </ContentDefinition>
      <!-- 
      </ContentDefinitions>
    </BuildingBlocks> -->
    

Teknik profilleri ekleme

Talep dönüştürme teknik profili, talepe erişir isForgotPassword . Teknik profile daha sonra başvurulur. Çağrıldığında, talebin isForgotPassword değerini olarak trueayarlar.

  1. İlkenizin uzantı dosyasını açın( örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml).
  2. ClaimsProviders öğesini bulun (öğe yoksa oluşturun) ve ardından aşağıdaki talep sağlayıcısını ekleyin:
<!-- 
<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 teknik profil ayarı.forgotPasswordLinkOverride, kullanıcı yolculuğunuzda yürütülen parola sıfırlama talep değişimini tanımlar.

Kullanıcının SSO koşulları altında sonraki oturum açmaları başarıyla önceden oluşturması için LocalAccountWritePasswordUsingObjectId teknik profili UseTechnicalProfileForSessionManagementSM-AAD oturum yöneticisi gereklidir.

Parola sıfırlama alt yolculuğunu ekleme

Kullanıcı artık kullanıcı yolculuğunuzda oturum açabilir, kaydolabilir ve parola sıfırlama gerçekleştirebilir. Kullanıcı yolculuğunu daha iyi düzenlemek için, parola sıfırlama akışını işlemek için bir alt yolculuk kullanabilirsiniz.

Alt yolculuk, kullanıcı yolculuğundan çağrılır ve kullanıcıya parola sıfırlama deneyimini sunan belirli adımları gerçekleştirir. Alt yolculuk tamamlandığında denetimin Call alt yolculuğu başlatan düzenleme adımına döndürülmesi için tür alt yolculuğunu kullanın.

  1. İlkenizin SocialAndLocalAccounts/TrustFrameworkExtensions.xml gibi uzantı dosyasını açın.
  2. SubJourneys öğesini bulun. Öğesi yoksa, User Journeys öğesinin arkasına ekleyin. Ardından aşağıdaki alt yolculuğu ekleyin:
<!--
<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>-->

Kullanıcı yolculuğunuzu hazırlama

Ardından, Parolanızı mı unuttunuz? bağlantısını Parolayı Unuttum alt yolculuğuna bağlamak için CombinedSignInAndSignUp adımının ClaimsProviderSelection öğesindeki Parolayı Unuttum alt yolculuğu kimliğine başvurmanız gerekir.

CombinedSignInAndSignUp adımı olan kendi özel kullanıcı yolculuğunuz yoksa, var olan bir kaydolma veya oturum açma kullanıcı yolculuğunu yinelemek için aşağıdaki adımları tamamlayın. Aksi takdirde, sonraki bölüme geçin.

  1. Başlangıç paketinde SocialAndLocalAccounts/TrustFrameworkBase.xml gibi TrustFrameworkBase.xml dosyasını açın.
  2. içeren Id="SignUpOrSignIn"UserJourney öğesinin tüm içeriğini bulun ve kopyalayın.
  3. SocialAndLocalAccounts/TrustFrameworkExtensions.xml gibi TrustFrameworkExtensions.xml dosyasını açın ve UserJourneys öğesini bulun. Öğesi yoksa oluşturun.
  4. 2. adımda kopyaladığınız UserJourney öğesinin tüm içeriğini yapıştırarak UserJourneys öğesinin alt öğesini oluşturun.
  5. Kullanıcı yolculuğunun kimliğini yeniden adlandırın. Örneğin, Id="CustomSignUpSignIn".

Kullanıcı yolculuğunuzda Parolayı Unuttum alt yolculuğunu ClaimsProviderSelection olarak temsil edebilirsiniz. Bu öğeyi ekleyerek Parolanızı mı unuttunuz? bağlantısını Parolayı Unuttum alt yolculuğuna bağlarsınız.

  1. SocialAndLocalAccounts/TrustFrameworkExtensions.xml gibi TrustFrameworkExtensions.xml dosyasını açın.

  2. Kullanıcı yolculuğunda, veya Type="ClaimsProviderSelection"içeren Type="CombinedSignInAndSignUp" düzenleme adımı öğesini bulun. Genellikle ilk düzenleme adımıdır. ClaimsProviderSelections öğesi, kullanıcının oturum açmak için kullanabileceği kimlik sağlayıcılarının listesini içerir. Aşağıdaki satırı ekleyin:

    <ClaimsProviderSelection TargetClaimsExchangeId="ForgotPasswordExchange" />
    
  3. Sonraki düzenleme adımında aşağıdaki satırı ekleyerek claimsexchange öğesi ekleyin:

    <ClaimsExchange Id="ForgotPasswordExchange" TechnicalProfileReferenceId="ForgotPassword" />
    
  4. Geçerli adımla sonraki adım arasına aşağıdaki düzenleme adımını ekleyin. Eklediğiniz yeni düzenleme adımı isForgotPassword talebi olup olmadığını denetler. Talep varsa parola sıfırlama alt yolculuğunu çağırır.

    <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>
    
  5. Yeni düzenleme adımını ekledikten sonra, 1'den N'ye herhangi bir tamsayı atlamadan adımları sıralı olarak yeniden numaralandırın.

Yürütülecek kullanıcı yolculuğunu ayarlama

Artık bir kullanıcı yolculuğunu değiştirdiğinize veya oluşturduğunuza göre Bağlı Taraf bölümünde Azure AD B2C'nin bu özel ilke için gerçekleştireceği yolculuğu belirtin.

  1. SocialAndLocalAccounts/SignUpOrSignin.xml gibi Bağlı Olan Taraf öğesini içeren dosyayı açın.

  2. RelyingParty öğesinde DefaultUserJourney öğesini bulun.

  3. DefaultUserJourney ReferenceId değerini ClaimsProviderSelections eklediğiniz kullanıcı yolculuğunun kimliğiyle eşleşecek şekilde güncelleştirin.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Uygulamanıza Parolayı Unuttum akışını belirtin

Uygulamanızın, kullanıcının Parolayı Unuttum kullanıcı akışını kullanarak oturum açıp açmadığını algılaması gerekebilir. isForgotPassword talebi, yaptıklarını gösteren bir Boole değeri içerir. Talep, uygulamanıza gönderilen belirteçte yayımlanabilir. Gerekirse, Bağlı Olan Taraf bölümündeki çıkış taleplerine isForgotPassword ekleyin. Uygulamanız, kullanıcının parolasını sıfırlayıp sıfırlamadığını belirlemek için isForgotPassword talebine bakabilir.

<RelyingParty>
  <OutputClaims>
    ...
    <OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="false" />
  </OutputClaims>
</RelyingParty>

Özel ilkeyi karşıya yükleme

  1. Azure Portal oturum açın.
  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracısına geçmek için üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. İlkeler'in altındaki menüde Kimlik Deneyimi Çerçevesi'ni seçin.
  5. Özel ilkeyi karşıya yükle'yi seçin. Aşağıdaki sırayla, değiştirdiğiniz ilke dosyalarını karşıya yükleyin:
    1. İlkenizin temel dosyası, örneğin TrustFrameworkBase.xml.
    2. Uzantı ilkesi, örneğin, TrustFrameworkExtensions.xml.
    3. Bağlı olan taraf ilkesi, örneğin, SignUpSignIn.xml.

Parola sıfırlama akışını test edin

  1. Test etmek istediğiniz bir kaydolma veya oturum açma kullanıcı akışı (Önerilen tür) seçin.
  2. Kullanıcı akışı çalıştır'ı seçin.
  3. Uygulama için daha önce kaydettiğiniz webapp1 adlı web uygulamasını seçin. Yanıt URL'si göstermelidirhttps://jwt.ms.
  4. Kullanıcı akışı çalıştır'ı seçin.
  5. Kaydolma veya oturum açma sayfasında Parolanızı mı unuttunuz? öğesini seçin.
  6. Daha önce oluşturduğunuz hesabın e-posta adresini doğrulayın ve Devam'ı seçin.
  7. Gösterilen iletişim kutusunda kullanıcının parolasını değiştirin ve ardından Devam'ı seçin. Belirteç öğesine https://jwt.ms döndürülür ve tarayıcı tarafından görüntülenir.
  8. Dönüş belirtecinin isForgotPassword talep değerini denetleyin. Varsa ve olarak ayarlandıysa true, kullanıcı parolayı sıfırlamıştır.

Parola sıfırlama ilkesi (eski)

Self servis parola sıfırlama deneyimi etkin değilse, bu bağlantı seçildiğinde otomatik olarak parola sıfırlama kullanıcı akışı tetiklemez. Bunun yerine hata kodu AADB2C90118 uygulamanıza döndürülür. Uygulamanızın, Azure AD B2C parola sıfırlama kullanıcı akışının kimliğini doğrulamak için kimlik doğrulama kitaplığını yeniden başlatarak bu hata kodunu işlemesi gerekir.

Aşağıdaki diyagramda işlemi gösterilmiştir:

  1. Uygulamada kullanıcı Oturum aç'ı seçer. Uygulama bir yetkilendirme isteği başlatır ve kullanıcının oturum açmayı bitirebilmesi için Azure AD B2C'ye yönlendirir. Yetkilendirme isteği, B2C_1_signup_signin gibi bir kaydolma veya oturum açma ilkesi adı belirtir.

  2. Kullanıcı Parolanızı mı unuttunuz? bağlantısını seçer. Azure AD B2C, hata kodunu uygulamaya döndürür AADB2C90118 .

  3. Uygulama hata kodunu işler ve yeni bir yetkilendirme isteği başlatır. Yetkilendirme isteği, B2C_1_pwd_reset gibi parola sıfırlama ilkesi adını belirtir.

    Diagram that shows the legacy password reset user flow.

Kullanıcı akışlarının nasıl bağlantı oluşturduğunu gösteren temel bir ASP.NET örneği görebilirsiniz.

Parola sıfırlama kullanıcı akışı oluşturma

Uygulama kullanıcılarınızın parolalarını sıfırlamasına izin vermek için parola sıfırlama kullanıcı akışı oluşturun:

  1. Azure portalında Azure AD B2C kiracısına genel bakış'a gidin.
  2. Soldaki menüde İlkeler'in altında Kullanıcı akışları'nı ve ardından Yeni kullanıcı akışı'nı seçin.
  3. Kullanıcı akışı oluştur bölümünde Parola sıfırlama kullanıcı akışını seçin.
  4. Sürüm seçin'in altında Önerilen'i ve ardından Oluştur'u seçin.
  5. Ad alanına kullanıcı akışı için bir ad girin. Örneğin, passwordreset1.
  6. Kimlik sağlayıcıları için Kullanıcı adı kullanarak parolayı sıfırla'yı veya E-posta adresini kullanarak parolayı sıfırla'yı etkinleştirin.
  7. Çok faktörlü kimlik doğrulaması altında, kullanıcıların ikinci bir kimlik doğrulama yöntemi kullanarak kimliklerini doğrulamasını zorunlu kılmak istiyorsanız, yöntem türünü ve çok faktörlü kimlik doğrulamasının ne zaman zorunlu kılınmasını istediğinizi seçin. Daha fazla bilgi edinin.
  8. Koşullu erişim'in altında, Azure AD B2C kiracınız için koşullu erişim ilkeleri yapılandırdıysanız ve bunları bu kullanıcı akışında kullanmak istiyorsanız Koşullu erişim ilkelerini zorla onay kutusunu seçin. İlke adı belirtmeniz gerekmez. Daha fazla bilgi edinin.
  9. Uygulama talepleri'nin altında Daha fazla göster'i seçin. Uygulamanıza geri gönderilen yetkilendirme belirteçlerinde döndürülmesini istediğiniz talepleri seçin. Örneğin, Kullanıcının Nesne Kimliği’ni seçin.
  10. Tamam'ı seçin.
  11. Kullanıcı akışını eklemek için Oluştur'u seçin. Ada otomatik olarak bir B2C_1 ön eki eklenir.

Kullanıcı akışını test edin

Kullanıcı akışını test etmek için:

  1. Oluşturduğunuz kullanıcı akışını seçin. Kullanıcı akışına genel bakış sayfasında Kullanıcı akışını çalıştır'ı seçin.
  2. Uygulama için, daha önce kaydettiyseniz webapp1 adlı web uygulaması gibi test etmek istediğiniz web uygulamasını seçin. Yanıt URL'si olmalıdırhttps://jwt.ms.
  3. Kullanıcı akışını çalıştır'ı seçin, parolasını sıfırlamak istediğiniz hesabın e-posta adresini doğrulayın ve ardından Devam'ı seçin.
  4. Parolayı değiştirip Devam'ı seçin. Belirteç öğesine https://jwt.ms döndürülür ve tarayıcı tarafından görüntülenir.

Parola sıfırlama ilkesi oluşturma

Özel ilkeler, kullanıcı yolculuklarını tanımlamak için Azure AD B2C kiracınıza yüklediğiniz bir DIZI XML dosyasıdır. Kaydolma ve oturum açma, parola sıfırlama ve profil düzenleme ilkeleri gibi önceden oluşturulmuş çeşitli ilkelere sahip başlangıç paketleri sağlıyoruz. Daha fazla bilgi için bkz . Azure AD B2C'de özel ilkeleri kullanmaya başlama.

Azure AD B2C kullanıcı akışları ve özel ilkelerle ilgili sorunları giderme

Uygulamanızın Azure B2C hizmetinden gelen bazı hataları işlemesi gerekiyor. Azure AD B2C'nin kullanıcı akışları ve özel ilkeleriyle ilgili sorunları gidermeyi öğrenin.

Sonraki adımlar

Zorla parola sıfırlama ayarlayın.

Katıştırılmış parola sıfırlama ile kaydolun ve oturum açın.