Azure Active Directory B2C'de özel ilkeler kullanarak parola değişikliğini 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.

Azure Active Directory B2C'yi (Azure AD B2C) yapılandırarak yerel bir hesapla oturum açmış bir kullanıcının kimliğini kanıtlamak için e-posta doğrulamasını kullanmadan parolasını değiştirebilmesini sağlayabilirsiniz.

Parola değiştirme akışı aşağıdaki adımları içerir:

  1. Kullanıcı kendi yerel hesabında oturum açar. Oturum hala etkinse, Azure AD B2C kullanıcıyı yetkiler ve sonraki adıma atlar.

  2. Eski parola'da kullanıcı eski parolasını doğrular. Yeni parola'da yeni parolalarını oluşturur ve onaylarlar.

    Screenshot that shows two numbered dialogs for making a password change.

Bahşiş

Bir kullanıcı, bu makalede açıklanan parola değiştirme akışını yalnızca parolasını bildiği ve parolasını değiştirmek istediği durumlarda kullanabilir. Kullanıcının parolasını unuttuğu durumları desteklemek için self servis parola sıfırlamayı da etkinleştirmenizi öneririz.

Bu özellik yalnızca özel ilkeler için kullanılabilir. Kurulum adımları için, önceki seçicide Özel ilke'yi seçin.

Önkoşullar

Öğeleri ekleme

  1. TrustFrameworkExtensions.xml dosyanızı açın. ClaimsSchema öğesine tanımlayıcısı ile oldPasswordaşağıdaki ClaimType öğesini ekleyin:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="oldPassword">
          <DisplayName>Old Password</DisplayName>
          <DataType>string</DataType>
          <UserHelpText>Enter your old password</UserHelpText>
          <UserInputType>Password</UserInputType>
        </ClaimType>
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. ClaimsProvider öğesi, kullanıcının kimliğini doğrulayan teknik profili içerir. ClaimsProviders öğesine aşağıdaki talep sağlayıcılarını ekleyin:

    <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>
    
  3. UserJourneys öğesi, kullanıcının uygulamanızla etkileşime geçtiğinde izlediği yolu tanımlar. Yoksa UserJourneys öğesini userjourney tanımlayıcısı PasswordChangeile ekleyin:

    <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>
    
  4. TrustFrameworkExtensions.xml ilke dosyasını kaydedin.

  5. Başlangıç paketiyle indirdiğiniz ProfileEdit.xml dosyasını kopyalayın ve ProfileEditPasswordChange.xml olarak adlandırın.

  6. Yeni dosyayı açın ve PolicyId özniteliğini benzersiz bir değerle güncelleştirin. Bu değer, ilkenizin adıdır. Örneğin, B2C_1A_profile_edit_password_change.

  7. DefaultUserJourney içindeki ReferenceId özniteliğini, oluşturduğunuz yeni kullanıcı yolculuğunun kimliğiyle eşleşecek şekilde değiştirin. Örneğin, PasswordChange.

  8. Değişikliklerinizi kaydedin.

İlkeyi karşıya yükleme ve test edin

  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ının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  4. Kimlik Deneyimi Çerçevesi'ne tıklayın.
  5. Özel İlkeler'de İlkeyi Karşıya Yükle'yi seçin.
  6. varsa ilkenin üzerine yaz'ı seçin ve TrustFrameworkExtensions.xml dosyasını arayın ve seçin.
  7. Yükle'yi seçin.
  8. ProfileEditPasswordChange.xml gibi bağlı olan taraf dosyası için 5 ile 7 arasındaki adımları yineleyin.

İlkeyi çalıştırma

  1. Değiştirdiğiniz ilkeyi açın. Örneğin, B2C_1A_profile_edit_password_change.
  2. Uygulama için daha önce kaydettiğiniz uygulamayı seçin. Belirteci görmek için Yanıt URL'si göstermelidirhttps://jwt.ms.
  3. Şimdi Çalıştır'ı seçin. Açılan yeni sekmede URL'den "&prompt=login" öğesini kaldırın ve sekmeyi yenileyin. Ardından, daha önce oluşturduğunuz hesapla oturum açın. Parola değiştirme iletişim kutusu size parolayı değiştirme seçeneği sunar.

Sonraki adımlar