إعداد تغيير كلمة المرور باستخدام النُهج المخصصة في Azure Active Directory B2C

قبل أن تبدأ استخدم اختر نوع النهجالمحدد لاختيار نوع النهج التي تقوم بإعدادها. يوفر Azure Active Directory B2C طريقتين لتحديد كيفية تفاعل المستخدمين مع تطبيقاتك: من خلال تدفقات محددة مسبقا للمستخدمين أو من خلال سياسات مخصصة قابلة للتكوين بشكل كامل. تختلف الخطوات المطلوبة في هذه المقالة لكل أسلوب.

يمكنك تكوين Azure Active Directory B2C (Azure AD B2C) بحيث يمكن للمستخدم الذي قام بتسجيل الدخول باستخدام حساب محلي تغيير كلمة المرور الخاصة به دون استخدام التحقق من البريد الإلكتروني لإثبات هويته.

يتضمن تدفق تغيير كلمة المرور الخطوات التالية:

  1. يقوم المستخدم بتسجيل الدخول إلى حسابه المحلي. إذا كانت الجلسة ما تزال نشطة، فإن Azure AD B2C يخول المستخدم، ويتخطى إلى الخطوة التالية.

  2. في كلمة المرور القديمة، يتحقق المستخدم من كلمة مروره القديمة. في كلمة المرور الجديدة، يتحقق المستخدم من كلمة مروره الجديدة.

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

تلميح

يمكن للمستخدم استخدام تدفق تغيير كلمة المرور الموضح في هذه المقالة فقط عندما يعرف كلمة المرور الخاصة به ويريد تغيير كلمة مروره. نوصي أيضًا بتمكين إعادة تعيين كلمة مرور الخدمة الذاتية لدعم الحالات التي ينسى فيها المستخدم كلمة مروره.

هذه الميزة متاحة فقط للسياسات المخصصة. لخطوات الإعداد، حدد نهج مخصص في المحدد السابق.

المتطلبات الأساسية

أضف العناصر

  1. افتح ملف TrustFrameworkExtensions.xml خاصتك. أضف العنصر ClaimType التالي إلى العنصر ClaimsSchema مع معرف لـ 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>
    
  2. يحتوي عنصر ClaimsProvider على ملف التعريف الفني الذي يصادق المستخدم. أضف موفري المطالبات التاليين إلى عنصر ClaimsProviders :

    <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. يعرف عُنصر UserJourney المسار الذي يسلكه المستخدم عند التفاعل مع تطبيقك. أضف عنصر UserJourneys إذا لم يكن موجوداً مع المعرف UserJourneyPasswordChange:

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

  5. انسخ ملف ProfileEdit.xml الذي قمت بتنزيله باستخدام حزمة البداية وقم بتسميه ProfileEditPasswordChange.xml.

  6. افتح الملف الجديد وقم بتحديث السمة PolicyId بقيمة فريدة. هذه القيمة هي قيمة اسم النهج الخاص بك. على سبيل المثال، B2C_1A_profile_edit_password_change.

  7. عدِّل السمة ReferenceId في DefaultUserJourney لمطابقة معرف رحلة المستخدم الجديدة التي أنشاتها. على سبيل المثال، PasswordChange.

  8. احفظ تغييراتك.

حمّل النهج واختبره

  1. سجل الدخول إلى مدخل Azure.
  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
  3. اختر كل الخدمات في الزاوية العلويةِ اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2Cوحدده.
  4. حدد إطار عمل تجربة الهوية.
  5. في Custom Policies، حدد Upload Policy.
  6. حدد الكتابة فوق النهج إذا كان موجودًا،ثم ابحث عن الملفTrustframeworkExtensions.xml وحدده.
  7. حدد تحميل.
  8. كرر الخطوات من 5 إلى 7 لملف جهة الاعتماد، مثل ProfileEditPasswordChange.xml.

تشغيل النهج

  1. افتح النهج الذي غيرته. على سبيل المثال، B2C_1A_profile_edit_password_change.
  2. بالنسبة لـ Application، حدد التطبيق الذي سجلته مسبقًا. لمشاهدة الرمز المميز، يجب أن يظهر عنوان URLللردhttps://jwt.ms.
  3. حدد تشغيل الآن. في علامة التبويب الجديدة التي تفتح، بادر بإزالة "&&prompt=login" من عنوان URL، وتحديث علامة التبويب، ثم بادر بتسجيل الدخول باستخدام الحساب الذي أنشأته سابقًا. يمنحك مربع حوار تغيير كلمة المرور خيار تغيير كلمة المرور.

الخطوات التالية