code: def with_aad_application_key_authentication(cls, connection_string, aad_app_id, app_key, authority_id):
          
          _assert_value_is_valid(aad_app_id)
          _assert_value_is_valid(app_key)
          _assert_value_is_valid(authority_id)
          kcsb = cls(connection_string)
          kcsb[kcsb.ValidKeywords.aad_federated_security] = True
          kcsb[kcsb.ValidKeywords.application_client_id] = aad_app_id
          kcsb[kcsb.ValidKeywords.application_key] = app_key
          kcsb[kcsb.ValidKeywords.authority_id] = authority_id
  
          return kcsb
docs: Creates a KustoConnection string builder that will authenticate with AAD application and key.
          :param str connection_string: Kusto connection string should by of the format: https://<clusterName>.kusto.windows.net
          :param str aad_app_id: AAD application ID.
          :param str app_key: Corresponding key of the AAD application.
          :param str authority_id: Authority id (aka Tenant id) must be provided