是否可以使用 IIS - ARR 组合来实现下面提到的场景?或任何额外的发展。
在 DMZ 中有一个前端 Web 服务器(反向代理类型),它将验证(如果可能的话)用户,然后将请求转发到内部网络中的相应应用程序服务器。
任何建议/想法都会非常有帮助。
简短的回答是“不”,因为它不是开箱即用的功能。
更长的答案是“是”,因为您可以为 IIS 编写一个本机模块,在 ARR 处理请求之前执行您想做的任何事情(修改标头、更改目标主机、修改请求正文等)。
我知道这很有效,因为我使用这种方法在使用各种技术的一组服务中实现了一些常见的中间件(身份验证、cors、常见错误页面、cookie 重写)。
这是文档的起点:
“演练:使用本机代码创建请求级 HTTP 模块”
https://msdn.microsoft.com/en-us/library/ms689320(v=vs.90).aspx
您可以通过添加等效于“?authorized=false/true”的查询字符串值来实现此目的,使用 ARR 评估查询字符串值 - 如果授权=false 路由到授权服务器场,则从授权过程发送相同的 URL查询字符串 authorized=true 将路由到“实时”服务器场。
当然,您可能希望在 URL 的纯文本中使用“授权”以外的其他值!
您可以在标头中执行相同的操作,使用 appcmd 您可以在 ARR 中操作标头。ARR 的架构位于 C:\Windows\system32\inetsrv\config\schema\arr_schema.xml 文件中。如果您检查此架构,您将看到 Header 元素的位置。
高温高压