diff --git a/pom.xml b/pom.xml
index 2c1916a..e54fa16 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,11 @@
slf4j-simple
test
+
+ com.azure
+ azure-identity
+ 1.2.2
+
diff --git a/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java b/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java
index eb2f89e..abc1139 100644
--- a/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java
+++ b/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java
@@ -4,6 +4,8 @@
import com.azure.cosmos.CosmosClientBuilder;
import com.azure.cosmos.DirectConnectionConfig;
+import com.azure.identity.DefaultAzureCredential;
+import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration;
import com.azure.spring.data.cosmos.config.CosmosConfig;
import com.azure.spring.data.cosmos.core.ResponseDiagnostics;
@@ -33,10 +35,15 @@ public class SampleAppConfiguration extends AbstractCosmosConfiguration {
@Bean
public CosmosClientBuilder cosmosClientBuilder() {
DirectConnectionConfig directConnectionConfig = DirectConnectionConfig.getDefaultConfig();
+ // DefaultAzureCredential uses environment variables as explained in the below link to build corresponding
+ // credential. For example setting the environment variables AZURE_CLIENT_ID, AZURE_USERNAME, AZURE_PASSWORD
+ // will create a UsernamePasswordCredential. Read the link below for further info
+ // https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme?view=azure-java-stable#service-principal-with-secret
+ DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
return new CosmosClientBuilder()
- .endpoint(properties.getUri())
- .key(properties.getKey())
- .directMode(directConnectionConfig);
+ .endpoint(properties.getUri())
+ .credential(credential)
+ .directMode(directConnectionConfig);
}
@Bean
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index c4362c8..54565bf 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,5 +1,5 @@
cosmos.uri=${ACCOUNT_HOST}
-cosmos.key=${ACCOUNT_KEY}
+# cosmos.key=${ACCOUNT_KEY} -- Not necessary when using Azure identity credentials
cosmos.secondaryKey=${SECONDARY_ACCOUNT_KEY}
dynamic.collection.name=spel-property-collection