使用 Azure SDK 在订阅级别进行身份验证
Authenticate at subscription level using Azure SDK
我正在尝试从订阅中获取应用服务列表,以便我可以使用 Azure SDK 筛选暂存站点并删除它们。我 运行 遇到了未正确验证或无法在订阅中看到任何资源的问题。
我在订阅中拥有“所有者”角色,因此我应该拥有对订阅及其资源的完全访问权限,但是在尝试遵循 Microsoft 的身份验证文档时 (https://docs.microsoft.com/en-us/dotnet/azure/sdk/authentication) 我可以' 似乎找到了一种在订阅级别进行身份验证的方法。
这是我的代码:
var azurecreds = SdkContext.AzureCredentialsFactory
.FromServicePrincipal(
"???", //client ID
"???", //client secret
"have this", //tenant ID
AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.Authenticate(azurecreds)
.WithSubscription("have this"); //subscription ID
//attempts with hard-coded values but not working
var appServicePlans = azure.AppServices.AppServicePlans.List();
var appServicePlans2 = azure.WebApps.List();
var appServicePlans2 = azure.AppServices.AppServicePlans.ListByResourceGroup("Staging");
因为您正在关注此文档:Authenticate with token credentials
因此,根据上述文档,您必须使用此命令创建服务主体:
az ad sp create-for-rbac --sdk-auth
创建此服务主体后,您将获得以下详细信息:
从上图中你必须复制ClientID
、Client Secret
、TenantID
和SubscriptionId
。在您记下这些提到的细节之后,您可以将其放入代码中。
var azurecreds = SdkContext.AzureCredentialsFactory
.FromServicePrincipal(
"ClientID copied from the above step", //client ID
"Client Secret Copied from the above step", //client secret
"have this", //tenant ID
AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.Authenticate(azurecreds)
.WithSubscription("have this"); //subscription ID
//attempts with hard-coded values but not working
var appServicePlans = azure.AppServices.AppServicePlans.List();
var appServicePlans2 = azure.WebApps.List();
var appServicePlans2 = azure.AppServices.AppServicePlans.ListByResourceGroup("Staging");
我正在尝试从订阅中获取应用服务列表,以便我可以使用 Azure SDK 筛选暂存站点并删除它们。我 运行 遇到了未正确验证或无法在订阅中看到任何资源的问题。
我在订阅中拥有“所有者”角色,因此我应该拥有对订阅及其资源的完全访问权限,但是在尝试遵循 Microsoft 的身份验证文档时 (https://docs.microsoft.com/en-us/dotnet/azure/sdk/authentication) 我可以' 似乎找到了一种在订阅级别进行身份验证的方法。
这是我的代码:
var azurecreds = SdkContext.AzureCredentialsFactory
.FromServicePrincipal(
"???", //client ID
"???", //client secret
"have this", //tenant ID
AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.Authenticate(azurecreds)
.WithSubscription("have this"); //subscription ID
//attempts with hard-coded values but not working
var appServicePlans = azure.AppServices.AppServicePlans.List();
var appServicePlans2 = azure.WebApps.List();
var appServicePlans2 = azure.AppServices.AppServicePlans.ListByResourceGroup("Staging");
因为您正在关注此文档:Authenticate with token credentials
因此,根据上述文档,您必须使用此命令创建服务主体:
az ad sp create-for-rbac --sdk-auth
创建此服务主体后,您将获得以下详细信息:
从上图中你必须复制ClientID
、Client Secret
、TenantID
和SubscriptionId
。在您记下这些提到的细节之后,您可以将其放入代码中。
var azurecreds = SdkContext.AzureCredentialsFactory
.FromServicePrincipal(
"ClientID copied from the above step", //client ID
"Client Secret Copied from the above step", //client secret
"have this", //tenant ID
AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.Authenticate(azurecreds)
.WithSubscription("have this"); //subscription ID
//attempts with hard-coded values but not working
var appServicePlans = azure.AppServices.AppServicePlans.List();
var appServicePlans2 = azure.WebApps.List();
var appServicePlans2 = azure.AppServices.AppServicePlans.ListByResourceGroup("Staging");