【问题标题】:Managing Credentials in Azure .NET Core 2.0 SDK在 Azure .NET Core 2.0 SDK 中管理凭据
【发布时间】:2018-01-29 05:24:23
【问题描述】:

我对如何在 Azure .NET SDK 中创建凭据而不必从本地文件调用凭据有点迷茫。

就我而言,我有一些订阅,并且我将数据存储在本地数据库中。我想使用我存储在数据库中的凭据为我的 VM 多次调用 Azure。

他们有许多类代表在SDK Documentation 中进行身份验证的方法,但我看不到通过 SDK 创建访问令牌或使用凭据(租户 ID、订阅 ID、客户端 ID 和机密)的明确方法。

例如,当调用其中一个客户端类 (ComputeManagementClient) 时,您可以使用凭据调用它来验证对 Azure 的请求,但它们似乎没有提供类来生成 from a file 之外的凭据。

有人有 MSDN 参考吗?

【问题讨论】:

    标签: c# asp.net azure authentication


    【解决方案1】:

    根据AzureCredentialsFactory类,我们可以知道我们也可以获得FromServicePrincipalFromUser的凭据。在您的情况下,我建议使用 FromServicePrincipalMicrosoft.Azure.Management.Fluent 来操作 Azure 资源。我也为此做了一个演示。

    注意:如何注册 Azure AD 应用并分配角色请参考此document

    var clientId = "clientId";
    var secretKey = "secretKey";
    var tenantId = "tenantId";
    var subscriptionId = "subscriptionId";
    var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, secretKey, tenantId,AzureEnvironment.AzureGlobalCloud);
    ComputeManagementClient client = new ComputeManagementClient(credentials) {SubscriptionId = subscriptionId };
    var result = client.VirtualMachines.ListAllAsync().Result;
    

    【讨论】:

    • 我实际上只是用这个确切的答案自己回答了这个问题。谢谢你打败我!
    • 我应该注意,ComputeManagementCLient 也是旧版(Azure 经典),它建议使用 Microsoft.Azure.Management.Fliuent.Azure 方法使用 ARM 建立与 Azure 的连接。
    猜你喜欢
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2013-01-12
    • 2018-08-26
    • 2019-07-19
    • 2015-07-19
    相关资源
    最近更新 更多