Freigeben über


Einrichten der Kennwortänderung mithilfe von benutzerdefinierten Richtlinien in Azure Active Directory B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.

Sie können Azure Active Directory B2C (Azure AD B2C) so konfigurieren, dass ein Benutzer, der mit einem lokalen Konto angemeldet ist, sein Kennwort ändern kann, ohne die E-Mail-Überprüfung zu verwenden, um seine Identität zu bestätigen.

Der Kennwortänderungsfluss umfasst die folgenden Schritte:

  1. Der Benutzer meldet sich bei dem lokalen Konto an. Wenn die Sitzung noch aktiv ist, autorisiert Azure AD B2C den Benutzer und springt zum nächsten Schritt.

  2. Im alten Kennwort überprüft der Benutzer sein altes Kennwort. In "Neues Kennwort" erstellen und bestätigen sie ihr neues Kennwort.

    Screenshot mit zwei nummerierten Dialogfeldern zum Ändern eines Kennworts.

Tipp

Ein Benutzer kann den in diesem Artikel beschriebenen Kennwortänderungsfluss nur verwenden, wenn er sein Kennwort kennt und sein Kennwort ändern möchte. Es wird empfohlen, auch die Self-Service-Kennwortzurücksetzung zu aktivieren, um Fälle zu unterstützen, in denen der Benutzer sein Kennwort vergessen hat.

Dieses Feature ist nur für benutzerdefinierte Richtlinien verfügbar. Wählen Sie für Setupschritte im vorherigen Selektor die Option "Benutzerdefinierte Richtlinie " aus.

Voraussetzungen

Hinzufügen der Elemente

  1. Öffnen Sie ihre TrustFrameworkExtensions.xml Datei. Fügen Sie das folgende ClaimType-Element zum ClaimsSchema-Element mit einem Bezeichner von 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. Ein ClaimsProvider-Element enthält das technische Profil, das den Benutzer authentifiziert. Fügen Sie dem ClaimsProviders-Element die folgenden Anspruchsanbieter hinzu:

    <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. Das UserJourneys-Element definiert den Pfad, den der Benutzer verwendet, wenn er mit Ihrer Anwendung interagiert. Fügen Sie das UserJourneys-Element hinzu, wenn es nicht vorhanden ist, mit dem UserJourney-Bezeichner von 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>
    
  4. Speichern Sie die TrustFrameworkExtensions.xml-Richtliniendatei.

  5. Kopieren Sie die ProfileEdit.xml Datei, die Sie mit dem Startpaket heruntergeladen haben, und nennen Sie sie ProfileEditPasswordChange.xml.

  6. Öffnen Sie die neue Datei, und aktualisieren Sie das PolicyId-Attribut mit einem eindeutigen Wert. Dieser Wert ist der Name Ihrer Richtlinie. Beispiel: B2C_1A_profile_edit_password_change.

  7. Ändern Sie das ReferenceId-Attribut in DefaultUserJourney so, dass es mit der ID der neuen Benutzerreise übereinstimmt, die Sie erstellt haben. Beispiel: PasswordChange.

  8. Speichern Sie Ihre Änderungen.

Hochladen und Testen der Richtlinie

  1. Melden Sie sich beim Azure-Portal an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
  4. Wählen Sie "Identity Experience Framework" aus.
  5. Wählen Sie in benutzerdefinierten Richtlinien " Uploadrichtlinie" aus.
  6. Wählen Sie "Richtlinie überschreiben" aus, falls sie vorhanden ist, und suchen Sie dann nach der TrustFrameworkExtensions.xml Datei.
  7. Wählen Sie die Option Hochladen.
  8. Wiederholen Sie die Schritte 5 bis 7 für die Datei der vertrauenden Seite, z. B. ProfileEditPasswordChange.xml.

Ausführen der Richtlinie

  1. Öffnen Sie die Richtlinie, die Sie geändert haben. Beispiel: B2C_1A_profile_edit_password_change.
  2. Wählen Sie für "Anwendung" die Anwendung aus, die Sie zuvor registriert haben. Um das Token zu sehen, sollte die Antwort-URLhttps://jwt.ms anzeigen.
  3. Wählen Sie Jetzt ausführen aus. Entfernen Sie auf der daraufhin geöffneten neuen Registerkarte "&prompt=login" aus der URL, und aktualisieren Sie die Registerkarte. Melden Sie sich dann mit dem Konto an, das Sie zuvor erstellt haben. Ein Dialogfeld zur Kennwortänderung bietet Ihnen die Möglichkeit, das Kennwort zu ändern.