Entra ID Integration — Migration Checklist
We are rolling out Entra ID integration for the OSDU Data Platform. If you authenticate using the authorization code flow (delegated/user tokens), you need to update your token scope.
Available for all environments
Entra ID integration is now live for all environments — Development, Test, and Production. Update your token scope to https://energy.azure.com/.default
Client credentials flow
The new unified scope also works for the client credentials flow. Apps using client credentials should update their scope to https://energy.azure.com/.default
To understand why we are making this change and how Entra ID integration works, see Entra ID Integration.
What's changing
When obtaining a delegated token via the authorization code flow, the scope is changing from a per-instance resource ID to a unified scope:
| Old scope | New scope | |
|---|---|---|
| Development | 7daee810-3f78-40c4-84c2-7a199428de18/.default |
https://energy.azure.com/.default |
| Test | 7daee810-3f78-40c4-84c2-7a199428de18/.default |
https://energy.azure.com/.default |
| Production | 5a1178c2-5867-4a34-8fb8-216164e30b5f/.default |
https://energy.azure.com/.default |
The new scope applies to all environments — Development, Test, and Production.
Checklist
1. Update your app registration API permission and request admin consent
If your team has its own app registration that uses user_impersonation on the old per-instance resource (dffa82c7-...), you must add the new API permission and get admin consent before changing your scope.
Without this, you will hit one of these errors:
- No API permission added:
AADSTS650057: Invalid resource— the client has requested access to a resource which is not listed in the requested permissions in the client's application registration. - API permission added but not admin consented: Entra ID will show an "Approval required" page saying the app requires your admin's approval.
Steps:
- Go to your app registration in the Azure Portal → API permissions
- Click Add a permission → APIs my organization uses → search for "Azure Data Manager for Energy"
- Select the one with client ID
bd0c9d90-89ad-4bb3-97bc-d787b9f69cdc(not the olddffa82c7-...) - Choose Delegated permissions → select
access_as_user→ Add permissions - Request admin consent by emailing AADAppConsent@equinor.com with your app registration name and client ID
- Wait for admin consent to be granted before proceeding to the next steps
- Once granted, verify that the new scope works before removing the old API permission. Keep the old
user_impersonationpermission ondffa82c7-...as a fallback until you have confirmed everything works.
2. Update your CLI config files (if applicable)
Open each config file in ~/.osducli/ (or C:\Users\<YourUsername>\.osducli\ on Windows) and update the scopes line:
Before:
scopes = 7daee810-3f78-40c4-84c2-7a199428de18/.default openid
After:
scopes = https://energy.azure.com/.default openid
Repeat for config_dev, config_test.
For config_prod:
Before:
scopes = 5a1178c2-5867-4a34-8fb8-216164e30b5f/.default openid
After:
scopes = https://energy.azure.com/.default openid
3. Update your Python scripts (if applicable)
If you use the Python SDK with interactive authentication, update the resource_id:
Before:
resource_id = "7daee810-3f78-40c4-84c2-7a199428de18"
credential = OsduMsalInteractiveCredential(client_id, authority, resource_id)
After:
resource_id = "https://energy.azure.com"
credential = OsduMsalInteractiveCredential(client_id, authority, resource_id)
If you use MSAL directly with interactive flows, update the scopes:
Before:
scopes = ["7daee810-3f78-40c4-84c2-7a199428de18/.default"]
After:
scopes = ["https://energy.azure.com/.default"]
4. Update Postman and other tools (if applicable)
If you use your own Postman setup, Insomnia, or any other tool that obtains tokens using the authorization code flow (grant type authorization_code), update the scope there too:
- Old scope:
7daee810-3f78-40c4-84c2-7a199428de18/.default(or the equivalent per-instance ID) - New scope:
https://energy.azure.com/.default
This applies to any tool or workflow where you sign in as a user to get a token.
5. Verify your access
Run a quick health check to confirm everything works:
osdu status
Or via Python:
response = client.get(f"{server}/api/search/v2/health/readiness_check")
print(response.status_code) # Should be 200
What stays the same
- Applications and service principals — update to the new unified scope
https://energy.azure.com/.default. This works for client credentials as well. - Server URLs — no change to base URLs or API paths
- Data partition IDs — no change
- Client IDs — no change
Need help?
If you run into issues after updating, contact the OSDU Platform Team: