以编程方式访问 Azure 的最简单方法

4

我有以下代码:

var client = new WebSiteManagementClient(creds);
var data = client.WebSites.Get("eastuswebspace", "some-site", new WebSiteGetParameters());

我需要生成凭证,我是一个具有完全访问权限的管理员。只有一个应用程序可以访问我的数据,需要生成一个TokenCloudCredentials。
我尝试注册一个应用程序,但在成功生成令牌后出现“禁止”错误。是否有更简单的方法可以完成此操作(例如Github,生成令牌即可完成)。
谢谢。

你是使用Azure Service Management或Azure Resource Manager来创建Azure Web应用程序吗?你使用的具体NuGet和版本是什么? - juvchan
2个回答

2
生成 Token 凭据,您需要创建一个证书并将其上传到 Azure。
首先,您可以使用以下命令行创建证书:
makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

然后,需要按照此过程将其上传到Azure。一旦上传完成,您可以使用以下PowerShell命令行获取publishsettings文件以获得证书管理指纹:
Get-AzurePusblishSettingsFile

以下屏幕截图显示在发布配置文件中找到证书管理指纹的位置:

enter image description here

然后,您可以使用Alex Belotserkovskiy提出的代码来通过Azure管理SDK进行身份验证。 这里是一篇完整的博客文章,展示了所有步骤。

2

我成功地用以下代码片段使其工作。只需要证书。检查一下是否适用于你。 你需要Azure发布设置文件(其中的指纹)。

public const string base64EncodedCertificate = "frompublishsettingsfile";
    public const string subscriptionId = "";

    static SubscriptionCloudCredentials getCredentials()
    {
        return new CertificateCloudCredentials(subscriptionId, new X509Certificate2(Convert.FromBase64String(base64EncodedCertificate)));
    }
    static void Main(string[] args)
    {
        WebSiteManagementClient client = new WebSiteManagementClient(getCredentials());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接