**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 

tests/providers/salesforce/hooks/test_salesforce.py
#
#
#
#
import unittest
from unittest.mock import Mock, patch
import pandas as pd
import pytest
from numpy import nan
from simple_salesforce import Salesforce
from airflow.models.connection import Connection
from airflow.providers.salesforce.hooks.salesforce import SalesforceHook
class TestSalesforceHook(unittest.TestCase):
    def setUp(self):
        self.salesforce_hook = SalesforceHook(salesforce_conn_id="conn_id")
    def test_get_conn_exists(self):
        self.salesforce_hook.conn = Mock(spec=Salesforce)
        self.salesforce_hook.get_conn()
        assert self.salesforce_hook.conn.return_value is not None
    @patch(
        "airflow.providers.salesforce.hooks.salesforce.SalesforceHook.get_connection",
        return_value=Connection(
            login="username",
            password="password",
            extra='{"extra__salesforce__security_token": "token", "extra__salesforce__domain": "login"}',
        ),
    )
    @patch("airflow.providers.salesforce.hooks.salesforce.Salesforce")
    def test_get_conn(self, mock_salesforce, mock_get_connection):