I have a script to build resources for Azure. Currently, I’m using a service principal, but ideally I’d like to use my Active Directory login instead since we are going to open the script up to a larger group of developers and would like traceability. Is it possible to use InteractiveBrowserCredential to do something like the following:
var credential = await new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions {});
var azure = Microsoft.Azure.Management.Fluent.Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(new AzureCredentials(credential, AzureEnvironment.AzureGlobalCloud))
.WithSubscription(subscriptionId);
var webApp = await azure.WebApps.GetByResourceGroupAsync(resourceGroup, webAppName);
The above script doesn’t compile because there’s not a conversion between InteractiveBrowserCredential and AzureCredentials. When I extract the token from the InteractiveBrowserControl, I get an Unauthorized response from the web app.
I think that you'll need to use the new Azure SDK for .NET, which is in public preview, and sits atop
Azure.Identity- which supports InteractiveBrowserCredential. Documentation is available on GitHub at https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/README.mdThe condensed version is that you'll now use an
ArmClientobject, which you authenticate withFrom that client, you would get a
Subscriptionobject, from which you'd get aResourceGroupobject, from which you would manipulate whatever resource types you wish.