Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure逻辑应用程序使用MSI通过WebApp进行身份验证_C#_Azure_Azure Logic Apps_Azure Managed Identity - Fatal编程技术网

C# Azure逻辑应用程序使用MSI通过WebApp进行身份验证

C# Azure逻辑应用程序使用MSI通过WebApp进行身份验证,c#,azure,azure-logic-apps,azure-managed-identity,C#,Azure,Azure Logic Apps,Azure Managed Identity,有没有人在LogicApp和WebApp之间实现过MSI身份验证?(假设这是可能的)。我能找到的唯一例子就是将MSI与Keyvault、存储等服务结合使用。这可以开箱即用。通过以下简单步骤,您可以从Logic App调用MSIauthenticatedWeb API: 将MSI添加到您的逻辑应用程序中 在Web API的应用程序服务中为逻辑应用程序添加RBAC 在逻辑应用程序中添加具有如下设置的HTTP操作,以调用Web API(不要添加受众并填写API的其他详细信息): 有关更多详细信

有没有人在LogicApp和WebApp之间实现过MSI身份验证?(假设这是可能的)。我能找到的唯一例子就是将MSI与Keyvault、存储等服务结合使用。

这可以开箱即用。通过以下简单步骤,您可以从Logic App调用
MSI
authenticated
Web API

  • MSI
    添加到您的逻辑应用程序中

  • 在Web API的应用程序服务中为逻辑应用程序添加
    RBAC

  • 在逻辑应用程序中添加具有如下设置的
    HTTP操作
    ,以调用Web API(不要添加
    受众
    并填写
    API
    的其他详细信息):


  • 有关更多详细信息,请访问

    如果我理解正确,您的API托管在Azure web app中,并且您希望使用MSI在logic app中调用API,如果是,您可以按照以下步骤操作

  • 在门户中导航到您的web应用->
    身份验证/授权
    ->启用web应用的Azure AD auth,请按照以下步骤操作
  • 注意:请选择下面的
    创建新的广告应用
    ,然后Azure将自动为您配置广告应用,这可以避免许多配置问题

    最后,选择
    使用Azure Active Directory登录
    ,所有配置完成后将如下图所示

  • 导航到门户中的逻辑应用程序->
    Identity
    ->

  • 在logic app designer中,使用如下Http操作(在我的示例中,为了方便测试,我使用azure函数而不是web app,它们的逻辑相同,只需在您的情况下使用web app即可),将
    观众
    替换为web app的URL

  • 结果:


    您希望通过MSI身份验证在逻辑应用程序和web应用程序之间执行什么操作?因此,基本上我希望消除基本身份验证等。我希望能够通过MSI身份验证调用(GET/POST/etc)我们自己的API,问题是我只找到从API获取令牌以调用其他Azure服务的示例。不用说,除非使用MSI验证,否则API将无法访问。我不想调用存储或任何其他服务。我希望我的API在接收请求时使用MSI身份验证。这可能吗?(为了澄清我不想在我的API中获得一个令牌来调用Azure服务)我已经解释了同样的事情,如果我不清楚的话,很抱歉。它是从逻辑应用程序调用MSI认证的Web API。如果我误解了你的问题,请纠正我。好的,我会再次检查你的答案,看看我可能遗漏了什么。由于我的API仍然可以从外部访问,而无需使用MSI或任何东西。为此,请先在您的Web API中添加MSI:Hi singhh msft,对不起,我离开了一段时间,我将在本周尽快尝试此功能并与您联系。我仍然要解决这个问题,所以谢谢你的帮助!我会尝试一下,让你知道它是否有效。我正在处理同一个问题,但它不起作用。我的应用程序正在尝试交互流,因此我得到了一个302,整个运行都失败了。如果我直接拥有该令牌,那么我可以将其添加为授权标头,这样就可以了。其他信息:我在这方面遇到了问题,直到我意识到我使用的是Visual Studio的身份验证流,而不是Azure App Services中内置的身份验证流。使用Visual Studio的身份验证流不支持静默身份验证(文档中称为“服务器定向流”)。您可以在此处阅读有关身份验证流程的信息: