### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

Airflow Version 2.5.2

Issue: Create a connection of type azure blob storage using the method #3 described in [OSS docs](https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/stable/connections/wasb.html). 

When we use the storage account name and the access key as in the below screenshot, the connection works just fine.
<img width="637" alt="connection-blob-storage-access-key" src="https://github.com/apache/airflow/assets/75730393/6cf76b44-f65f-40c0-8279-32c58b6d57ba">


Then what is the purpose of the extra field called `Blob Storage Shared Access Key(Optional)`? When I tried to put the access key in this field, then connection fails with the below error on testing: 

```
invalid url http://
```
Code reference: https://github.com/apache/airflow/blob/main/airflow/providers/microsoft/azure/hooks/wasb.py#L190-L192



### What you think should happen instead

_No response_

### How to reproduce

- Create a Azure Storage account
- Go to Access Control (IAM), copy the key
- Spin up new local airflow environment using Astro CLI with runtime version 7.4.1
- Go to Airflow UI -> Admin -> Connections -> create a new connection of type Azure blob Storage
- Enter the name of the storage account in Blob Storage Login and the key copied from Azure to Blob Shared Access Key (Optional) and click on Test connection. 

### Operating System

Astro runtime 7.4.1 image on MacOS

### Versions of Apache Airflow Providers

_No response_

### Deployment

Astronomer

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""
        Instantiate a container client.
        :param container_name: the name of the container
        """
        return self.blob_service_client.get_container_client(container_name)
    async def get_blobs_list_async(
        self,
        container_name: str,
        prefix: str | None = None,
        include: list[str] | None = None,
        delimiter: str = "/",
        **kwargs: Any,
    ) -> list[BlobProperties]:
        """
        List blobs in a given container.
        :param container_name: the name of the container
        :param prefix: filters the results to return only blobs whose names
            begin with the specified prefix.
        :param include: specifies one or more additional datasets to include in the
            response. Options include: ``snapshots``, ``metadata``, ``uncommittedblobs``,
            ``copy`, ``deleted``.
        :param delimiter: filters objects based on the delimiter (for e.g '.csv')
        """
        container = self._get_container_client(container_name)
        blob_list = []
        blobs = container.walk_blobs(name_starts_with=prefix, include=include, delimiter=delimiter, **kwargs)
        async for blob in blobs:
            blob_list.append(blob.name)
        return blob_list
    async def check_for_prefix_async(self, container_name: str, prefix: str, **kwargs: Any) -> bool: