我的Azure Logic App作为托管服务标识运行,我尝试使用Azure AD Connector作为应用程序的触发器。连接器需要Azure AD Graph API的权限,并且我已使用PowerShell使用ClientCredentials作为ServicePrincipal MSI进行身份验证并调用所需的Azure AD Graph API,从而验证了权限是否正确。
但是,我似乎无法告诉我的Logic App的Azure AD连接器(而不是我可以设置身份验证属性的REST调用)以使用托管服务标识。
由于Microsoft没有提供任何Logic Apps连接器的文档,因此我无法确定Azure AD Connector上是否有一个众所周知的属性可用于告诉它如何进行身份验证。我在我的ARM模板中有以下内容,并且猜测有一个customParameterValue要设置,但我不知道它是什么。
{
"type": "Microsoft.Web/connections",
"name": "[parameters('connections_azuread_name')]",
"apiVersion": "2016-06-01",
"location": "eastus",
"scale": null,
"properties": {
"displayName": "Azure AD",
"customParameterValues": {},
"api": {
"id": "[concat('/subscriptions####/providers/Microsoft.Web/locations/eastus/managedApis/', parameters('connections_azuread_name'))]"
}
},
"dependsOn": []
}
我知道,我在聚会上有点晚了,但是我一直在使用管理身份(MI)很多,并且基本上得出的结论是他们还没有为主流使用做好准备。它们是一个伟大的概念,我希望它们继续增长,但是大多数连接器尚未支持它们的限制,以及每个订阅只能拥有10个具有身份标识的逻辑应用程序的限制,严重限制了它们的使用。
我基本上使用了一个带有MI的逻辑应用程序,它根据一些传递的值为服务构建适当的身份验证块,并从Key Vault获取秘密。每个其他逻辑应用程序调用“身份验证”逻辑应用程序来获取他们应该传递给API,Azure功能等的调用的详细信息。
我还需要AAD保护我的所有Azure功能,所以MI再次非常棒,因为LA能够调用经过身份验证的功能,但同样,Azure功能操作还不支持MI(或任何身份验证)。因此,我不得不求助于使用HTTP连接器(带身份验证)来调用FA。
逻辑应用程序非常接近令人敬畏,令人沮丧的是它们还没有完全存在!
为了回答你的问题,我发现一些连接器会接受一个认证块,例如......
{
"audience": "XXXXXXXXXXXX",
"type": "ManagedServiceIdentity"
}