如何从graph.microsoft.com获取Azure租户名称?

10

我需要获取用户的租户名称,因为我将要使用一个需要指定租户名称的Azure服务的服务终结点和资源ID:

服务终结点:https://[tenantname].api.crm.dynamics.com/...
资源ID:https://[tenantname].crm.dynamics.com

我希望统一的Microsoft Graph API可以为我发现这个信息。我查看了文档,最接近的方法是使用 graph.microsoft.com/v1.0/organization 这将返回以下内容: verifiedDomains : [ .... "name" : "contoso.onmicrosoft.com" ]

但是,我不确定这是否是正确的方法。如果一个组织有多个经过验证的域名怎么办?经过验证的域名和租户名称是否相同?

更新:这是我的真实场景。我有一个Web应用程序,允许用户通过OAuth2对Azure AD进行身份验证。我没有问题从OAuth交互中获取刷新令牌和访问令牌。但是,为了使用其他服务,需要在它们的服务端点中指定[azure-ad-tenant-name]。这就是我的问题所在。

2个回答

7
我相信你选择了正确的路径,使用 graph.microsoft.com/v1.0/organization 终点应该是正确的。你应该能够在 verifiedDomains 清单中找到租户名称。应包含带有租户名称的域名的条目是初始域:
{
    ...
    "isInitial": true,
    "name": "contoso.onmicrosoft.com",
    ...
}

0

同样的。当您创建一个AD时,您将获得一个没有租户名称的域名和租户ID,它们都是AD的唯一标识符。使用Get-AzureRmTenant获取订阅中所有租户ID和域名。


谢谢。但我不在寻找PowerShell解决方案。我正在寻找REST解决方案,我们将在开源解决方案上实现它。 - Andy H.
如果您可以获取指示已创建租户的访问令牌,则只需将您的租户 ID 硬编码到 [azure-ad-tenant-name] 中,因为每个访问令牌都不会有多个租户 ID。 - Lily_user4045
1
好的。如果您需要使用API获取租户名称(域名),请使用Grapgh API:https://graph.windows.net/tenantid/domains?api-version=beta,希望能对您有所帮助。 - Lily_user4045
还有一个Nuget包可以帮助您使用Graph API,看一下Microsoft.Azure.ActiveDirectory.GraphClient - Tom Wuyts

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