AzureCosmosDB / data-migration-desktop-tool

MIT License
122 stars 46 forks source link

Add UseRbacAuth to Azure Blob Storage Extension [enhancement] #135

Closed philnach closed 1 week ago

philnach commented 2 months ago

Provide a step-by-step description of the suggested enhancement in as many details as possible.

UseRbacAuth enables password less access for Cosmos DB resources. Secrets and keys sometimes get placed in unsecure locations and password less access enables developers to leverage trusted machines or users prior to granting access to resources.

The Cosmos extension source and sink implement the UseRbacAuth setting.

This feature enhancement introduces the same setting to the Azure Blob Storage Extension allowing for password less access to Azure Blob Storage for scenarios like exporting Cosmos DB to Azure Blob Storage without passwords or secrets.

Steps-by-step proposal:

  1. Add UseRbacAuth and EnableInteractiveCredentials to Azure Blob Storage Sink/Source Settings.
  2. Add AccountEndpoint to Azure Blob Storage Sink/Source Settings to represent the endpoint of the Azure Blob Storage account.
  3. Remove [required] attribute from ConnectionString as Azure Blob Storage Extension uses ConnectionString or AccountEndpoint based on UseRbacAuth property.
  4. Update Azure Blob Storage extension to support password less access.
  5. Update Azure Blob Storage extension README.md with new settings.
  6. Add an example Cosmos-NoSQL to Json-AzureBlob (Using RBAC) config to ExampleConfig.md for help to understand how to use UseRbacAuth with Azure Blob Storage Extension.
  7. Update solution NuGet packages to support UseRbacAuth with Azure Blob Storage Extension.

Describe the current behavior and explain which behavior you expected to see instead and why. At this point you can also tell which alternatives do not work for you.

The current behavior of the Azure Blob Storage Extension only supports connections through via SAS token or Account Key. Password less access provides a more secure access to Azure Blob Storage.