Managing external identities to enable secure access for partners, customers, and other non-employees
Microsoft Entra External ID and Microsoft Graph enforce throttling limits that can't be disabled, but migration can be optimized within those limits.
Key points from the documented limits and guidance:
- Understand the limits
- External tenants have request limits such as:
- Maximum requests per IP per external tenant: 20 per second
- Maximum requests per external tenant: 200 per second
- Maximum requests per external trial tenant: 20 per second
- Administrative CRUD operations (like bulk user creation) via Microsoft Graph are subject to Graph throttling limits and Graph throttling guidance.
- Total objects per tenant is 300,000 by default; to increase this, Microsoft Support must be contacted.
- External tenants have request limits such as:
- Optimize the migration script
- Follow the migration guidance for Stage 1: Migrate user data:
- Read users from the legacy CIAM.
- Create users in External ID via Microsoft Graph.
- If plaintext passwords are unavailable, set random passwords and handle password migration later.
- For large one-time directory operations like your 400K-user migration:
- Use Microsoft Graph batch operations to increase throughput.
- Use up to six application registrations to perform Graph operations in parallel. This can increase throughput but also risks hitting tenant-level limits, so must be used carefully.
- When throttling occurs, follow the Graph throttling guidance (respect
Retry-After, backoff, and pacing logic in the script).
- Follow the migration guidance for Stage 1: Migrate user data:
- Design for throttling and request limits
- Ensure the script:
- Caps the per-second request rate to stay under the documented limits (per IP and per tenant).
- Implements exponential backoff and honors Graph throttling responses.
- Uses batching to reduce the number of HTTP calls (for example, multiple user creates per batch request).
- For very large migrations, consider splitting the migration into phases and running during off-peak times to reduce contention with other workloads.
- Ensure the script:
- When to contact Microsoft Support
- If the 300,000 object per tenant limit is a blocker, Microsoft Support can be contacted to request an increase.
- For Graph resource types with stricter throttling limits, Microsoft notes that mitigations can be planned case-by-case via a support ticket.
There is no supported way to turn off throttling, but by using Graph batch operations, multiple app registrations (up to six), proper backoff, and respecting the documented per-tenant and per-IP limits, the migration script can be optimized to move 400K users reliably.
References: