我有一个为Azure构建资源的脚本。目前,我使用的是服务主体,但理想情况下,我希望使用我的Active Directory登录,因为我们将向更大的开发人员组打开脚本,并且希望具有可跟踪性。是否可以使用InteractiveBrowserCredential
执行以下操作:
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);
上面的脚本没有编译,因为InteractiveBrowserCredential
和AzureCredentials
之间没有转换。当我从InteractiveBrowserControl
提取令牌时,我会从web应用程序收到未经授权的响应。
我认为您需要使用新的Azure SDK for.NET,它处于公共预览中,位于支持InteractiveBrowserCredential的Azure.Identity
之上。文档可在GitHub上获取,网址为https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/README.md
浓缩版本是,您现在将使用ArmClient
对象,并使用对其进行身份验证
ArmClient client = new ArmClient(new DefaultAzureCredential());
从该客户端,您将获得一个Subscription
对象,从中您将获得ResourceGroup
对象,从该对象中您可以操作您想要的任何资源类型。