Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate using Azure Identity over autorest #322

Open
4 tasks
Tracked by #164 ...
stevendborrelli opened this issue Jan 3, 2022 · 5 comments
Open
4 tasks
Tracked by #164 ...

Investigate using Azure Identity over autorest #322

stevendborrelli opened this issue Jan 3, 2022 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@stevendborrelli
Copy link

stevendborrelli commented Jan 3, 2022

What problem are you facing?

The --sdk-auth option in the Azure CLI was deprecated in Azure/azure-cli#19414 and restored in Azure/azure-cli#19872 with a deprecation warning.

As documented in the Crossplane Getting Started Guide, the --sdk-auth option is used to create a JSON file that is compatible with the Go Authentication client we are using go-autorest.

End users who are using the Getting Started guide have started to report the following note when creating service principals:

Option '--sdk-auth' has been deprecated and will be removed in a future release.

The Crossplane provider uses the Azure Go SDK in combination go-autorest. The newest Azure Go Authorization docs indicates that going forward Azure Identity will be used.

Moving forward, authentication for the Azure SDK for Go will be done using the Azure Identity package.

How could Crossplane help solve your problem?

  • Reach out to MS to understand the future use of go-autorest
  • Investigate if we need to migrate to azidentity.

Related issues:

@stevendborrelli stevendborrelli added the enhancement New feature or request label Jan 3, 2022
@sergenyalcin sergenyalcin self-assigned this Feb 10, 2022
@sergenyalcin
Copy link
Contributor

As mentioned in the description this issue, official docs suggest that using the new authorization package: azidentity. At this point we have a prerequisite. We need to update the go sdk version to consume the new authorization tool. Please see this issue: #327 There is a PR for updating this version: #326

To understand the impact of --sdk-auth flag's deprecation, I tested a scenario. I generated credentials without using the --sdk-auth flag and this credentials were used in a provider config. Trying to create a ResourceGroup resource by using the new credentials (without --sdk-auth flag) was unsuccessful. So, it seems that, when the --sdk-auth flag was removed from the cli, we have to change the authorization method.

For this migration (from autorest -> azidentity), we also need to change the used apis. Because the currently used apis (azure-sdk-for-go/services/...) are not compatible with the new authorization method. The following apis are compatible with the azidentity tool: https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager

Therefore, it seems that the size of this change will not be small. Also the possible impacts of this change must be thought carefully (e.g. possible behavior changes...).

@ulucinar
Copy link
Collaborator

ulucinar commented Mar 23, 2022

A related doc resource is here:
https://docs.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication?tabs=bash

I see this issue as a blocker for addressing some other identity-based authentication related issues we have (#164, #329).

@lieberlois
Copy link

This seems like its a very important issue - is there any status update on this?

@jbw976
Copy link
Member

jbw976 commented Oct 21, 2023

Hey there @lieberlois, have you been able to take a look at https://github.com/upbound/provider-azure/? It is much more actively maintained than this provider.

@lieberlois
Copy link

Hi @jbw976, oh no, I wasnt aware of that ! Thanks for pointing it out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants