当前位置: 首页 > 知识库问答 >
问题:

Azure API管理Azure函数和托管标识

欧阳高昂
2023-03-14

我试图使用托管标识从API管理实例调用Azure函数。我已为我的APIM实例设置了系统管理的标识。我已将参与者角色授予Azure Function应用程序上的此身份。我还将应用程序服务身份验证更改为AD。

现在我尝试从API调用该函数。

我有两个问题:

  1. 第一个:当我使用身份验证管理身份策略来获取令牌时,我得到了一个错误,当我使用受众https://myfunctionapp.azurewebsites.net.AD告诉我这个应用程序没有在租户中注册
  2. 第二:如果我为https://management.azure.com检索令牌,我得到了一个令牌,但我收到了来自Azure函数的401未经授权的错误。

也许我只是想在错误的受众上获取令牌,但不幸的是,文档中没有列出函数的受众(例如,对于service bus,有一个公共URI可供使用,对于KeyVault,…)。

我想我可能错过了照片中的一些东西。。。谢谢

共有2个答案

岳宣
2023-03-14

需要在apim需要的资源中添加url。如果计划使用委托流。若要检查问题是否与url注册有关,可以使用AppId代替。这至少会告诉你令牌是否可以找回。

壤驷阳冰
2023-03-14

需要使用身份验证-托管身份策略使用API管理服务的托管身份与后端服务进行身份验证。

https://docs.microsoft.com/en-us/azure/api-management/api-management-authentication-policies#ManagedIdentity

编辑

1-Azure AD上的APIM应用程序中,获取为企业应用程序分配的应用程序ID。

2-然后转到Azure Function应用程序中的平台功能,并单击身份验证/授权。

3-选择Azure Active Directory作为身份验证提供程序,并选择管理模式“express”。

4-回到身份验证管理的标识策略,将步骤1中的应用程序ID设置为资源。

 类似资料:
  • 我们计划在我们的单个Azure kubernetes集群上部署多个应用程序,每个应用程序都将拥有自己的一组Azure资源-例如:Key vault、Storage。 我计划为每个应用程序提供个人托管身份,并提供对相关资源的访问。 我知道AZURE AAD POD identify是配置POD以使用托管标识访问AZURE资源的方法。 但是,如何将多个托管标识添加到Azure kubernetes集群

  • 有没有办法将Azure托管标识与LinuxVM一起使用来访问AzureSQL数据库?我只能找到这个文档https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql它专门针对Windows VM。Linux机器是否有文档

  • 我正在尝试将托管标识与Azure功能V3和QueueTrigger一起使用。功能代码的定义如下: 根据微软留档这应该是可能的通过定义一些额外的配置属性 https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference?tabs=blob#local-development-with-identity-based-c

  • 当尝试在Azure Gov中获取服务总线的托管标识令牌时,我尝试使用资源:https://servicebus.usgovcloudapi.net/而不是像商业(https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-managed-service-identity)那样https://servicebus.

  • 项目管理 & 代码托管 Github [free to $] Codebase [$] Bitbucket [free to $] Unfuddle [$] Assembla [free to $]

  • 我正在尝试使用托管标识从Azure Windows VM访问Azure存储资源。 我已经按照这里的指示做了https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-vm-windows-access-storage但本教程中的访问部分是使用完成的。NET,这