Azure Web 服务到 Azure Web 服务经过身份验证的请求
Azure web service to Azure web service authenticated requests
我有一个 Azure-based .NET Core Web API 应用程序,我想与 Azure-based MVC5 应用程序进行通信。 MVC5 应用程序要求其客户端在我们的 Azure AD 实例中拥有凭据。我们使用我们的 SSO Azure AD 凭据连接到此应用程序。
.NET Core 应用不针对 Azure 进行身份验证;它的消费者没有可能的凭据 pass-through。但是...它托管在同一个 Azure 实例中,所以看起来我应该能够相对轻松地从 Web api 向 MVC 应用程序发送经过身份验证的请求。
虽然这方面的文档非常混乱。有关于 x.509 证书的讨论(这似乎真的没有必要),OAuth 2.0 授权和流程(我可能无法解决这个问题,我不知道)......但是有一些简单的,相对 "brainless" 无需构建某种复杂的脚手架 and/or 配置即可让一项服务与另一项服务安全对话的方法?我有点希望有一种方法可以实例化 HttpClient
或 WebRequest
,调用一些方法来获得正确的授权 header(或者可能是 cookie?),并在其上发送我的请求快乐的方式......但如果它存在,它对我来说仍然是难以捉摸的。
任何对此的解释都会有所帮助,谢谢。
这取决于。首先,需要明确的是,您正试图从 API 应用程序调用 MVC 应用程序中的操作?这似乎有点奇怪(更常见的是,MVC front-end 可能需要调用 api)。不管怎样,应该还是一样。
问题:您是否希望 api 应用程序始终将 MVC 应用程序调用为 "itself"?那么,您的 api 应用程序将拥有一个有权在您的 MVC 应用程序上调用操作的身份?如果是这样,这正是 OAuth 客户端凭据流程的用途:
通过此流程,您可以创建代表您的 API 应用程序的 Azure AD 应用程序注册。然后,在运行时,您的 API 应用程序使用其客户端 ID 和客户端密码获取可用于调用 MVC 应用程序的令牌(通常作为授权 header 中的不记名令牌传递)。您可以对应用程序注册执行的部分操作是授予它对您的 MVC 应用程序的委派访问权限,但您也可以管理要在 MVC 应用程序中允许访问的 "clients"。
希望这是有道理的。
我有一个 Azure-based .NET Core Web API 应用程序,我想与 Azure-based MVC5 应用程序进行通信。 MVC5 应用程序要求其客户端在我们的 Azure AD 实例中拥有凭据。我们使用我们的 SSO Azure AD 凭据连接到此应用程序。
.NET Core 应用不针对 Azure 进行身份验证;它的消费者没有可能的凭据 pass-through。但是...它托管在同一个 Azure 实例中,所以看起来我应该能够相对轻松地从 Web api 向 MVC 应用程序发送经过身份验证的请求。
虽然这方面的文档非常混乱。有关于 x.509 证书的讨论(这似乎真的没有必要),OAuth 2.0 授权和流程(我可能无法解决这个问题,我不知道)......但是有一些简单的,相对 "brainless" 无需构建某种复杂的脚手架 and/or 配置即可让一项服务与另一项服务安全对话的方法?我有点希望有一种方法可以实例化 HttpClient
或 WebRequest
,调用一些方法来获得正确的授权 header(或者可能是 cookie?),并在其上发送我的请求快乐的方式......但如果它存在,它对我来说仍然是难以捉摸的。
任何对此的解释都会有所帮助,谢谢。
这取决于。首先,需要明确的是,您正试图从 API 应用程序调用 MVC 应用程序中的操作?这似乎有点奇怪(更常见的是,MVC front-end 可能需要调用 api)。不管怎样,应该还是一样。
问题:您是否希望 api 应用程序始终将 MVC 应用程序调用为 "itself"?那么,您的 api 应用程序将拥有一个有权在您的 MVC 应用程序上调用操作的身份?如果是这样,这正是 OAuth 客户端凭据流程的用途:
通过此流程,您可以创建代表您的 API 应用程序的 Azure AD 应用程序注册。然后,在运行时,您的 API 应用程序使用其客户端 ID 和客户端密码获取可用于调用 MVC 应用程序的令牌(通常作为授权 header 中的不记名令牌传递)。您可以对应用程序注册执行的部分操作是授予它对您的 MVC 应用程序的委派访问权限,但您也可以管理要在 MVC 应用程序中允许访问的 "clients"。
希望这是有道理的。