An Azure service that provides access to OpenAI’s GPT-3 models with enterprise capabilities.
The On-Behalf-Of (OBO) flow requires that the middle-tier application can obtain delegated permissions to the downstream API via consent (user or admin) and that the resource exposes those delegated scopes and supports OBO.
From the provided information:
- OBO prerequisites
- The downstream resource must expose delegated scopes.
- An admin must be able to grant consent for those delegated scopes to the middle-tier app, or the resource must preauthorize the app.
- The middle-tier then uses
OnBehalfOfCredential(or a raw OBO token request) to redeem the incoming user token for a new token to the downstream API.
- The middle-tier sends a token request with:
-
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer -
requested_token_use=on_behalf_of -
assertion= user token -
scope= delegated scopes of the downstream API
-
- The app must have admin consent for those delegated permissions beforehand.
“Because this is not an interactive authentication flow, an application using it must have admin consent for any delegated permissions before requesting tokens for them.”
- Consent and
.defaultbehavior-
.defaultrepresents the app’s statically configured permissions (admin-consented) for a resource. - It cannot be combined with other delegated scopes in the same request.
- For OBO, the middle-tier app must already have the delegated permissions consented in Entra ID.
“You must not combine
.defaultwith other delegated scopes… This will result inAADSTS70011errors… When in doubt, split the token requests to avoid scope-type conflicts.” -
- Implication for
https://ai.azure.com/ Foundry- If the Foundry/
https://ai.azure.comresource does not expose delegated scopes in Entra ID and does not provide a way to grant admin consent for those scopes, then it does not support the standard delegated-permission/OBO pattern described in the Microsoft identity platform docs. - In that case, OBO to that resource is effectively not supported, because the mandatory building blocks (delegated scopes + admin consent) are missing.
- If the Foundry/
- Intent and rationale (from the identity platform perspective)
- The identity platform’s OBO design assumes:
- A resource explicitly defines delegated scopes.
- Tenants can control which apps may act on behalf of users via consent.
- If a resource chooses not to expose delegated scopes (for example, only supporting application permissions or its own token model), that is a resource-level design decision, not a limitation of the OBO protocol itself.
- The rationale typically is:
- Tighter control over who can act on behalf of users.
- Preference for app-only or project-level authorization models instead of user-delegated access.
- The identity platform’s OBO design assumes:
Given the above, the behavior observed (no way to grant admin consent for a delegated scope for https://ai.azure.com / Foundry) aligns with a resource that does not support OBO with delegated permissions. In such a case, the supported pattern is usually application-level authentication (client credentials) rather than OBO.
To use OBO successfully with a downstream API, the downstream resource must:
- Publish delegated scopes in Entra ID.
- Allow admin consent for those scopes to the middle-tier app.
- Accept OBO token requests as described in the Microsoft identity platform OBO documentation.
If any of these are missing for https://ai.azure.com, OBO is not available for that resource.
References: