Open annelo-msft opened 6 months ago
Additional context from @tg-msft - possibly slightly out of date but added to help with compiling requirements:
[In System.ClientModel...] Our
TokenCredential
base class will also "move" intoSystem.*
and then we'll have new options to passDefaultAzureCredential
into libraries with no Azure dependencies. Ideally we can work with 3rd party libraries to support the newSystem.*.Credential
directly. Failing that, we can wrap the glue code to map aSystem.*.Credential
into a connection string in the Aspire Component - and maybe also experiment with different ways to automatically refresh tokens on a library by library basis. Azure customers will have to addAzure.Identity separately
to use with a 3rd party Aspire Component and we'd have to explore how the config would light up, but we could iterate on that until we have a clean end-to-end story.Here's our thinking on how to best expose Managed Identity in Aspire Components:
- We should still just include
Azure.Identity
for any Aspire Components for Azure services- We should try to align the 3rd party Aspire Component story around the upcoming
System.*.Credential
either directly in the original 3rd party library or via our Aspire Component wrapping it- If schedules don't align, we could start with an imperfect ServiceConnector story today that we additively extend to support
System.*.Credential
shortly after.
At a first-pass, this would be a type analogous to TokenCredential in Azure.Core.
This issue represents:
ClientModel
/could be reused by the Azure.Core type wrapping or otherwise leveraging the newClientModel
typeClientModel
and track resolution for other parts necessary to fully support this out of the box for clients generated from TypeSpec.One known requirement today is, per @tg-msft, the
ClientModel
type should be something we can use withDefaultAzureCredential
.