How can i forceChangePasswordNextSignIn for microsoft entra external id?

Go-Ops 20 Reputation points
2025-08-04T12:24:30.2133333+00:00

Hi @team,

I'm currently attempting to enforce a password change for a user on their next sign-in using the Microsoft Graph API. However, the PATCH request doesn't appear to take effect.

API Endpoint: https://graph.microsoft.com/v1.0/users/<user-id>

Method: PATCH

Request Body:

{
      "passwordProfile": {
        "forceChangePasswordNextSignIn": true
    }
}

Response: HTTP 204 No Content

Issue: Despite receiving a 204 response, the user is not being prompted to change their password at sign-in.

Has anyone encountered this before or have insights into what might be missing?

I have tried the similar API using the cmdlet, and it seems to work correctly
Update-MgUser -UserId "<user-id>" -PasswordProfile @{ forceChangePasswordNextSignIn = $true }

Microsoft Security | Microsoft Entra | Microsoft Entra External ID

1 answer

Sort by: Most helpful
  1. Anonymous
    2025-08-13T10:12:26.5266667+00:00

    Hi @Go-Ops,

    Thank you for posting your query on Microsoft Q&A.

    As per our understanding, you’re trying to force a user to change their password at the next sign-in using the Microsoft Graph API by setting the forceChangePasswordNextSignIn property. While the API returns a successful response (HTTP 204), the user is not prompted to change their password.

    This behavior typically happens when the user you are updating is not a regular, cloud-managed user (known as a "Member" in Microsoft Entra ID), but instead is a Guest or part of an External ID/B2C sign-in flow. These types of accounts don't have passwords stored in your tenant, So while your request is accepted, the setting is ignored behind the scenes.

    Please refer to: https://techcommunity.microsoft.com/discussions/officegraph/permissions-required-to-update-password/3978494

    Please try the steps below:
    Check the User Type

    Run the following Graph API to check the user's type:

     GET https://graph.microsoft.com/v1.0/users/{user-id}?$select=userType

    If userType = Member → you can manage their password.

    If userType = Guest → password is managed by their home tenant/provider and can’t be changed from your side.

    For Cloud-only (Member) Users

    Patch:

    json

    {   "passwordProfile": {     "forceChangePasswordNextSignIn": true   } }

    You may include a new password in the same request if needed.

    Confirm headers are set correctly (Content-Type: application/json, valid token).

    This should work if the user is fully managed in your directory.

    For Guest / External / Federated Users

    You can’t force password changes from your tenant because these accounts are authenticated via their home identity provider (like Google, Facebook, or their own Entra tenant).

    These users must change their password through their original provider’s process.

    If you're syncing identities from on-premises AD using Azure AD Connect, consider enabling Self-Service Password Reset (SSPR) with password writeback.  

    Please "Accept as Answer" if the answer provided is useful, so that you can help others in the community looking for remediation for similar issues.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.