Control: App Service apps should have 'Client Certificates (Incoming client certificates)' enabled
Description
Client certificates allow for the app to request a certificate for incoming requests. Only clients that have a valid certificate will be able to reach the app.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.appservice_web_app_client_certificates_onSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.appservice_web_app_client_certificates_on --shareSQL
This control uses a named query:
with all_web_app as (  select    id  from    azure_app_service_web_app  where    exists (      select      from        unnest(regexp_split_to_array(kind, ',')) elem      where        elem like 'app%'  ))select  a.id as resource,  case    when b.id is null then 'skip'    when client_cert_enabled then 'ok'    else 'alarm'  end as status,  case    when b.id is null then a.title || ' is ' || a.kind || ' kind.'    when client_cert_enabled then a.name || ' client certificate enabled.'    else a.name || ' client certificate disabled.'  end as reason    , a.resource_group as resource_group  , sub.display_name as subscriptionfrom  azure_app_service_web_app as a  left join all_web_app as b on a.id = b.id  left join azure_subscription as sub on sub.subscription_id = a.subscription_id;