如何从 Azure 数据工厂安全地调用 Azure 逻辑应用
Posted
技术标签:
【中文标题】如何从 Azure 数据工厂安全地调用 Azure 逻辑应用【英文标题】:How to securely invoke a Azure Logic App from Azure Data Factory 【发布时间】:2021-08-07 15:44:50 【问题描述】:我有一个调用逻辑应用程序的数据工厂管道。逻辑应用设计器提供的 URL 在 URL 中包含一个签名。在数据工厂管道中,我有一个使用 POST 方法调用逻辑应用程序的 Web 活动。这行得通,应用程序被调用。
我希望将此签名与 URL 分开并将其存储在 Azure Key Vault 中,或者使用身份验证。数据工厂中的身份验证选项包括:基本、托管身份或客户端证书。我尝试follow this article to enable authentication via Azure Active Directory OAuth,但目前不知道这将如何与 Azure 数据工厂一起使用。
我知道可以启用 API 管理网关以对包括逻辑应用在内的 API 启用更复杂的身份验证,但我目前不认为我应该这样做。
我在 Logic App 界面中注意到的另一件事是您无法发出执行授权。这与其他 Azure 服务(例如 Data Lake)不同,例如,您可以发出“类似使用”的授权来读取容器。只有授权窗格可用于定义声明。我有一点尝试,但我缺少关键信息。
最终我不希望签名暴露给包括我自己在内的开发人员。
【问题讨论】:
【参考方案1】:我个人喜欢将 PostURL 存储在 Azure KeyVault 中,然后在 ADF 中执行 Azure KeyVault GET API 调用,然后将 ADF 中的输出安全地传递给请求以触发逻辑应用程序。这是两项无异的活动,而且是一种安全方法,可以只使用 ADF 中原生的托管身份验证。
以下是如何从 AKV 获取值的示例:
从 AKV 中获得价值
这是 Azure KeyVault 示例机密的 URL:
https://kv-ccok-ops-@pipeline().globalParameters.Environment.vault.azure.net//secrets/FILESERVER-UserName?api-version=7.1
使用 AKV 的价值
这个例子应该非常容易理解。
【讨论】:
【参考方案2】:我相信您可以将Managed Identity of the Web Activity 与Azure AD OAuth feature for Logic Apps 配对。
所需的声明需要在 Authorization
刀片上为 setup 以验证令牌。
【讨论】:
以上是关于如何从 Azure 数据工厂安全地调用 Azure 逻辑应用的主要内容,如果未能解决你的问题,请参考以下文章
将存储安全地连接到 Azure Data Lake Analytics 或数据工厂
将数据从 Azure Blob 存储复制到 Azure SQLDB 时,Azure 数据工厂错误地复制单元格值