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

Bevor Sie beginnen, verwenden Sie den Auswahlpunkt Richtlinientyp wählen, um die Art der Richtlinie auszuwählen, die Sie einrichten möchten. 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 nachzuweisen.

Der Ablauf zur Kennwortänderung umfasst die folgenden Schritte:

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

  2. Unter Altes Kennwort überprüft der Benutzer sein altes Kennwort. Unter Neues Kennwort wird das neue Kennwort erstellt und bestätigt.

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

Tipp

Ein Benutzer kann den in diesem Artikel beschriebenen Kennwortänderungsablauf nur verwenden, wenn er sein Kennwort kennt und dieses ändern möchte. Sie sollten auch das Rücksetzen des Kennworts in Selbstbedienung aktivieren für Fälle, in denen der Benutzer sein Kennwort vergessen hat.

Dieses Feature ist nur für benutzerdefinierte Richtlinien verfügbar. Wählen Sie für die Einrichtungsschritte in der vorherigen Auswahl die Option Benutzerdefinierte Richtlinie aus.

Voraussetzungen

Hinzufügen der Elemente

  1. Öffnen Sie Ihre Datei TrustFrameworkExtensions.xml. Fügen Sie das folgende ClaimType Element zum ClaimsSchema hinzu, mit dem 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 UserJourney-Element definiert den Pfad, den der Benutzer beim Interagieren mit Ihrer Anwendung durchläuft. Fügen Sie das UserJourneys-Element hinzu (sofern es noch nicht vorhanden ist), mit der UserJourney-Identifizierung vonPasswordChange:

    <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 Richtliniendatei TrustFrameworkExtensions.xml.

  5. Kopieren Sie die Datei ProfileEdit.xml, die Sie mit dem Starter Pack heruntergeladen haben, und weisen Sie ihr den Namen ProfileEditPasswordChange.xml zu.

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

  7. Ändern Sie das Attribut ReferenceId in der DefaultUserJourney, um die ID der neuen Nutzer-Journey, die Sie geschaffen haben, anzugleichen. Beispiel: PasswordChange.

  8. Speichern Sie die Ä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 links oben im Azure-Portal die Option Alle Dienste aus, suchen Sie nach Azure AD B2C, und wählen Sie dann diese Option aus.
  4. Wählen Sie Framework für die Identitätsfunktion aus.
  5. Wählen Sie unter Benutzerdefinierte Richtlinien die Richtlinie zum Hochladen aus.
  6. Aktivieren Sie Richtlinie überschreiben, sofern vorhanden, suchen Sie nach der Datei TrustFrameworkExtensions.xml, und wählen Sie die Datei aus.
  7. Wählen Sie Hochladen aus.
  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 als Anwendung die Anwendung aus, die Sie vorher registriert haben. Um das Token anzuzeigen, muss als Antwort-URL der Wert https://jwt.ms angegeben werden.
  3. Wählen Sie Jetzt ausführen aus. Auf der neuen Registerkarte, die sich öffnet, entfernen Sie „&prompt=login“ aus der URL und aktualisieren Sie die Registerkarte. Melden Sie sich dann mit dem Konto an, das Sie zuvor erstellt haben. In einem Dialogfeld zur Kennwortänderung haben Sie die Möglichkeit, das Kennwort zu ändern.

Nächste Schritte