Managing external identities to enable secure access for partners, customers, and other non-employees
The attributes_required error is only returned when both of these conditions are true:
- The tenant has one or more required user attributes configured for sign-up (built-in or custom) in Microsoft Entra admin center.
- The app has not submitted all of those required attributes in the
/signup/v1.0/startrequest.
If all required attributes are already submitted in /signup/v1.0/start, or if no attributes are configured as required, Microsoft Entra returns a success response with a continuation_token and does not send error = attributes_required.
From the native auth reference:
- If the app submits the password and all required attributes via
/signup/v1.0/start, Microsoft Entra issues a continuation token and the app can proceed to request tokens. - If the app submits the password but not all required attributes, Microsoft Entra returns an error with
error = attributes_requiredand arequired_attributeslist, and the app must call/signup/v1.0/continuewith those attributes.
Therefore, if attributes_required is never seen, typical causes are:
- The attributes configured in the user flow are optional, not required, so the service never needs to block sign-up to ask for them.
- The app is already sending all required attributes in the initial
/signup/v1.0/startcall, so there is no need for the service to request more. - No attributes are configured at all in the External ID user flow, so the service proceeds without any attribute checks.
To force the attributes_required behavior in a test:
- In the External ID user flow, mark one or more attributes as required.
- In the
/signup/v1.0/startrequest, send only the username/password and omit at least one of those required attributes from theattributesJSON. - The response should then be
400 Bad Requestwitherror = attributes_requiredand arequired_attributesarray indicating which attributes must be submitted via/signup/v1.0/continue.
Also note:
- Optional attributes are never explicitly requested; if all required attributes are present, additional optional attributes cannot be added later via
/signup/v1.0/continue. - Microsoft Entra ignores any attributes submitted that do not exist in the tenant configuration.
If the user flow is correctly configured with required attributes and the app is definitely not sending them in /signup/v1.0/start, but attributes_required still does not appear, capture the raw HTTP request/response and verify:
- The
attributesparameter is present or absent as expected. - The attribute keys match the programmable names (or
extension_{appIdWithoutHyphens}_{attributeName}for custom attributes).
References: