entra-agent-id

Provision Microsoft Entra Agent Identity Blueprints and configure OAuth 2.0 token exchange via Microsoft Graph.

25|4|Updated Dec 21, 2025
One-click install
npx skills add https://github.com/thangchung/agent-engineering-experiment --skill entra-agent-id-thangchung
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: entra-agent-id
Source: https://github.com/thangchung/agent-engineering-experiment/tree/main/agentgateway-entraid-obo/.claude/skills/entra-agent-id
Command: npx skills add https://github.com/thangchung/agent-engineering-experiment --skill entra-agent-id-thangchung

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires azure-identity, requests, and includes references (resource) components.

What problem does it solve? AI agents need distinct, auditable identities with independently scoped permissions, but provisioning Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities through Microsoft Graph involves non-obvious object models, typed endpoints, and a two-step fmi_path token exchange that is easy to misconfigure. ## Core Features & Use Cases - Identity Provisioning: Create Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph with correct sponsors, credentials, and permission grants. - Runtime Token Exchange: Implement the two-step fmi_path exchange for autonomous and OBO flows, including cross-tenant scenarios and Managed Identity + Workload Identity Federation. - Polyglot Sidecar Deployment: Deploy the Microsoft Entra SDK for AgentID sidecar container so Python, Node, Go, and Java agents acquire tokens over HTTP without embedding SDKs. - Use Case: You are building a multi-tenant AI agent platform where each agent instance needs its own identity and audit trail. Use this Skill to provision the Blueprint hierarchy, grant per-agent Graph permissions, and wire up OBO token exchange. ## Quick Start Ask the AI to create an Agent Identity Blueprint and BlueprintPrincipal in your tenant, then create a per-instance Agent Identity and show the fmi_path token exchange code.

Frequently Asked Questions about entra-agent-id

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a Microsoft Entra Agent Identity Blueprint?▼

Create a Blueprint by POSTing to /applications/microsoft.graph.agentIdentityBlueprint with a displayName and a sponsors@odata.bind pointing to a User. You must then explicitly create the BlueprintPrincipal via /servicePrincipals/microsoft.graph.agentIdentityBlueprintPrincipal, since it is not auto-created.

How does the fmi_path token exchange work for agent identities?▼

The fmi_path exchange is a two-step client_credentials flow: step 1 uses Blueprint credentials with fmi_path set to the Agent Identity appId to get a parent token, and step 2 uses that parent token as a client_assertion to obtain a Graph token whose sub claim is the Agent Identity.

Can I use DefaultAzureCredential or Azure CLI tokens with Agent Identity APIs?▼

No. Azure CLI tokens carry Directory.AccessAsUser.All, which Agent Identity APIs hard-reject with a 403. Use a dedicated app registration with client_credentials, or Connect-MgGraph with explicit delegated scopes like AgentIdentityBlueprint.Create.

Why do I get AADSTS700211 during cross-tenant token exchange?▼

AADSTS700211 occurs when step 1 of the parent token exchange targets the wrong tenant. In cross-tenant flows, step 1 must target the Agent Identity's home tenant, not the Blueprint's home tenant, or the federated identity record will not match.

What languages does the Microsoft Entra SDK for AgentID sidecar support?▼

The sidecar is a containerized HTTP service, so any language works, including Python, Node, Go, and Java. Agents call endpoints like /AuthorizationHeaderUnauthenticated/{name} over localhost HTTP and receive a ready-to-use authorization header without embedding any SDK.

Why can't I add a client secret to an Agent Identity?▼

Agent Identities are service-principal-only objects and cannot hold credentials; attempting it returns PropertyNotCompatibleWithAgentIdentity. All secrets, certificates, and federated identity credentials must be configured on the Blueprint instead.