使用托管身份从Logic App调用Azure AD受保护的API

时间:2020-02-27 10:43:21

标签: azure azure-active-directory azure-logic-apps

我们正在Azure上托管一个Azure AD Protect API。我们需要从Logic App调用此API。我们目前已经在该逻辑应用的“应用注册”中创建或注册了新的客户端应用,并提供了必要的权限,并已调用API传递了承载令牌。

我的问题是,有什么方法可以利用Logic App(用户分配或系统分配)的托管身份来调用API?

1 个答案:

答案 0 :(得分:1)

是的。 我写了一篇有关该主题的文章(尽管它并非特定于Logic Apps):https://joonasw.net/view/calling-your-apis-with-aad-msi-using-app-permissions

您将需要创建一个 appRoleAssignment ,以向您的托管身份服务主体提供应用程序权限。 为此,我们必须使用PowerShell或Microsoft Graph API。 使用Azure AD PowerShell,我们可以做到这一点:

Connect-AzureAD

New-AzureADServiceAppRoleAssignment -ObjectId $miSpId -Id $appRoleId -PrincipalId $miSpId -ResourceId $targetApiSpId

您需要找到3个参数:

  1. miSpId:托管身份的objectId(很容易,我们可以从Logic App中的Identity刀片中找到它)
  2. appRoleId:在API清单中定义的appRole的ID(这也应该很容易找到,它在API清单中)
  3. targetApiSpId:目标API服务主体的objectId(您可以通过转到Enterprise Applications并在其中找到您的API来获得该对象)