Skip to content

Commit bb500de

Browse files
fix security issue
1 parent 44b0586 commit bb500de

File tree

5 files changed

+35
-35
lines changed

5 files changed

+35
-35
lines changed

docs/workshop/docs/workshop/Challenge-5/python/content_understanding_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ def __init__(
3232
)
3333

3434
def _get_analyzer_url(self, endpoint, api_version, analyzer_id):
35-
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}?api-version={api_version}" # noqa
35+
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}?api-version={api_version}"
3636

3737
def _get_analyzer_list_url(self, endpoint, api_version):
3838
return f"{endpoint}/contentunderstanding/analyzers?api-version={api_version}"
3939

4040
def _get_analyze_url(self, endpoint, api_version, analyzer_id):
41-
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}:analyze?api-version={api_version}" # noqa
41+
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}:analyze?api-version={api_version}"
4242

4343
def _get_training_data_config(
4444
self, storage_container_sas_url, storage_container_path_prefix
@@ -143,7 +143,7 @@ def begin_create_analyzer(
143143
if (
144144
training_storage_container_sas_url
145145
and training_storage_container_path_prefix
146-
): # noqa
146+
):
147147
analyzer_template["trainingData"] = self._get_training_data_config(
148148
training_storage_container_sas_url,
149149
training_storage_container_path_prefix,

infra/scripts/index_scripts/azure_credential_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from azure.identity import ManagedIdentityCredential, DefaultAzureCredential
1+
from azure.identity import ManagedIdentityCredential, AzureCliCredential
22

33
APP_ENV = 'prod' # Change to 'dev' for local development
44

@@ -13,10 +13,10 @@ def get_azure_credential(client_id=None):
1313
client_id (str, optional): The client ID for the managed identity. Defaults to None.
1414
1515
Returns:
16-
azure.identity.DefaultAzureCredential or azure.identity.ManagedIdentityCredential:
16+
azure.identity.AzureCliCredential or azure.identity.ManagedIdentityCredential:
1717
The Azure credential object.
1818
"""
1919
if APP_ENV == 'dev':
20-
return DefaultAzureCredential() # CodeQL [SM05139] Okay use of DefaultAzureCredential as it is only used in development
20+
return AzureCliCredential()
2121
else:
2222
return ManagedIdentityCredential(client_id=client_id)

infra/scripts/index_scripts/content_understanding_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ def __init__(
3232
)
3333

3434
def _get_analyzer_url(self, endpoint, api_version, analyzer_id):
35-
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}?api-version={api_version}" # noqa
35+
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}?api-version={api_version}"
3636

3737
def _get_analyzer_list_url(self, endpoint, api_version):
3838
return f"{endpoint}/contentunderstanding/analyzers?api-version={api_version}"
3939

4040
def _get_analyze_url(self, endpoint, api_version, analyzer_id):
41-
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}:analyze?api-version={api_version}" # noqa
41+
return f"{endpoint}/contentunderstanding/analyzers/{analyzer_id}:analyze?api-version={api_version}"
4242

4343
def _get_training_data_config(
4444
self, storage_container_sas_url, storage_container_path_prefix
@@ -143,7 +143,7 @@ def begin_create_analyzer(
143143
if (
144144
training_storage_container_sas_url
145145
and training_storage_container_path_prefix
146-
): # noqa
146+
):
147147
analyzer_template["trainingData"] = self._get_training_data_config(
148148
training_storage_container_sas_url,
149149
training_storage_container_path_prefix,
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
import os
2-
from azure.identity import ManagedIdentityCredential, DefaultAzureCredential
3-
from azure.identity.aio import ManagedIdentityCredential as AioManagedIdentityCredential, DefaultAzureCredential as AioDefaultAzureCredential
2+
from azure.identity import ManagedIdentityCredential, AzureCliCredential
3+
from azure.identity.aio import ManagedIdentityCredential as AioManagedIdentityCredential, AzureCliCredential as AioAzureCliCredential
44

55

66
async def get_azure_credential_async(client_id=None):
77
"""
88
Returns an Azure credential asynchronously based on the application environment.
99
10-
If the environment is 'dev', it uses AioDefaultAzureCredential.
10+
If the environment is 'dev', it uses AioAzureCliCredential.
1111
Otherwise, it uses AioManagedIdentityCredential.
1212
1313
Args:
1414
client_id (str, optional): The client ID for the Managed Identity Credential.
1515
1616
Returns:
17-
Credential object: Either AioDefaultAzureCredential or AioManagedIdentityCredential.
17+
Credential object: Either AioAzureCliCredential or AioManagedIdentityCredential.
1818
"""
1919
if os.getenv("APP_ENV", "prod").lower() == 'dev':
20-
return AioDefaultAzureCredential() # CodeQL [SM05139] Okay use of DefaultAzureCredential as it is only used in development
20+
return AioAzureCliCredential()
2121
else:
2222
return AioManagedIdentityCredential(client_id=client_id)
2323

@@ -26,16 +26,16 @@ def get_azure_credential(client_id=None):
2626
"""
2727
Returns an Azure credential based on the application environment.
2828
29-
If the environment is 'dev', it uses DefaultAzureCredential.
29+
If the environment is 'dev', it uses AzureCliCredential.
3030
Otherwise, it uses ManagedIdentityCredential.
3131
3232
Args:
3333
client_id (str, optional): The client ID for the Managed Identity Credential.
3434
3535
Returns:
36-
Credential object: Either DefaultAzureCredential or ManagedIdentityCredential.
36+
Credential object: Either AzureCliCredential or ManagedIdentityCredential.
3737
"""
3838
if os.getenv("APP_ENV", "prod").lower() == 'dev':
39-
return DefaultAzureCredential() # CodeQL [SM05139] Okay use of DefaultAzureCredential as it is only used in development
39+
return AzureCliCredential()
4040
else:
4141
return ManagedIdentityCredential(client_id=client_id)

src/tests/api/helpers/test_azure_credential_utils.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,27 @@ def mock_env_vars():
1515

1616
class TestAzureCredentialUtils:
1717
@patch.dict(os.environ, {}, clear=True)
18-
@patch("helpers.azure_credential_utils.DefaultAzureCredential")
18+
@patch("helpers.azure_credential_utils.AzureCliCredential")
1919
@patch("helpers.azure_credential_utils.ManagedIdentityCredential")
20-
def test_get_azure_credential_dev_env(self, mock_managed_identity_credential, mock_default_azure_credential, mock_env_vars):
20+
def test_get_azure_credential_dev_env(self, mock_managed_identity_credential, mock_azure_cli_credential, mock_env_vars):
2121
"""Test get_azure_credential in dev environment."""
2222
# Arrange
2323
os.environ.update(mock_env_vars)
24-
mock_default_credential = MagicMock()
25-
mock_default_azure_credential.return_value = mock_default_credential
24+
mock_azure_cli_credential = MagicMock()
25+
mock_azure_cli_credential.return_value = mock_azure_cli_credential
2626

2727
# Act
2828
credential = azure_credential_utils.get_azure_credential()
2929

3030
# Assert
31-
mock_default_azure_credential.assert_called_once()
31+
mock_azure_cli_credential.assert_called_once()
3232
mock_managed_identity_credential.assert_not_called()
33-
assert credential == mock_default_credential
33+
assert credential == mock_azure_cli_credential
3434

3535
@patch.dict(os.environ, {}, clear=True)
36-
@patch("helpers.azure_credential_utils.DefaultAzureCredential")
36+
@patch("helpers.azure_credential_utils.AzureCliCredential")
3737
@patch("helpers.azure_credential_utils.ManagedIdentityCredential")
38-
def test_get_azure_credential_non_dev_env(self, mock_managed_identity_credential, mock_default_azure_credential, mock_env_vars):
38+
def test_get_azure_credential_non_dev_env(self, mock_managed_identity_credential, mock_azure_cli_credential, mock_env_vars):
3939
"""Test get_azure_credential in non-dev environment."""
4040
# Arrange
4141
mock_env_vars["APP_ENV"] = "prod"
@@ -48,33 +48,33 @@ def test_get_azure_credential_non_dev_env(self, mock_managed_identity_credential
4848

4949
# Assert
5050
mock_managed_identity_credential.assert_called_once_with(client_id="test-client-id")
51-
mock_default_azure_credential.assert_not_called()
51+
mock_azure_cli_credential.assert_not_called()
5252
assert credential == mock_managed_credential
5353

5454
@pytest.mark.asyncio
5555
@patch.dict(os.environ, {}, clear=True)
56-
@patch("helpers.azure_credential_utils.AioDefaultAzureCredential")
56+
@patch("helpers.azure_credential_utils.AioAzureCliCredential")
5757
@patch("helpers.azure_credential_utils.AioManagedIdentityCredential")
58-
async def test_get_azure_credential_async_dev_env(self, mock_aio_managed_identity_credential, mock_aio_default_azure_credential, mock_env_vars):
58+
async def test_get_azure_credential_async_dev_env(self, mock_aio_managed_identity_credential, mock_aio_azure_cli_credential, mock_env_vars):
5959
"""Test get_azure_credential_async in dev environment."""
6060
# Arrange
6161
os.environ.update(mock_env_vars)
62-
mock_aio_default_credential = MagicMock()
63-
mock_aio_default_azure_credential.return_value = mock_aio_default_credential
62+
mock_aio_azure_cli_credential = MagicMock()
63+
mock_aio_azure_cli_credential.return_value = mock_aio_azure_cli_credential
6464

6565
# Act
6666
credential = await azure_credential_utils.get_azure_credential_async()
6767

6868
# Assert
69-
mock_aio_default_azure_credential.assert_called_once()
69+
mock_aio_azure_cli_credential.assert_called_once()
7070
mock_aio_managed_identity_credential.assert_not_called()
71-
assert credential == mock_aio_default_credential
71+
assert credential == mock_aio_azure_cli_credential
7272

7373
@pytest.mark.asyncio
7474
@patch.dict(os.environ, {}, clear=True)
75-
@patch("helpers.azure_credential_utils.AioDefaultAzureCredential")
75+
@patch("helpers.azure_credential_utils.AioAzureCliCredential")
7676
@patch("helpers.azure_credential_utils.AioManagedIdentityCredential")
77-
async def test_get_azure_credential_async_non_dev_env(self, mock_aio_managed_identity_credential, mock_aio_default_azure_credential, mock_env_vars):
77+
async def test_get_azure_credential_async_non_dev_env(self, mock_aio_managed_identity_credential, mock_aio_azure_cli_credential, mock_env_vars):
7878
"""Test get_azure_credential_async in non-dev environment."""
7979
# Arrange
8080
mock_env_vars["APP_ENV"] = "prod"
@@ -87,5 +87,5 @@ async def test_get_azure_credential_async_non_dev_env(self, mock_aio_managed_ide
8787

8888
# Assert
8989
mock_aio_managed_identity_credential.assert_called_once_with(client_id="test-client-id")
90-
mock_aio_default_azure_credential.assert_not_called()
90+
mock_aio_azure_cli_credential.assert_not_called()
9191
assert credential == mock_aio_managed_credential

0 commit comments

Comments
 (0)