Skip to content

Conversation

@heyitsaamir
Copy link
Collaborator

@heyitsaamir heyitsaamir commented Nov 5, 2025

Adds support for Federated Identity Credentials.

CLIENT_ID CLIENT_SECRET MANAGED_IDENTITY_CLIENT_ID Output
not_set No-Auth
set set SecretsAuth
set not_set User Managed Identity Auth
set not_set set (same as CLIENT_ID) User Managed Identity Auth
set not_set set (diff from CLIENT_ID) FIC (user managed identity)
set not_set "system" FIC (system identity)

Federated Identity Credentials has a two step process. It first uses managed identity (UMI or SI) to get an token-assertion. This then is used to build a ConfidentialClient to get the actual token.

PR Dependency Tree

This tree was auto-generated by Charcoal

@heyitsaamir heyitsaamir force-pushed the aamirj/fic branch 3 times, most recently from a1b11bb to b222662 Compare November 5, 2025 06:19
@heyitsaamir heyitsaamir changed the title FIC support Add Federated Identity Credentials support Nov 5, 2025
@heyitsaamir heyitsaamir force-pushed the aamirj/fic branch 3 times, most recently from 58517da to fb334f0 Compare November 6, 2025 17:59
heyitsaamir added a commit that referenced this pull request Nov 7, 2025
In this PR, we introduce
[MSAL](https://learn.microsoft.com/en-us/entra/msal/python/) as a
dependency to take care of authentication for us. We replace the use of
bot token client with this library. It still uses secrets by default,
but uses MSAL to do it.

Tested the general flows (regular + graph)





















#### PR Dependency Tree


* **PR #191** 👈
  * **PR #192**
    * **PR #203**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
heyitsaamir added a commit that referenced this pull request Nov 7, 2025
Adds native support for User Managed Identity via MSAL. 

Tested with UMI. 

It's enabled when CLIENT_ID is set and CLIENT_SECRET is not.

| CLIENT_ID | CLIENT_SECRET | MANAGED_IDENTITY_CLIENT_ID | Output |
|-|-|-|-|
| not_set | | | No-Auth |
| set | set | | SecretsAuth |
| set | not_set | | User Managed Identity Auth |
| set | not_set | set (same as CLIENT_ID) | User Managed Identity Auth |
| set | not_set | set (diff from CLIENT_ID) | FIC (user managed
identity) |
| set | not_set | "system" | FIC (system identity) |

























#### PR Dependency Tree


* **PR #192** 👈
  * **PR #203**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)
Base automatically changed from aamirj/UMI to main November 7, 2025 23:00
@heyitsaamir heyitsaamir merged commit c5e9c36 into main Nov 7, 2025
7 checks passed
@heyitsaamir heyitsaamir deleted the aamirj/fic branch November 7, 2025 23:03
heyitsaamir added a commit that referenced this pull request Nov 10, 2025
- Remove support for 3.14 (#207)
  - Add Federated Identity Credentials support (#203)
  - Add User Managed Identity support via MSAL (#192)
  - Introduce msal (#191)
  - Populate empty package READMEs with usage examples (#196)
  - Rename Teams AI to Teams SDK 🎉  (#201)
- HTTPPlugin : Add a builder option to provide custom server (enables
providing options like ssl etc) (#185)
  - get type hint of class, not object (#202)
  - Temporary: skip streaming tests  (#200)
  - Fix workflow
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.

4 participants