Skip to content

Commit 65eca0d

Browse files
CR suggestions
1 parent 1cf658f commit 65eca0d

11 files changed

+68
-11
lines changed

src/test/java/net/snowflake/client/core/auth/wif/AzureIdentityAttestationCreatorLatestIT.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ public class AzureIdentityAttestationCreatorLatestIT extends BaseWiremockTest {
4646
private static final String SUCCESSFUL_FLOW_AZURE_FUNCTIONS_NO_CLIENT_ID_SCENARIO_MAPPINGS =
4747
SCENARIOS_BASE_DIR + "/successful_flow_azure_functions_no_client_id.json";
4848

49+
/*
50+
* {
51+
* "iss": "https://sts.windows.net/fa15d692-e9c7-4460-a743-29f29522229/",
52+
* "sub": "77213E30-E8CB-4595-B1B6-5F050E8308FD"
53+
* }
54+
*/
55+
private static final String
56+
SUCCESSFUL_FLOW_AZURE_FUNCTIONS_CUSTOM_ENTRA_RESOURCE_SCENARIO_MAPPINGS =
57+
SCENARIOS_BASE_DIR + "/successful_flow_azure_functions_custom_entra_resource.json";
58+
4959
/*
5060
* {
5161
* "iss": "https://not.azure.sts.issuer.com",
@@ -104,7 +114,7 @@ public void successfulFlowAzureFunctionsScenario() {
104114
executeAndAssertCorrectAttestation(attestationServiceSpy, loginInput);
105115
}
106116

107-
// @Test // TODO: Confirm this scenario on actual VM environment
117+
@Test
108118
public void successfulFlowAzureFunctionsNoClientIdScenario() {
109119
importMappingFromResources(SUCCESSFUL_FLOW_AZURE_FUNCTIONS_NO_CLIENT_ID_SCENARIO_MAPPINGS);
110120
SFLoginInput loginInput = createLoginInputStub();
@@ -118,6 +128,22 @@ public void successfulFlowAzureFunctionsNoClientIdScenario() {
118128
executeAndAssertCorrectAttestation(attestationServiceSpy, loginInput);
119129
}
120130

131+
@Test
132+
public void successfulFlowAzureFunctionsCustomEntraResourceScenario() {
133+
importMappingFromResources(
134+
SUCCESSFUL_FLOW_AZURE_FUNCTIONS_CUSTOM_ENTRA_RESOURCE_SCENARIO_MAPPINGS);
135+
SFLoginInput loginInput = createLoginInputStub();
136+
loginInput.setWorkloadIdentityEntraResource("api://1111111-2222-3333-44444-55555555");
137+
AzureAttestationService attestationServiceSpy = Mockito.spy(AzureAttestationService.class);
138+
Mockito.when(attestationServiceSpy.getIdentityEndpoint())
139+
.thenReturn(getBaseUrl() + "metadata/identity/endpoint/from/env");
140+
Mockito.when(attestationServiceSpy.getIdentityHeader())
141+
.thenReturn("some-identity-header-from-env");
142+
Mockito.when(attestationServiceSpy.getClientId()).thenReturn("managed-client-id-from-env");
143+
144+
executeAndAssertCorrectAttestation(attestationServiceSpy, loginInput);
145+
}
146+
121147
@Test
122148
public void azureFunctionsFlowErrorNoIdentityHeader() {
123149
SFLoginInput loginInput = createLoginInputStub();
@@ -210,7 +236,6 @@ private SFLoginInput createLoginInputStub() {
210236
SFLoginInput loginInputStub = new SFLoginInput();
211237
loginInputStub.setSocketTimeout(Duration.ofMinutes(5));
212238
loginInputStub.setHttpClientSettingsKey(new HttpClientSettingsKey(OCSPMode.FAIL_OPEN));
213-
loginInputStub.setWorkloadIdentityEntraResource("api://f4e4c08b-548a-41b8-a410-49b9eb33c527");
214239
return loginInputStub;
215240
}
216241
}

src/test/resources/wiremock/mappings/wif/azure/http_error.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/invalid_issuer_flow.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/missing_issuer_claim.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/missing_sub_claim.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/non_json_response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/successful_flow_azure_functions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2019-08-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
},
1313
"client_id": {
1414
"equalTo": "managed-client-id-from-env"
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"mappings": [
3+
{
4+
"request": {
5+
"urlPattern": "/metadata/identity/endpoint/from/env.*",
6+
"queryParameters": {
7+
"api-version": {
8+
"equalTo": "2019-08-01"
9+
},
10+
"resource": {
11+
"equalTo": "api://1111111-2222-3333-44444-55555555"
12+
},
13+
"client_id": {
14+
"equalTo": "managed-client-id-from-env"
15+
}
16+
},
17+
"method": "GET",
18+
"headers": {
19+
"X-IDENTITY-HEADER": {
20+
"equalTo": "some-identity-header-from-env"
21+
}
22+
}
23+
},
24+
"response": {
25+
"status": 200,
26+
"jsonBody": {
27+
"access_token": "eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJFUzI1NiIsImtpZCI6Ijk0ZGI4N2NiMjdmNjdjZDA1Zjk5OTlkZjMwNjg1NmQ4In0.eyJhdWQiOiJhcGkxIiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvZmExNWQ2OTItZTljNy00NDYwLWE3NDMtMjlmMjk1MjIyMjkvIiwic3ViIjoiNzcyMTNFMzAtRThDQi00NTk1LUIxQjYtNUYwNTBFODMwOEZEIiwiZXhwIjoxNzQ0NzE2MDUxLCJpYXQiOjE3NDQ3MTI0NTEsImp0aSI6Ijg3MTMzNzcwMDk0MTZmYmFhNDM0MmFkMjMxZGUwMDBkIn0.C5jTYoybRs5YF5GvPgoDq4WK5U9-gDzh_N3IPaqEBI0IifdYSWpKQ72v3UISnVpp7Fc46C-ZC8kijUGe3IU9zA"
28+
}
29+
}
30+
}
31+
]
32+
}

src/test/resources/wiremock/mappings/wif/azure/successful_flow_azure_functions_no_client_id.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2019-08-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

src/test/resources/wiremock/mappings/wif/azure/successful_flow_basic.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"equalTo": "2018-02-01"
99
},
1010
"resource": {
11-
"equalTo": "api://f4e4c08b-548a-41b8-a410-49b9eb33c527"
11+
"equalTo": "api://fd3f753b-eed3-462c-b6a7-a4b5bb650aad"
1212
}
1313
},
1414
"method": "GET",

0 commit comments

Comments
 (0)