【问题标题】:Azure web service to Azure web service authenticated requestsAzure Web 服务到 Azure Web 服务经过身份验证的请求
【发布时间】:2018-05-16 12:27:56
【问题描述】:

我有一个基于 Azure 的 .NET Core Web API 应用程序,我想与基于 Azure 的 MVC5 应用程序进行通信。 MVC5 应用程序要求其客户端在我们的 Azure AD 实例中具有凭据。我们使用 SSO Azure AD 凭据连接到此应用。

.NET Core 应用针对 Azure 进行身份验证;其消费者无法通过凭证传递。但是...它托管在同一个 Azure 实例中,所以看起来我应该能够相对轻松地从 Web api 向 MVC 应用程序发送经过身份验证的请求。

不过,这方面的文档相当混乱。有人谈论 x.509 证书(这似乎真的没有必要),OAuth 2.0 授权和流程(我可能无法解决这个问题,我不知道)......但是有一些简单的,相对“无需构建某种复杂的脚手架和/或配置即可让一个服务与另一个服务安全通信的无脑”方式?我有点希望有一种方法可以实例化HttpClientWebRequest,调用一些方法来获取正确的授权标头(或者可能是cookie?),并以愉快的方式发送我的请求......但如果它存在,对我来说仍然难以捉摸。

对此的任何说明都会有所帮助,谢谢。

【问题讨论】:

  • MSI 旨在成为执行此操作的方法jpd.ms/… ...但这也不是很清楚,我只能在有限的情况下使用它。这个想法是您针对正在运行的任何 .NET 核心应用程序(Azure Web 应用程序?)生成一个 MSI,并让该 MSI 访问您的 MVC5 应用程序。如果你得到它的工作,请写下来!

标签: c# asp.net azure asp.net-core azure-authentication


【解决方案1】:

这种情况取决于。首先,要明确的是,您是在尝试从 API 应用程序调用 MVC 应用程序中的操作吗?这似乎有点奇怪(更常见的是,MVC 前端可能需要调用 api)。无论如何,它应该还是一样的。

问题:您是否希望您的 api 应用程序始终将 MVC 应用程序称为“自身”?那么,您的 api 应用程序将拥有一个被授权在您的 MVC 应用程序上调用操作的身份?如果是这样,这正是 OAuth 客户端凭据流程的用途:

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service

通过此流程,您可以创建一个代表您的 API 应用程序的 Azure AD 应用程序注册。然后,在运行时,您的 API 应用程序使用其客户端 ID 和客户端密码来获取可用于调用 MVC 应用程序的令牌(通常作为授权标头中的不记名令牌传递)。您可以对应用注册执行的部分操作是授予它对 MVC 应用的委托访问权限,但您也可以管理您希望在 MVC 应用中允许访问的“客户端”。

希望这是有道理的。

【讨论】:

  • 我同意这很奇怪;这是一个“新”应用程序,它与我们尚未着手重建的“旧”应用程序对话。我会查看您链接到的文档,希望那里有足够的内容来拼凑我需要做的事情。谢谢!
猜你喜欢
  • 2023-03-24
  • 2016-07-13
  • 2016-07-26
  • 1970-01-01
  • 2014-06-21
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多