Azure App Service与函数应用:如何强制启用客户端证书(TLS双向认证)
强制Azure App Service/函数应用启用客户端证书的可行方案
一、Azure Policy 强制配置(核心方案)
你要的强制方案可以通过Azure Policy实现,不管是内置策略还是自定义规则都能满足需求:
1. 内置策略快速启用
先检查Azure Policy的内置规则,搜索**"App Service should require client certificates",如果能找到,直接将其分配到目标订阅或资源组。这个策略会标记所有未启用客户端证书的资源,还能设置自动修正**,把不合规的App Service/函数应用的客户端证书模式自动改成Require。
2. 自定义策略精准管控
如果内置策略不符合你的具体要求(比如需要同时校验clientCertEnabled和clientCertMode),可以自己编写自定义策略。核心是检查Microsoft.Web/sites/config类型资源的两个关键属性:
properties.clientCertEnabled必须为trueproperties.clientCertMode必须等于"Require"
下面是一个可直接用的策略规则片段:
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Web/sites/config" }, { "field": "name", "equals": "web" }, { "anyOf": [ { "field": "properties.clientCertEnabled", "notEquals": true }, { "field": "properties.clientCertMode", "notEquals": "Require" } ] } ] }, "then": { "effect": "Deny" } }
- 把效果设为
Deny:直接阻止创建或修改不符合要求的App Service/函数应用,完全满足你“仅当设置为Require才可正常运行”的需求。 - 如果不想直接阻止,也可以设为
Modify,自动修正不合规的资源配置。
二、RBAC 辅助强化(可选)
如果担心有管理员绕过Policy修改配置,可以创建自定义RBAC角色,限制用户对Microsoft.Web/sites/config/write权限的使用,只允许携带正确客户端证书配置的请求。不过这个方式复杂度较高,一般配合Azure Policy使用就足够了。
三、验证与监控
- 配置完Policy后,定期查看Azure Policy的合规性报告,确认所有资源都符合要求。
- 开启Azure Monitor日志,跟踪App Service/函数应用的配置变更,及时发现违规操作。
内容的提问来源于stack exchange,提问作者user2600700
相关产品推荐
相关产品推荐

