Skip to content

feat: Add runtime token exchange, OBO, cross-tenant, and permission granting#195

Open
ArLucaID wants to merge 1 commit intomicrosoft:mainfrom
ArLucaID:skill/entra-agent-id
Open

feat: Add runtime token exchange, OBO, cross-tenant, and permission granting#195
ArLucaID wants to merge 1 commit intomicrosoft:mainfrom
ArLucaID:skill/entra-agent-id

Conversation

@ArLucaID
Copy link
Contributor

Addresses 6 gaps in the entra-agent-id skill:

  1. Runtime token exchange — Added fmi_path two-step exchange pattern (parent token via client_credentials + fmi_path, then client_assertion exchange for Graph-scoped Agent Identity token). Covers both autonomous (app-only) and OBO (delegated) modes with complete code samples.

  2. fmi_path parameter — Documented the fmi_path parameter on the standard /oauth2/v2.0/token endpoint that targets a specific Agent Identity. Clarified this is NOT RFC 8693 token exchange (which returns AADSTS82001).

  3. OBO/delegated flow — Added Blueprint API configuration (identifierUris, oauth2PermissionScopes, preAuthorizedApplications, optionalClaims), user token audience requirements, and complete OBO exchange code.

  4. Cross-tenant guidance — Documented that fmi_path works cross-tenant when the Blueprint is multi-tenant. Critical rule: step 1 must target the Agent Identity's home tenant, not the Blueprint's (AADSTS700211 otherwise).

  5. Permission granting — Added appRoleAssignments for autonomous mode and oauth2PermissionGrants for OBO mode, with per-agent scoping examples.

  6. oauth2-token-flow.md completion — Option B now shows the full two-step exchange (was incomplete — stopped at Blueprint token). Added Option C for OBO flow. Added cross-tenant exchange section.

Also included

  • Updated acceptance-criteria.md with sections 9-12 covering runtime exchange, OBO, cross-tenant, and permission grant patterns (correct/incorrect examples)
  • Added Troubleshooting table with 8 common errors and fixes
  • Tested patterns verified against live Entra endpoints (same-tenant autonomous, cross-tenant fmi_path exchange, OBO with delegated permissions)

Files changed (3 files, +810 / -14)

  • .github/skills/entra-agent-id/SKILL.md
  • .github/skills/entra-agent-id/references/acceptance-criteria.md
  • .github/skills/entra-agent-id/references/oauth2-token-flow.md

…ranting

Addresses 6 gaps in the entra-agent-id skill:

1. Runtime token exchange — Added fmi_path two-step exchange pattern (parent
   token via client_credentials + fmi_path, then client_assertion exchange for
   Graph-scoped Agent Identity token). Covers both autonomous (app-only) and
   OBO (delegated) modes with complete code samples.

2. fmi_path parameter — Documented the fmi_path parameter on the standard
   /oauth2/v2.0/token endpoint that targets a specific Agent Identity. Clarified
   this is NOT RFC 8693 token exchange (which returns AADSTS82001).

3. OBO/delegated flow — Added Blueprint API configuration (identifierUris,
   oauth2PermissionScopes, preAuthorizedApplications, optionalClaims), user
   token audience requirements, and complete OBO exchange code.

4. Cross-tenant guidance — Documented that fmi_path works cross-tenant when
   the Blueprint is multi-tenant. Critical rule: step 1 must target the Agent
   Identity's home tenant, not the Blueprint's (AADSTS700211 otherwise).

5. Permission granting — Added appRoleAssignments for autonomous mode and
   oauth2PermissionGrants for OBO mode, with per-agent scoping examples.

6. oauth2-token-flow.md completion — Option B now shows the full two-step
   exchange (was incomplete — stopped at Blueprint token). Added Option C for
   OBO flow. Added cross-tenant exchange section.

Updated acceptance-criteria.md with sections 9-12 covering runtime exchange,
OBO, cross-tenant, and permission grant patterns (correct/incorrect examples).

Added Troubleshooting table with 8 common errors and fixes.

Tested patterns verified against live Entra endpoints (same-tenant autonomous,
cross-tenant fmi_path exchange, OBO with delegated permissions).
@ArLucaID
Copy link
Contributor Author

@thegovind / @spboyer : Could I get some help in merging this one? I don't have permissions to request reviewers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant