Skip to content

Commit 4f08cf1

Browse files
authored
Using federated auth for ACS tests (#36387)
* Enabling federated auth for ACS Identity SDK * Removing application secret field from ARM template * Removing application secret field from ARM template * Adding federated auth support for other ACS SDKs * Replacing DefaultAzureCredential with TokenCredential * Removing PPE and INT from Live Tests
1 parent 80edc0a commit 4f08cf1

File tree

12 files changed

+68
-96
lines changed

12 files changed

+68
-96
lines changed

sdk/communication/azure-communication-chat/tests.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@ extends:
88
ServiceDirectory: communication
99
MatrixReplace:
1010
- TestSamples=.*/true
11+
UseFederatedAuth: true
1112
CloudConfig:
1213
Public:
14+
ServiceConnection: azure-sdk-tests
15+
SubscriptionConfigurationFilePaths:
16+
- eng/common/TestResources/sub-config/AzurePublicMsft.json
1317
SubscriptionConfigurations:
14-
- $(sub-config-azure-cloud-test-resources)
1518
- $(sub-config-communication-services-cloud-test-resources-common)
1619
- $(sub-config-communication-services-cloud-test-resources-python)
17-
Int:
18-
SubscriptionConfigurations:
19-
- $(sub-config-communication-int-test-resources-common)
20-
- $(sub-config-communication-int-test-resources-python)
21-
Clouds: Public,Int
20+
Clouds: Public
2221
TestResourceDirectories:
2322
- communication/test-resources/

sdk/communication/azure-communication-chat/tests/_shared/utils.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,31 @@
99
Tuple,
1010
)
1111
from azure.core.pipeline.policies import HttpLoggingPolicy, HeadersPolicy
12+
from devtools_testutils import is_live, get_credential
1213

1314

1415
def create_token_credential():
15-
# type: () -> FakeTokenCredential or DefaultAzureCredential
16+
# type: () -> FakeTokenCredential or get_credential
1617
from devtools_testutils import is_live
1718

1819
if not is_live():
1920
from .fake_token_credential import FakeTokenCredential
2021

2122
return FakeTokenCredential()
22-
from azure.identity import DefaultAzureCredential
23-
24-
return DefaultAzureCredential()
23+
24+
return get_credential()
2525

2626

2727
def async_create_token_credential():
28-
# type: () -> AsyncFakeTokenCredential or DefaultAzureCredential
28+
# type: () -> AsyncFakeTokenCredential or get_credential
2929
from devtools_testutils import is_live
3030

3131
if not is_live():
3232
from .async_fake_token_credential import AsyncFakeTokenCredential
3333

3434
return AsyncFakeTokenCredential()
35-
from azure.identity.aio import DefaultAzureCredential
36-
37-
return DefaultAzureCredential()
35+
36+
return get_credential(is_async=True)
3837

3938

4039
def get_http_logging_policy(**kwargs):

sdk/communication/azure-communication-identity/samples/identity_samples.py

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import os
2929
from azure.communication.identity._shared.utils import parse_connection_str
3030
from msal import PublicClientApplication
31+
from devtools_testutils import get_credential
3132

3233

3334
class CommunicationIdentityClientSamples(object):
@@ -53,11 +54,10 @@ def get_token(self):
5354
and self.client_secret is not None
5455
and self.tenant_id is not None
5556
):
56-
from azure.identity import DefaultAzureCredential
57-
57+
5858
endpoint, _ = parse_connection_str(self.connection_string)
5959
identity_client = CommunicationIdentityClient(
60-
endpoint, DefaultAzureCredential()
60+
endpoint, get_credential()
6161
)
6262
else:
6363
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -81,11 +81,10 @@ def get_token_with_custom_expiration(self):
8181
and self.client_secret is not None
8282
and self.tenant_id is not None
8383
):
84-
from azure.identity import DefaultAzureCredential
85-
84+
8685
endpoint, _ = parse_connection_str(self.connection_string)
8786
identity_client = CommunicationIdentityClient(
88-
endpoint, DefaultAzureCredential()
87+
endpoint, get_credential()
8988
)
9089
else:
9190
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -112,11 +111,10 @@ def revoke_tokens(self):
112111
and self.client_secret is not None
113112
and self.tenant_id is not None
114113
):
115-
from azure.identity import DefaultAzureCredential
116-
114+
117115
endpoint, _ = parse_connection_str(self.connection_string)
118116
identity_client = CommunicationIdentityClient(
119-
endpoint, DefaultAzureCredential()
117+
endpoint, get_credential()
120118
)
121119
else:
122120
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -138,11 +136,10 @@ def create_user(self):
138136
and self.client_secret is not None
139137
and self.tenant_id is not None
140138
):
141-
from azure.identity import DefaultAzureCredential
142-
139+
143140
endpoint, _ = parse_connection_str(self.connection_string)
144141
identity_client = CommunicationIdentityClient(
145-
endpoint, DefaultAzureCredential()
142+
endpoint, get_credential()
146143
)
147144
else:
148145
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -163,11 +160,10 @@ def create_user_and_token(self):
163160
and self.client_secret is not None
164161
and self.tenant_id is not None
165162
):
166-
from azure.identity import DefaultAzureCredential
167-
163+
168164
endpoint, _ = parse_connection_str(self.connection_string)
169165
identity_client = CommunicationIdentityClient(
170-
endpoint, DefaultAzureCredential()
166+
endpoint, get_credential()
171167
)
172168
else:
173169
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -191,11 +187,10 @@ def create_user_and_token_with_custom_expiration(self):
191187
and self.client_secret is not None
192188
and self.tenant_id is not None
193189
):
194-
from azure.identity import DefaultAzureCredential
195-
190+
196191
endpoint, _ = parse_connection_str(self.connection_string)
197192
identity_client = CommunicationIdentityClient(
198-
endpoint, DefaultAzureCredential()
193+
endpoint, get_credential()
199194
)
200195
else:
201196
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -217,11 +212,10 @@ def delete_user(self):
217212
and self.client_secret is not None
218213
and self.tenant_id is not None
219214
):
220-
from azure.identity import DefaultAzureCredential
221-
215+
222216
endpoint, _ = parse_connection_str(self.connection_string)
223217
identity_client = CommunicationIdentityClient(
224-
endpoint, DefaultAzureCredential()
218+
endpoint, get_credential()
225219
)
226220
else:
227221
identity_client = CommunicationIdentityClient.from_connection_string(
@@ -243,11 +237,10 @@ def get_token_for_teams_user(self):
243237
and self.client_secret is not None
244238
and self.tenant_id is not None
245239
):
246-
from azure.identity import DefaultAzureCredential
247-
240+
248241
endpoint, _ = parse_connection_str(self.connection_string)
249242
identity_client = CommunicationIdentityClient(
250-
endpoint, DefaultAzureCredential()
243+
endpoint, get_credential()
251244
)
252245
else:
253246
identity_client = CommunicationIdentityClient.from_connection_string(

sdk/communication/azure-communication-identity/tests.yml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,16 @@ extends:
88
ServiceDirectory: communication
99
MatrixReplace:
1010
- TestSamples=.*/true
11+
UseFederatedAuth: true
1112
CloudConfig:
1213
Public:
14+
ServiceConnection: azure-sdk-tests
15+
SubscriptionConfigurationFilePaths:
16+
- eng/common/TestResources/sub-config/AzurePublicMsft.json
1317
SubscriptionConfigurations:
14-
- $(sub-config-azure-cloud-test-resources)
1518
- $(sub-config-communication-services-cloud-test-resources-common)
1619
- $(sub-config-communication-services-cloud-test-resources-python)
17-
PPE:
18-
SubscriptionConfigurations:
19-
- $(sub-config-communication-ppe-test-resources-common)
20-
- $(sub-config-communication-ppe-test-resources-python)
21-
Int:
22-
SubscriptionConfigurations:
23-
- $(sub-config-communication-int-test-resources-common)
24-
- $(sub-config-communication-int-test-resources-python)
25-
Clouds: Public,PPE,Int
20+
Clouds: Public
2621
EnvVars:
2722
AZURE_SKIP_LIVE_RECORDING: 'True'
2823
AZURE_TEST_RUN_LIVE: 'true'

sdk/communication/azure-communication-identity/tests/_shared/utils.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,31 @@
99
Tuple,
1010
)
1111
from azure.core.pipeline.policies import HttpLoggingPolicy, HeadersPolicy
12+
from devtools_testutils import is_live, get_credential
1213

1314

1415
def create_token_credential():
15-
# type: () -> FakeTokenCredential or DefaultAzureCredential
16+
# type: () -> FakeTokenCredential or get_credential
1617
from devtools_testutils import is_live
1718

1819
if not is_live():
1920
from .fake_token_credential import FakeTokenCredential
2021

2122
return FakeTokenCredential()
22-
from azure.identity import DefaultAzureCredential
23-
24-
return DefaultAzureCredential()
23+
24+
return get_credential()
2525

2626

2727
def async_create_token_credential():
28-
# type: () -> AsyncFakeTokenCredential or DefaultAzureCredential
28+
# type: () -> AsyncFakeTokenCredential or get_credential
2929
from devtools_testutils import is_live
3030

3131
if not is_live():
3232
from .async_fake_token_credential import AsyncFakeTokenCredential
3333

3434
return AsyncFakeTokenCredential()
35-
from azure.identity.aio import DefaultAzureCredential
36-
37-
return DefaultAzureCredential()
35+
36+
return get_credential(is_async=True)
3837

3938

4039
def get_http_logging_policy(**kwargs):

sdk/communication/azure-communication-identity/tests/test_communication_identity_client.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
import pytest
88
from datetime import timedelta
99
from azure.communication.identity import CommunicationTokenScope
10-
from devtools_testutils import is_live, recorded_by_proxy
10+
from devtools_testutils import is_live, recorded_by_proxy, get_credential
1111
from utils import is_token_expiration_within_allowed_deviation, token_scope_scenarios
1212
from acs_identity_test_case import ACSIdentityTestCase
1313
from azure.communication.identity import CommunicationIdentityClient
1414
from devtools_testutils.fake_credentials import FakeTokenCredential
15-
from azure.identity import DefaultAzureCredential
1615
from _shared.utils import get_http_logging_policy
1716

1817

@@ -37,7 +36,7 @@ def create_client_from_token_credential(self):
3736
if not is_live():
3837
credential = FakeTokenCredential()
3938
else:
40-
credential = DefaultAzureCredential()
39+
credential = get_credential()
4140
return CommunicationIdentityClient(
4241
self.endpoint, credential, http_logging_policy=get_http_logging_policy()
4342
)

sdk/communication/azure-communication-identity/tests/test_communication_identity_client_async.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@
77
import pytest
88
from datetime import timedelta
99
from azure.communication.identity import CommunicationTokenScope
10-
from devtools_testutils import is_live
10+
from devtools_testutils import is_live, get_credential
1111
from devtools_testutils.aio import recorded_by_proxy_async
1212
from test_communication_identity_client import ArgumentPasser
1313
from utils import is_token_expiration_within_allowed_deviation, token_scope_scenarios
1414
from acs_identity_test_case import ACSIdentityTestCase
1515
from azure.communication.identity.aio import CommunicationIdentityClient
1616
from devtools_testutils.fake_credentials_async import AsyncFakeCredential
17-
from azure.identity.aio import DefaultAzureCredential
1817
from _shared.utils import get_http_logging_policy
1918

2019

@@ -32,7 +31,7 @@ def create_client_from_token_credential(self):
3231
if not is_live():
3332
credential = AsyncFakeCredential()
3433
else:
35-
credential = DefaultAzureCredential()
34+
credential = get_credential(is_async=True)
3635
return CommunicationIdentityClient(
3736
self.endpoint, credential, http_logging_policy=get_http_logging_policy()
3837
)

sdk/communication/azure-communication-jobrouter/tests/_shared/utils.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,31 @@
99
Tuple,
1010
)
1111
from azure.core.pipeline.policies import HttpLoggingPolicy, HeadersPolicy
12+
from devtools_testutils import is_live, get_credential
1213

1314

1415
def create_token_credential():
15-
# type: () -> FakeTokenCredential or DefaultAzureCredential
16+
# type: () -> FakeTokenCredential or get_credential
1617
from devtools_testutils import is_live
1718

1819
if not is_live():
1920
from .fake_token_credential import FakeTokenCredential
2021

2122
return FakeTokenCredential()
22-
from azure.identity import DefaultAzureCredential
23-
24-
return DefaultAzureCredential()
23+
24+
return get_credential()
2525

2626

2727
def async_create_token_credential():
28-
# type: () -> AsyncFakeTokenCredential or DefaultAzureCredential
28+
# type: () -> AsyncFakeTokenCredential or get_credential
2929
from devtools_testutils import is_live
3030

3131
if not is_live():
3232
from .async_fake_token_credential import AsyncFakeTokenCredential
3333

3434
return AsyncFakeTokenCredential()
35-
from azure.identity.aio import DefaultAzureCredential
36-
37-
return DefaultAzureCredential()
35+
36+
return get_credential(is_async=True)
3837

3938

4039
def get_http_logging_policy(**kwargs):

sdk/communication/azure-communication-rooms/tests.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,16 @@ extends:
88
ServiceDirectory: communication
99
MatrixReplace:
1010
- TestSamples=.*/true
11+
UseFederatedAuth: true
1112
CloudConfig:
1213
Public:
14+
ServiceConnection: azure-sdk-tests
15+
SubscriptionConfigurationFilePaths:
16+
- eng/common/TestResources/sub-config/AzurePublicMsft.json
1317
SubscriptionConfigurations:
14-
- $(sub-config-azure-cloud-test-resources)
1518
- $(sub-config-communication-services-cloud-test-resources-common)
1619
- $(sub-config-communication-services-cloud-test-resources-python)
17-
18-
PPE:
19-
SubscriptionConfigurations:
20-
- $(sub-config-communication-ppe-test-resources-common)
21-
- $(sub-config-communication-ppe-test-resources-python)
22-
Clouds: Public,PPE
20+
Clouds: Public
2321
TestResourceDirectories:
2422
- communication/test-resources/
2523
EnvVars:

0 commit comments

Comments
 (0)