microsoft / microsoft/Agent365-python

Agent365 Auth token with external 3rd party agents

Open
#207 2 comments 0 reactions 1 assignee View on GitHub

@ajmfehr is already working on this.

Since Mar 27, 2026.

Dominant language
Python
Stars
41
Forks
23
Avg merge
7h 43m
Merged PRs (30d)
3

Description

Is your feature request related to a problem?

We are working with one of our customers who is building a third-party (3P) agent hosted on Google Cloud Platform (GCP) outside the Microsoft 365 Agents hosting framework and we want to integrate Agent 365 Observability to send telemetry into the A365 Admin Center. We need guidance on how to obtain the authentication token required by the observability exporter when we don't have access to a TurnContext or the M365 Agents SDK hosting layer
.
The SDK's token_resolver requires a Bearer token for instance from sample code the scope iis https://api.powerplatform.com/.default, but all documented paths obtain this via OBO token exchange through TurnContext.exchange_token() which requires the M365 Agents hosting framework.

These customer agent doesn't run inside that framework, so we have no TurnContext and no incoming Microsoft channel tokens to exchange.

Questions:

Can a 3P external agent use Entra ID client credentials flow (or another method) to independently obtain a valid token for the observability API?
What Entra ID app registration / permissions are needed for this?
Is the SpectraExporterOptions (OTLP sidecar) path an alternative for 3P agents to route telemetry into the Admin Center?

Any guidance or sample on how this can be achieved for externally hosted agents?
Following is the sample I am yet to test but was not sure if the same MSAL generated token method would work, before giving it a shot thought of checking here with the experts. here is that sample code (assumptions here are frontier enrolled, Agent blueprint id registered in Entra):

Priority

High

Describe the solution you'd like

Guidance on how this can be achieved with 3rd party agents.

Describe alternatives you've considered

No response

Available workarounds

No response

Additional context

No response

Code of Conduct

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.