我的问题是:是否可能在不使用PowerShell命令的情况下获得Azure活动目录租户ID?
我找到了这两个博客,借助它们的帮助,我已经能够从PowerShell中获取租户ID和订阅ID。这是检索租户的唯一方法吗?
在Windows PowerShell中获取Windows Azure活动目录Tenant ID
PowerShell的Windows Azure AD身份验证支持
谢谢
我的问题是:是否可能在不使用PowerShell命令的情况下获得Azure活动目录租户ID?
我找到了这两个博客,借助它们的帮助,我已经能够从PowerShell中获取租户ID和订阅ID。这是检索租户的唯一方法吗?
在Windows PowerShell中获取Windows Azure活动目录Tenant ID
PowerShell的Windows Azure AD身份验证支持
谢谢
az account show
--- 命令输出 ---
{
"environmentName": "AzureCloud",
"id": "{Subscription Id (GUID)}",
"isDefault": true,
"name": "{Subscription Name}",
"state": "Enabled",
"tenantId": "{Tenant Id (GUID)}",
"user": {
"cloudShellID": true,
"name": "{User email}",
"type": "user"
}
}
您可以在 Azure Cloud Shell 概述 | Microsoft Docs 中查找更多细节。
az login
如果您想以表格形式查看输出,只需使用
az account get-access-token --query tenant --output tsv
你也可以使用 Rest API。
az account get-access-token --query tenant --output tsv
在PowerShell中:
Add-AzureRmAccount #if not already logged in
Get-AzureRmSubscription -SubscriptionName <SubscriptionName> | Select-Object -Property TenantId
az account list
或者您可以在~/.azure/credentials
中找到它。
来自Java:
public static String GetSubscriptionTenantId (String subscriptionId) throws ClientProtocolException, IOException
{
String tenantId = null;
String url = "https://management.azure.com/subscriptions/" + subscriptionId + "?api-version=2016-01-01";
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
Header[] headers = response.getAllHeaders();
for (Header header : headers)
{
if (header.getName().equals("WWW-Authenticate"))
{
// split by '"' to get the URL, split the URL by '/' to get the ID
tenantId = header.getValue().split("\"")[1].split("/")[3];
}
}
return tenantId;
}
az account show --query homeTenantId --output tsv
使用Azure门户:
使用 Azure CLI:
使用命令 az login、az account list 或 az account tenant list 中的一个。在每个命令的输出中查找每个订阅的 TenantId 属性。
使用 Powershell:
在 Powershell 命令提示符中使用以下命令。
Connect-AzAccount
Get-AzTenant
参考资料: