使用托管身份允许Azure Function App向Azure App Service发出Http请求

tnk479

我有一个Azure功能应用程序,一个Azure应用程序服务和一个Azure存储帐户。该函数使用HttpClient向Azure App Service上的ASP.NET MVC操作之一发出GET请求。在App Service和Function App中,我都转到了Azure Portal中的“身份”刀片,并启用了系统身份。我不清楚需要执行哪些其他配置以允许功能应用程序被调用来调用由应用程序服务托管的ASP.NET MVC应用程序中托管的操作。

在ASP.NET Core 3.1 App中,我有一个非常典型的Startup.cs Configure方法:

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

这是我希望功能应用程序向其发出GET请求的控制器动作签名(它生成PDF):

[Authorize]
[Route("/GenerateFile")]
public async Task<IActionResult> GenerateFile(string id, double customerId, string version)

然后在Azure功能应用程序(版本3功能应用程序)中,这是我尝试发出HTTP GET请求的地方。

try
{
    var azureServiceTokenProvider = new AzureServiceTokenProvider();
    string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync(reportReviewURL);
    _http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

    // Generates the Final PDF file that is then saved to Azure Storage in the orders container. This is what is served to the customer. 
    var response = await _http.GetAsync(reportReviewURL + "GenerateFile?version=Final&customerId=" + reportOrder.CustomerId + "&id=" + id);
    response.EnsureSuccessStatusCode();
}
catch (HttpRequestException ex)
{
    log.LogInformation("HttpRequestException thrown: " + ex.Message);
}

我收到的错误消息是:

参数:连接字符串:[未指定连接字符串],资源:https:// MYCUSTOMURL,权限:。异常消息:尝试使用托管服务标识获取令牌。无法获取访问令牌。重试5次后失败。MSI ResponseCode:InternalServerError,响应:{“ exceptionMessage”:“ AADSTS500011:在名为MYAZURETENANT的租户中找不到名为https:// MYCUSTOMURL的资源主体。如果租户的管理员未安装该应用程序,则可能会发生这种情况。 \ r \ n跟踪ID:4f401265-9163-45de-bce9-4744ce633d00 \ r \ n关联ID:3e312f90-3ea6-45a4-87d4- 36416d1b19f0 \ r \ n时间戳:2020-10-12 14:26:00Z“,” errorCode“:” invalid_resource“,”

我当然已经替换了我的应用自定义域和我们的租户ID,以保护隐私。

Bowman Zhu

首先,如果您想使用MSI身份,则不可能。

这是因为MSI不支持公开API。我们需要使用通用的应用程序注册。

1,公开您的网络应用程序的api:

在此处输入图片说明

2,将功能aad app添加到应用服务aad app的范围内:

在此处输入图片说明

3,然后在函数中更改您的代码,使用azure函数服务主要获取令牌:

https://docs.microsoft.com/zh-cn/azure/key-vault/general/service-to-service-authentication#connection-string-support

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用AAD身份验证从具有MSI的App Service向另一个App Service API发出HTTP请求

来自分类Dev

通过Azure创建App Service托管的证书

来自分类Dev

如何使用托管身份为Logic App创建与Azure KeyVaul的Api连接

来自分类Dev

Azure App Service Web App对VM的访问

来自分类Dev

Azure App Service Web App对VM的访问

来自分类Dev

使用Azure Function App和Python更新Azure表

来自分类Dev

将Azure Web App用于具有托管身份的容器

来自分类Dev

Azure Function App Azure Service Bus触发器两次触发

来自分类Dev

从静态文件SPA调用Azure Function App

来自分类Dev

从Function App中读取Azure KeyVault Secret

来自分类Dev

解密 Azure Function App 操作秘密

来自分类Dev

Azure Function App - 给我登录的用户

来自分类Dev

Azure App Service / Web App是否取代Azure Cloud Service?

来自分类Dev

Azure App Service / Web App是否取代Azure Cloud Service?

来自分类Dev

Microsoft Azure App Service Storage

来自分类Dev

使用KeyVault的Azure App Service JSON转换

来自分类Dev

在Azure App服务上检索Http获取和发布请求

来自分类Dev

在Azure App服务上检索Http获取和发布请求

来自分类Dev

如何查看 Azure Web App 的 Http 请求队列

来自分类Dev

Azure App Service身份验证令牌验证

来自分类Dev

无法在Azure门户上向App添加权限

来自分类Dev

使用Azure App Service身份验证的HttpContext用户为空

来自分类Dev

如何使用Terraform完全部署Containerized Azure Function App

来自分类Dev

在 Azure 2.0 中对 Function app 的每个请求之前执行一些代码

来自分类Dev

如何使用Azure Python SDK编辑Azure App Service?

来自分类Dev

使用Azure AD的Azure API APP身份验证

来自分类Dev

如何使用 Azure 管道任务库发出 http 请求?

来自分类Dev

Azure Function:使用Azure Function App中的PowerShell脚本写入ADLS Gen2

来自分类Dev

从asp.net网站向Azure移动服务发出HTTP请求

Related 相关文章

  1. 1

    使用AAD身份验证从具有MSI的App Service向另一个App Service API发出HTTP请求

  2. 2

    通过Azure创建App Service托管的证书

  3. 3

    如何使用托管身份为Logic App创建与Azure KeyVaul的Api连接

  4. 4

    Azure App Service Web App对VM的访问

  5. 5

    Azure App Service Web App对VM的访问

  6. 6

    使用Azure Function App和Python更新Azure表

  7. 7

    将Azure Web App用于具有托管身份的容器

  8. 8

    Azure Function App Azure Service Bus触发器两次触发

  9. 9

    从静态文件SPA调用Azure Function App

  10. 10

    从Function App中读取Azure KeyVault Secret

  11. 11

    解密 Azure Function App 操作秘密

  12. 12

    Azure Function App - 给我登录的用户

  13. 13

    Azure App Service / Web App是否取代Azure Cloud Service?

  14. 14

    Azure App Service / Web App是否取代Azure Cloud Service?

  15. 15

    Microsoft Azure App Service Storage

  16. 16

    使用KeyVault的Azure App Service JSON转换

  17. 17

    在Azure App服务上检索Http获取和发布请求

  18. 18

    在Azure App服务上检索Http获取和发布请求

  19. 19

    如何查看 Azure Web App 的 Http 请求队列

  20. 20

    Azure App Service身份验证令牌验证

  21. 21

    无法在Azure门户上向App添加权限

  22. 22

    使用Azure App Service身份验证的HttpContext用户为空

  23. 23

    如何使用Terraform完全部署Containerized Azure Function App

  24. 24

    在 Azure 2.0 中对 Function app 的每个请求之前执行一些代码

  25. 25

    如何使用Azure Python SDK编辑Azure App Service?

  26. 26

    使用Azure AD的Azure API APP身份验证

  27. 27

    如何使用 Azure 管道任务库发出 http 请求?

  28. 28

    Azure Function:使用Azure Function App中的PowerShell脚本写入ADLS Gen2

  29. 29

    从asp.net网站向Azure移动服务发出HTTP请求

热门标签

归档