问题描述
我正在尝试使用 Azure AD 对部署在 Windows 服务器上的 Apache Web 服务器中的网站进行身份验证。我们正在寻找的一个可能的解决方案是 mod_auth_openidc,但它不适用于 Windows。
是否有其他选项可用于在 Windows 服务器上的 apache 中对网站进行身份验证?
解决方法
设计模式应该适用于任何技术,因为使用了 HTTP 接口:
- 反向代理是公共网址
- 网站使用内部网址
- 反向代理处理 OAuth 并与 Azure AD 对话
请注意,在安全托管方面,通常建议在任何这些组件之前放置反向代理,以便攻击者必须突破 2 层才能获取数据:
- API
- 访问数据源的 Web 后端
- 授权服务器
这里有一个可能适合您的选项 - 一旦您设置了良好的反向代理,它就会为您提供一些有趣的架构选项:
-
使用 Azure NGINX managed service 将使用基于 Linux 的服务器,但您无需对 Linux 了解太多即可使用它们
-
使用 NGINX openidc module - 同样由 Zmartzone 提供 - 并将其与 Azure AD 一起托管
如果有帮助,在 Curity 我们有一些相关资源 - here is one 展示了如何使用 Docker 在 Windows PC 上运行 NGINX 以及如何通过插件控制行为。