Gre*_*ous 2 azure azure-active-directory azure-logic-apps azure-functions
我正在尝试为逻辑应用程序和 Azure 函数配置安全性。Azure 函数有一个 HTTP 触发器。到目前为止,我已经完成了以下工作:
当我运行逻辑应用程序时,它显示 HTTP 操作失败,因为它未经授权。谁能告诉我我错过了什么?我找到了一些关于如何使用类似方法访问 KeyVault(例如)的教程,但对于 Azure 函数却没有。我觉得我需要告诉应用注册逻辑应用的托管标识有权限,但我不知道这是否正确,也不知道如何去做。
首先,要解决当前在逻辑应用调用 Azure 函数时遇到的未经授权的错误,您需要确保逻辑应用正在获取令牌以正确地对函数进行身份验证。
我很快尝试了一个带有托管标识的逻辑应用程序,例如您的设置,以调用启用了 Azure AD 身份验证的 Azure 函数。以下是要遵循的详细步骤。
https://<myfunctionapp>.azurewebsites.net/api/simplefunctionManaged Identity然后添加新参数并选择Audience复选框
将Audience参数的值更改为函数应用的 Azure AD 应用注册的 APP ID URI。在我的情况下,这个值看起来像https://<myazureadtenant>.onmicrosoft.com/GUID
您可以从 Azure 门户 > Azure AD > 应用注册 > 函数应用注册 > 设置 > 属性中找到此 APP ID URI 值
此时,您应该能够测试您的逻辑应用程序,并且至少可以正常调用 Azure 函数(除非您的 Azure 函数仅限于某些调用者或需要特定权限,稍后会详细介绍。)
在我的案例中,完整的 HTTP 操作如下所示。
接下来,一旦从逻辑应用程序(具有托管标识)到您的 Azure 函数的基本调用得到正确的身份验证,问题是任何应用程序都应该能够调用您的 Azure 函数,还是应该只允许具有特定权限的某些调用者。
我在这篇 SO Post 中用 2 种方法详细回答了这部分 -有没有办法保护只能从特定 Azure 逻辑应用程序调用的 Azure 函数?. 该答案中的第二种方法非常具有声明性,如果您的功能需要,您甚至可以为不同类型的调用者创建多个不同的应用程序角色。
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |