从Azure CLI获取租户名称

12
我想使用Azure CLI检索租户名称THIS-THING-HERE.onmicrosoft.com,但在文档中找不到。
编辑: 当我调用azure account list时,由于我使用公司电子邮件登录,因此无法在提供的域中获取用户名。
[
  {
    "cloudName": "AzureCloud",
    "id": "46ee2f65-7112-4c96-ad0a-3ff6ca22a615",
    "isDefault": true,
    "name": "Visual Studio Professional",
    "state": "Enabled",
    "tenantId": "1caf5d6b-58cb-40e6-88b3-eb9ab9c0c010",
    "user": {
      "name": "a.krajniak@avanade.com",
      "type": "user"
    }
  },
  {
    "cloudName": "AzureCloud",
    "id": "1efd84d6-173f-42cc-80db-7b2c17eb0edd",
    "isDefault": false,
    "name": "Microsoft Azure Enterprise",
    "state": "Enabled",
    "tenantId": "c48d02ad-7efd-4910-9b51-ebb7a4b75379",
    "user": {
      "name": "a.krajniak@avanade.com",
      "type": "user"
    }
  }
]

考虑接受这个答案 ;) - 4c74356b41
1
我希望微软可以像az account tenant list一样简单。 - Cristian E.
5个回答

7

我使用这个:

az account list --query "[?isDefault].tenantId | [0]" --output tsv

2
这并没有回答他的问题,因为他想要租户名称,而不是租户ID。 - basquiatraphaeu

5

通过 az rest 子命令的一行代码即可实现:

这适用于租户用户、来宾用户和CSP管理员。

az rest --method get --url https://graph.microsoft.com/v1.0/domains --query 'value[?isDefault].id' -o tsv

5
您可以使用这个命令:
az ad signed-in-user show --query 'userPrincipalName' | cut -d '@' -f 2 | sed 's/\"//'

这段内容会获取用户的UPN并提取其最后一部分。

更新你的Azure CLI,或者使用任何其他显示你UPN的地方,例如az account show - 4c74356b41
1
只有当前用户在目录中且不是访客类型,此功能才能正常工作。 - hofnarwillie
可能我没有测试所有可能的情景。@hofnarwillie - 4c74356b41
'cut' 不被识别为内部或外部命令。 - Cristian E.
你是在使用PowerShell还是其他工具?如果是的话,可以使用Split-String和Replace来进行操作。 - 4c74356b41
显示剩余3条评论

4

使用 bash、az cli、curl 和 jq 获取 Azure 租户的主域:

$ az login
$ AZURE_TOKEN_ID=$(az account get-access-token --resource-type ms-graph --query accessToken --output tsv)
$ curl --header "Authorization: Bearer ${AZURE_TOKEN_ID}" --request GET 'https://graph.microsoft.com/v1.0/domains' | jq -r '.value[] | select(.isDefault == true) | {id}[]'

结果将类似于:
mydomain.onmicrosoft.com

1

获取租户名称:

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

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

这将要求您通过https://aka.ms/deviceloginhttps://aka.ms/deviceloginchina登录

    $ azure account show

 {
  "environmentName": "AzureCloud",
  "id": "aaabbbcccdd-eeff-gghh-iijj-abcdef256984",
  "isDefault": true,
  "name": "MSDN Subscription",
  "state": "Enabled",
  "tenantId": "ggzzttyyh-56rg-op4e-iixx-kiednd256",
  "user": {
    "cloudShellID": true,
    "name": "paul@xxx.onmicrosoft.com",
    "type": "user"
          }
 }

获取租户 ID:
az account list | jq -r '.[].tenantId'

获取租户名称:
az account list | jq -r '.[].user'.name

我希望它有所帮助


使用 az ad signed-in-user show --query 'userPrincipalName' - Paul Oyemakinwa
2
仅当用户在当前目录中且不是访客用户时才有效。 - hofnarwillie
3
这是一个订阅名称,而不是租户名称。 - Greg Pendlebury

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