如何获取Azure账户的租户ID?

222

你是在寻找另一种编程语言的答案,还是在寻求非编程响应?如果是前者,你需要更具体地说明。如果是后者,那么你在错误的论坛提问了。 - Matt
5
发现了一个可以完成任务的网站:https://www.whatismytenantid.com - Jean-François Deschênes
2
当超过150,000人因微软无法清晰地传达tenantId而受到影响时的感觉。 - eddyP23
28个回答

274

时间改变一切。最近我也在寻找同样的事情,得出了以下结论:

注意

添加于 2021 年 02 月 17 日

稳定的门户页面 感谢 Palec

添加于 2017 年 12 月 18 日

正如 shadowbq 所指出的那样,DirectoryId 和 TenantId 都等同于表示 ActiveDirectory 租户的 GUID。根据上下文,Microsoft 的文档和产品可能会使用其中任何一个术语,这可能会造成困惑。

假设

  • 您可以访问 Azure 门户

解决方案

租户 ID 与 Azure 中的 ActiveDirectoy 相关联

  • 导航到“仪表板”
  • 导航到“ActiveDirectory”
  • 导航到“管理/属性”
  • 复制“目录 ID”

Azure ActiveDirectory 租户 ID:

image


6
我不确定利润部分,但其他部分对我有用!☺ - HaveSpacesuit
42
“Tenant ID”就是“Directory ID”。 - shadowbq
38
微软确实喜欢三番五次地更改产品名称,让人始终保持警惕。 - BenM
1
“Navigate to ActiveDirectory” 是什么意思? - thang
2
这个屏幕的地址似乎相当稳定:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties - Palec
显示剩余2条评论

114

3
这些 ID 是订阅 ID,而非租户 ID。当一个账户拥有多个订阅时,会有多个目录,租户 ID 等同于下面 @KevinR 回答中提到的 directoryId。 - Catch22
5
一个租户/目录可以有多个订阅。使用上述方法将显示租户 ID,而不是订阅 ID。您可以通过将此方法返回的 GUID 与门户中的目录 ID 进行比较来进行确认 - 它们将是相同的。 - BenV
6
如果您无法访问活动目录控制台,则这将非常有帮助。 - Torben Knerr
2
请注意:您可以通过访问 https://management.azure.com/subscriptions/YOUR-SUBSCRIPTION-ID?api-version=2014-04-01(悬停以查看完整的URL)并检查返回的“WWW-Authenticate”标头(您将收到401,但该标头包含一个带有租户ID的URL),将订阅ID转换为租户ID。 :-) - BrainSlugs83
在Azure的URL(如门户)中,您通常可以交替使用YOURDIRECTORYNAME.onmicrosoft.com和租户ID - 因此,如果您知道目录名称,您可以引用该租户。 - ndrix
openid-configuration的URL在代码中无法使用,返回400错误。 - Sharjeel Ahmed

72

我的团队真的很厌烦为我们的O365和Azure项目找租户ID。开发人员、支持团队、销售团队,每个人都在某个时候需要它,但从来不记得如何操作。

因此,我们建立了一个类似于whatismyip.com的小网站。希望您会觉得它有用!

如何查找我的Microsoft 365、Azure或SharePoint Online租户ID?


3
太棒了。为什么微软让一个有效的公共ID如此难以找到,这超出了我的理解范围。 - Lunatik

63

在Azure CLI中(我使用GNU/Linux):

$ azure login  # add "-e AzureChinaCloud" if you're using Azure China

这将要求您通过https://aka.ms/devicelogin 或者 https://aka.ms/deviceloginchina 登录。

$ azure account show
info:    Executing command account show
data:    Name                        : BizSpark Plus
data:    ID                          : aZZZZZZZ-YYYY-HHHH-GGGG-abcdef569123
data:    State                       : Enabled
data:    Tenant ID                   : 0XXXXXXX-YYYY-HHHH-GGGG-123456789123
data:    Is Default                  : true
data:    Environment                 : AzureCloud
data:    Has Certificate             : No
data:    Has Access Token            : Yes
data:    User name                   : nico@XXXXXXX.onmicrosoft.com
data:    
info:    account show command OK

或者简单地说:

azure account show --json | jq -r '.[0].tenantId'

或者新的 az:

az account show --subscription a... | jq -r '.tenantId'
az account list | jq -r '.[].tenantId'

希望这能有所帮助


2
实际上,这是Azure CLI...但是对于任何CLI都要点赞。 - pms1969
这也适用于新的azCLI,谢谢! - rsmith54

40

当您浏览到给定的Active Directory实例时,管理控制台URL中也会出现租户ID,例如:

https://manage.windowsazure.com/<morestuffhere>/ActiveDirectoryExtension/Directory/BD848865-BE84-4134-91C6-B415927B3AB1

Azure Mgmt Console Active Directory


@Mjh,我听到你了。我很惊讶你是第一个评论我的笨拙建议的人。也许对于世界上的其他人来说,从URI中提取租户ID是显而易见的。 - Brett
对我来说不是很明显。我期望它在用户界面中显示出来。在认证后必须在Uri中搜索或使用PowerShell获取它真的很奇怪。我们想要在我们的应用程序中限制某些租户,因此我们需要向租户所有者请求ID。这种方法将会让很多人感到困惑。 - PilotBob
3
这不仅是疯狂的行为,而且是官方行为 =/ "您的Office 365租户的租户ID显示在URL的一部分中"。请参阅:https://support.office.com/en-us/article/Find-your-Office-365-tenant-ID-6891b561-a52d-4ade-9f39-b492285e2c9b - Bigginn

36

为了对一个旧的(但仍然相关的)问题添加新的方法,可以在新门户中从任何屏幕点击帮助图标并选择“Show Diagnostics”,将显示一个JSON文档,其中包含所有租户信息,包括TenantId、租户名称和其他非常有用的信息。

输入图像描述


22

17

通过 PowerShell 匿名:

(Invoke-WebRequest https://login.windows.net/YOURDIRECTORYNAME.onmicrosoft.com/.well-known/openid-configuration|ConvertFrom-Json).token_endpoint.Split('/')[3]

1
他正在寻找一种方法来完成它,而不使用内置命令——幸运的是,这展示了如何在任何语言中完成...真棒。 - BrainSlugs83

12

从应用程序注册中获取的另一种方法

Azure Active Directory -> 应用程序注册 -> 点击应用程序,它将显示如下所示的租户 ID

输入图像描述


1
我在 Azure 的大多数项目中看不到租户 ID。 - rollsch

9
您可以运行一个简单的curl调用,获取Azure订阅的租户ID而无需进行任何身份验证。
调用curl: https://management.azure.com/subscriptions/{subscription-id}?api-version=2015-01-01
请求失败,但您将能够从响应头中获取租户ID。租户ID位于以“WWW-Authenticate:Bearer authorization_uri =” https://login.windows.net/ “开头的行中。
您可以使用curl -v显示响应头。

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