Managing external identities to enable secure access for partners, customers, and other non-employees
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.