Azure AD:使用客户端详细信息获取租户 ID

时间:2021-03-15 18:30:19

标签: azure active-directory azure-active-directory microsoft-graph-api

是否有任何方法可以从 Azure 应用的客户端 ID 和客户端密钥中获取租户 ID?

我知道,如果我们有用户凭据,我们可以直接使用 login.microsoftonline.com/common 端点。

是否有任何类似的端点,同时尝试仅使用客户端 ID 和客户端密钥获取访问令牌,或者无论如何,使用它,我可以从客户端 ID 和客户端密钥获取租户 ID,以便我可以动态创建身份验证端点 URL

1 个答案:

答案 0 :(得分:1)

我相信,既然你已经有了客户端 ID 和客户端密码,你应该是租户的内部用户。这种情况下,可以直接登录Azure Portal查看租户id。

如果您不想使用此方法,则可以使用 client credentials flow

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https://graph.microsoft.com/.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials

我知道您没有租户 ID,因此您可以将 {tenant} 指定为 abc.onmicrosoft.com

然后您就可以获得访问令牌。解码 https://jwt.io/ 中的访问令牌,您会发现 tid 声明,即租户 ID。

请注意,如果您也不知道域名,则获取租户 ID 是不可能且不合理的。这意味着您不是该租户的内部用户,获取访问令牌对该租户来说是不安全的。