asp.net - 我可以在一个 Web 应用程序中跨多个服务使用身份验证吗?

标签 asp.net asp.net-mvc azure authentication

这似乎是一个常见的场景,但我不知道如何让它工作。

我有一个位于源 1 的通用 Web 服务。我希望它在多个 Web 应用程序之间通用。它已打开身份验证。

然后,我有位于源 2 的 Web 应用程序。我希望此 Web 应用程序对源 1 处的 Common 进行一些调用(通过 javascript)

如果我在源 1 处关闭 Common 的身份验证,这些调用可以正常工作。如果我打开它,它会失败,因为 Web 应用程序不会跨源发送身份验证 cookie(或 token ?)。

构建这个的正确方法是什么?

最佳答案

您想了解什么是委托(delegate)。该场景的工作原理如下:

  1. 用户在前端应用中针对 AAD 进行身份验证
  2. 颁发对前端应用程序和后端应用程序有效的 token (这是委托(delegate))
  3. 您使用提供的 token 并将其转发到后端应用并代表用户发出请求

描述了如何设置此场景 here但中间确实不需要 API 管理。如果您也想将 API 暴露给外界,或者有多个 API 需要充当一个外观,那么使用 APIM 的原因是有意义的。

关于asp.net - 我可以在一个 Web 应用程序中跨多个服务使用身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52295441/

相关文章:

c# - Web 服务拒绝接收参数并以 JSON 格式回复

asp.net - 显示友好日期、数字

c# - ASP.NET MVC 应用程序的体系结构

c# - 将用户传递给 ViewModel

asp.net-mvc - AWS ASP.NET MVC 网站上未设置安全 cookie

c# - SEO 友好路由 2 查询字符串

azure - 如何通过 SSH 连接到 Azure Function Linux

java - 您可以在 application.properties 中引用 Azure Key Vault secret 吗?

azure - 相当于通过 Azure Blob 的 S3 预签名 URL 上传文件

c# - Sql 存储过程和 Entity Framework 6