**Description**

Currently the `SalesforceHook` only supports authentication via username, password, and security token.  The Salesforce API used under the hood supports a few other authentication types:
- Direct access via a session ID
- IP filtering
- JWT access

**Use case / motivation**

The `SalesforceHook` should support all authentication types supported by the underlying API.

**Are you willing to submit a PR?**
Yes 🚀 

**Related Issues**
#8766 

airflow/providers/salesforce/hooks/salesforce.py
df = pd.DataFrame.from_records(query_results, exclude=["attributes"])
        df.columns = [column.lower() for column in df.columns]
        
        
        
        
        if coerce_to_timestamp and df.shape[0] > 0:
            
            
            
            object_name = query_results[0]['attributes']['type']
            self.log.info("Coercing timestamps for: %s", object_name)
            schema = self.describe_object(object_name)
            
            
            
            possible_timestamp_cols = [
                field['name'].lower()
                for field in schema['fields']
                if field['type'] in ["date", "datetime"] and field['name'].lower() in df.columns
            ]
            df[possible_timestamp_cols] = df[possible_timestamp_cols].apply(self._to_timestamp)
        if record_time_added:
            fetched_time = time.time()
            df["time_fetched_from_salesforce"] = fetched_time
        return df