是否可以使用 InteractiveBrowserCredential 对 Azure Management .NET SDK 进行身份验证?

Posted

技术标签:

【中文标题】是否可以使用 InteractiveBrowserCredential 对 Azure Management .NET SDK 进行身份验证?【英文标题】:Is it possible to authenticate Azure Management .NET SDK with InteractiveBrowserCredential? 【发布时间】:2021-12-28 19:07:43 【问题描述】:

我有一个为 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);

上面的脚本无法编译,因为InteractiveBrowserCredentialAzureCredentials 之间没有转换。当我从 InteractiveBrowserControl 中提取令牌时,我从 Web 应用程序收到未经授权的响应。

【问题讨论】:

【参考方案1】:

我认为您需要使用新的 Azure SDK for .NET,它是公共预览版,位于 Azure.Identity 之上 - 它支持 InteractiveBrowserCredential。文档位于 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 对象,您可以从中操作您想要的任何资源类型。

【讨论】:

以上是关于是否可以使用 InteractiveBrowserCredential 对 Azure Management .NET SDK 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 JavaScript 确定 GeoJSON 点是否在 GeoJSON 多边形内?

是否可以检查是否使用modernizr 启用了cookie?

是否可以使用 HTML/Javascript 按名称启动应用程序?

是否可以使用 jQuery 读取元标记

是否可以使用批处理文件检查两个文件是否共享相同的名称?

是否可以使用 INFORMATION_SCHEMA 模式来检查数据库是否存在?