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。
我按照此 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。