是否可以 运行 私有网络上的 IdentityServer 进行 MVC 身份验证?

Is it possible to run IdentityServer on a private network for MVC authentication?

我认为我的问题的简短答案是 "No",但请允许我描述一下上下文。

我们目前正在使用 IdentityServer 授权访问我们的 APIs(通过客户端凭据)。所有 API 客户端都是计算机程序,它们 运行 在我们的数据中心并在我们的控制之下。为了尽量减少我们的攻击面,我们的 IdentityServer 运行 来自 internal/private 网络,可以从我们的 APIs、服务和其他应用程序访问。没问题。

我们现在想利用 IdentityServer 安装为面向 public 的 Web 应用程序提供用户身份验证。这些应用程序 运行 通过 ASP.NET MVC,因此需要用户与 IdentityServer 交互以进行密码验证(隐式或混合授权类型)。这似乎是一个硬性要求,但我很好奇是否有一种简单的方法来维护 IdentityServer 的私有安装。

我们能否代理来自 ASP.NET 中间件的请求来处理身份验证握手,这样做是否有意义?我倾向于使用面向 public 的 STS 来消除任何代理,但我想我会要求看看还有哪些其他模式可用。

无论其价值如何,我们最终都会在混合流程中使用基于 cookie 的身份验证,但也可以从隐式流程开始。

用户的浏览器必须能够访问身份服务器。不过这可以通过代理。