azure - Azure 函数中的 Microsoft.Identity.Web
问题描述
我需要从我的 Azure 函数内部调用下游 API,即 PowerBI 服务。我在 Web 应用程序中有一个工作示例,但我无法在我的 Azure 函数中实现它。
在 Web 应用示例中,配置通过 Microsoft.Identity.Web 进行,如下所示。
services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches();
然后在控制器内部,我能够接收到构造函数中注入的 ITokenAcquisition 对象
public HomeController(ITokenAcquisition tokenAcquisition, ...
{
this._tokenAcquisition = tokenAcquisition;
我可以这样做:
var accessToken =
this._tokenAcquisition.GetAccessTokenForAppAsync(powerbiApiDefaultScope).Result;
并获得这样的令牌凭证:
var tokenCredentials = new TokenCredentials(accessToken, "Bearer");
使用这个 tokenCredentials 我可以实现我的目标,即实例化一个 PowerBIClient 类以与 PowerBI 服务进行交互。
var client = new PowerBIClient(new Uri(urlPowerBiServiceApiRoot), tokenCredentials);
问题是我无法在隔离的 Azure Function 的 Startup 类中设置配置。因此,我无法在我的 Azure 函数中注入 ITokenAcquisition 以获取访问令牌。
有人可以请教吗?太感谢了。
解决方案
推荐阅读
- python - python - 如何使用Python中的字典找到值总和等于或大于k的键的可能组合?
- javascript - 将对象与对象解构和旋转运算符相结合
- php - 在 Directus 中直接访问外部 PHP 脚本的数据
- javascript - NextJS 与 url 名称不同的页面名称
- c - Doxygen 无法扩展 AUTOSAR 宏
- javascript - 如何检测 JS for 循环中的状态变化?
- python - 在 Django 中,是否可以迁移任何特定的特定文件?
- decision-tree - 使用 c4.5 进行情绪分析
- python - 如何对2个相同数组数据的输出进行排序
- regex - 谷歌表格正则表达式引擎是否支持后视?