是否有 API 来获取给定名称的租户 ID?

Is there an API to get the tenant ID for a give name?

如果我有一个租户名称,例如 "contoso.onmicrosoft.com",我可以使用 API 调用获取租户 ID 吗? 我已经检查了 API 的 Microsoft.Azure.Management.ResourceGroup

您可以通过调用

获取您登录的租户的名称

https://management.azure.com/tenants?$skiptoken={skiptoken}&api-version={api-version}

详见here 这将为您提供您授权的所有租户的列表。

这实际上列在 'Tenants' 而不是资源组下。

获取租户 ID 的最简单方法是在 Azure 门户中找到它。请点击 -> APPLICATION -> VIEW ENDPOINT。像下面的截图:

如果您想使用C# 从名称中获取租户ID。请先尝试获取JWT token(使用"contoso.onmicrosoft.com"下的用户登录)。 JWT 令牌将包含 tid。 "tid"表示租户id。有关详细信息,请参阅 this article。 然后我们可以使用下面的代码获取租户id:

var token = new JwtSecurityToken(jwtToken);
var oid = token.Claims.FirstOrDefault(m=>m.Type == "tid").Value;

您只需调用 https://login.microsoftonline.com/tenantDomain/.well-known/openid-configuration 并从那里获取租户 ID。只需解析 JSON 它 returns 并从中获取租户 ID - 例如从 issuer.

可以找到完整信息 here

调用无需鉴权,调用非常简单。