Azure 机器人返回的令牌是什么?

What is the token returned by the Azure Bot?

我按照此 tutorial 为我的 Azure Bot 设置身份验证。成功登录后,它 returns 对我来说是一个令牌。我相信这是访问 Microsoft Graph API 的授权令牌。如果我想使用同一个令牌来交换另一个 Web 应用程序的访问令牌,这可能吗?我该怎么做?

是的,有可能。

授权完成后应该可以得到一个refresh_token

使用此 refresh_token 与另一个 Web 应用程序的 scope 交换另一个 access_token。像这样:

然后我们可以得到另一个作用域的access_token:

可以看到范围从https://graph.microsoft.com变成了api://{id}/user.write,这是另一个网站API。


更新:

可能是我误会了,我看你是想换一个新的访问令牌。

如果您只想从 Bot 应用程序访问您自己的网站 api 而不需要调用 Microsoft Graph API,只需修改 资源 URL (Azure AD v1) 或 Scopes (Azure AD v2)。无需交换新的访问令牌。

对于 Azure AD v1,您应该将资源 URL 设置为:api://{api id}.

对于 Azure AD v2,将范围设置为:api://{api id}/.default

请注意 api://{api id} 是您的网站 api。