**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
coerce_to_timestamp=coerce_to_timestamp,
            record_time_added=record_time_added,
        )
        
        
        
        
        
        
        
        
        
        if fmt == "csv":
            
            
            self.log.info("Cleaning data and writing to CSV")
            possible_strings = df.columns[df.dtypes == "object"]
            df[possible_strings] = (
                df[possible_strings]
                .astype(str)
                .apply(lambda x: x.str.replace("\r\n", "").str.replace("\n", ""))
            )
            
            df.to_csv(filename, index=False)
        elif fmt == "json":
            df.to_json(filename, "records", date_unit="s")
        elif fmt == "ndjson":
            df.to_json(filename, "records", lines=True, date_unit="s")
        return df
    def object_to_df(