You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Subscription Id获取关联的Azure Organization?

通过订阅ID获取关联Azure组织(Azure AD租户)的方案

REST API方案

你可以通过Azure管理API实现该需求,分两步操作:

  • 第一步:调用订阅详情API获取订阅关联的租户ID(Azure组织的核心标识)
    请求格式:
    GET https://management.azure.com/subscriptions/{subscriptionId}?api-version=2021-01-01
    
    响应体中的tenantId字段即为该订阅所属Azure组织的租户ID。
  • 第二步:调用租户详情API获取组织的完整信息
    请求格式:
    GET https://management.azure.com/tenants/{tenantId}?api-version=2021-01-01
    
    响应体包含组织名称(displayName)、租户ID、域名等核心信息。

Golang SDK方案

Azure SDK for Go的azresources模块已封装相关能力,无需额外第三方库:

  1. 初始化订阅客户端,获取订阅关联的租户ID:
import (
	"context"
	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
)

func getSubscriptionTenant(subscriptionId string) (string, error) {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		return "", err
	}
	client, err := armresources.NewSubscriptionsClient(cred, nil)
	if err != nil {
		return "", err
	}
	resp, err := client.Get(context.TODO(), subscriptionId, nil)
	if err != nil {
		return "", err
	}
	return *resp.TenantID, nil
}
  1. 用获取到的租户ID调用租户客户端,获取组织详情:
func getTenantDetails(tenantId string) (*armresources.TenantDescription, error) {
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	if err != nil {
		return nil, err
	}
	client, err := armresources.NewTenantsClient(cred, nil)
	if err != nil {
		return nil, err
	}
	resp, err := client.Get(context.TODO(), tenantId, nil)
	if err != nil {
		return nil, err
	}
	return &resp.TenantDescription, nil
}

注意:调用上述API需具备订阅级别的读取权限(如Reader角色)。

内容的提问来源于stack exchange,提问作者sysdighshai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:05:24