Windows服务器上的Apache Web服务器如何对接Azure AD完成身份认证?
Windows环境下Apache站点对接Azure AD身份认证可选方案
- 前置反向代理层认证
在原有Apache服务前新增一层支持OIDC认证的反向代理,所有流量先经过代理层完成Azure AD身份校验,合法请求再转发给后端Apache,适配无需修改站点代码的场景:- 用IIS做前置代理:IIS原生支持微软官方的OpenID Connect认证中间件,完成Azure AD认证配置后,再配置ARR反向代理规则把流量转发到Apache监听的端口即可。
- 用Nginx for Windows做前置代理:加载适配Windows版本的
nginx-auth-oidc模块,配置Azure AD OIDC相关参数,认证通过后转发请求给后端Apache。
- 应用层内嵌认证逻辑
如果你的站点是可修改源码的动态应用(PHP、Python、Java等),直接在应用代码中集成对应语言的Azure AD认证SDK,在路由层做身份拦截,未登录用户自动跳转到Azure AD登录页,认证通过后再放行访问站点资源,不需要依赖Apache的认证模块。 - 第三方编译的Windows版mod_auth_openidc模块
目前社区有第三方维护的对应不同Apache版本的Windows编译版mod_auth_openidc,选择和你当前Apache编译环境(VC15/VC17、32位/64位)匹配的模块包,把模块文件放到Apache的modules目录,在httpd.conf中添加LoadModule auth_openidc_module modules/mod_auth_openidc.so加载模块,后续的OIDC配置规则和Linux环境下的配置完全一致,填入Azure AD的租户ID、客户端ID、客户端密钥、OIDC端点等参数即可生效。 - Azure AD应用代理
不需要修改本地Apache的任何配置,直接把站点通过Azure AD应用代理发布,用户访问站点时会先走Azure AD的统一身份认证,认证通过后流量才会通过代理转发到你部署在Windows服务器上的Apache站点,适合不想改动本地服务部署的场景。
内容的提问来源于stack exchange,提问作者rest_day
相关产品推荐
相关产品推荐

