feat (provider/azure): add support for Azure Managed Identity authentication #3124 #3463
+146
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #3124
Added a parameter to pass a bearer token provider with the
@azure/identity
package tocreateAzure
. This way, its similar to the Azure documentation on how to use managed identity as well as how the OpenAI node package handles Azure Managed Identity.Example:
Implemented by creating a fetch wrapper and injecting the Authorization token into the headers on each request, similar to how the OpenAI package grabs a new token for each request. I tried implement it in the
getHeaders
function but ran into issues with the async operation of the token provider, so I went with the fetch wrapper instead since I've had to use this method for managed identity.I can add a section on how to setup and use managed identity to the azure provider docs if that would help. I also added some tests for the token provider, let me know if this would need more or less tests.