This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch 2642
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit d0575a5e8a2bfe49aaaa3de6d3b1e1602f7393de
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Feb 18 13:45:45 2026 +0100

    CAMEL-22688 - Add support for Client Secret Credentials in Azure Identity 
authentication for camel-azure-storage-blob component - Reflect in the Kamelet
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 ...azure-storage-blob-append-sink-description.adoc |  9 ++++--
 ...storage-blob-changefeed-source-description.adoc | 20 ++++++++++++-
 ...torage-blob-event-based-source-description.adoc | 11 +++++++
 .../azure-storage-blob-sink-description.adoc       |  9 ++++--
 .../azure-storage-blob-source-description.adoc     |  9 ++++--
 .../azure-storage-blob-append-sink.kamelet.yaml    | 26 +++++++++++++++-
 ...ure-storage-blob-changefeed-source.kamelet.yaml | 35 ++++++++++++++++++++--
 ...re-storage-blob-event-based-source.kamelet.yaml | 26 ++++++++++++++--
 kamelets/azure-storage-blob-sink.kamelet.yaml      | 26 +++++++++++++++-
 kamelets/azure-storage-blob-source.kamelet.yaml    | 31 +++++++++++++++++--
 .../azure-storage-blob-append-sink.kamelet.yaml    | 26 +++++++++++++++-
 ...ure-storage-blob-changefeed-source.kamelet.yaml | 35 ++++++++++++++++++++--
 ...re-storage-blob-event-based-source.kamelet.yaml | 26 ++++++++++++++--
 .../kamelets/azure-storage-blob-sink.kamelet.yaml  | 26 +++++++++++++++-
 .../azure-storage-blob-source.kamelet.yaml         | 31 +++++++++++++++++--
 15 files changed, 316 insertions(+), 30 deletions(-)

diff --git 
a/docs/modules/ROOT/partials/azure-storage-blob-append-sink-description.adoc 
b/docs/modules/ROOT/partials/azure-storage-blob-append-sink-description.adoc
index 7bf765835..6bb8d1da0 100644
--- a/docs/modules/ROOT/partials/azure-storage-blob-append-sink-description.adoc
+++ b/docs/modules/ROOT/partials/azure-storage-blob-append-sink-description.adoc
@@ -6,17 +6,20 @@ In this Kamelet, you can use these Azure authentication 
methods:
 
 - Azure Identity mechanism:  `AZURE_IDENTITY`
 - Plain Shared Account Key:  `SHARED_ACCOUNT_KEY`
+- Client Secret Credentials:  `CLIENT_SECRET`
 
 The order of evaluation for `AZURE_IDENTITY` is the following:
 
  - Enviroment
- - Workload Identity 
- - Managed Identity 
- - Azure Developer CLI 
+ - Workload Identity
+ - Managed Identity
+ - Azure Developer CLI
  - IntelliJ
  - Azure CLI
  - Azure Powershell
 
+For `CLIENT_SECRET` you'll need to provide `clientId`, `clientSecret`, and 
`tenantId` properties.
+
 For more information, see the 
https://learn.microsoft.com/en-us/java/api/overview/azure/identity-readme[Azure 
Identity documentation]
 
 === Optional Headers
diff --git 
a/docs/modules/ROOT/partials/azure-storage-blob-changefeed-source-description.adoc
 
b/docs/modules/ROOT/partials/azure-storage-blob-changefeed-source-description.adoc
index f64593805..26d009523 100644
--- 
a/docs/modules/ROOT/partials/azure-storage-blob-changefeed-source-description.adoc
+++ 
b/docs/modules/ROOT/partials/azure-storage-blob-changefeed-source-description.adoc
@@ -2,4 +2,22 @@
 
 === Authentication methods
 
-In this Kamelet you have to use the shared account key of your Azure Storage 
Blob Container.
+In this Kamelet, you can use these Azure authentication methods:
+
+- Azure Identity mechanism:  `AZURE_IDENTITY`
+- Plain Shared Account Key:  `SHARED_ACCOUNT_KEY`
+- Client Secret Credentials:  `CLIENT_SECRET`
+
+The order of evaluation for `AZURE_IDENTITY` is the following:
+
+ - Enviroment
+ - Workload Identity
+ - Managed Identity
+ - Azure Developer CLI
+ - IntelliJ
+ - Azure CLI
+ - Azure Powershell
+
+For `CLIENT_SECRET` you'll need to provide `clientId`, `clientSecret`, and 
`tenantId` properties.
+
+For more information, see the 
https://learn.microsoft.com/en-us/java/api/overview/azure/identity-readme[Azure 
Identity documentation]
diff --git 
a/docs/modules/ROOT/partials/azure-storage-blob-event-based-source-description.adoc
 
b/docs/modules/ROOT/partials/azure-storage-blob-event-based-source-description.adoc
index 119e881d2..9f67083fa 100644
--- 
a/docs/modules/ROOT/partials/azure-storage-blob-event-based-source-description.adoc
+++ 
b/docs/modules/ROOT/partials/azure-storage-blob-event-based-source-description.adoc
@@ -5,3 +5,14 @@
 For this Kamelet the Connection string is the basic method for authenticating 
to the Azure Servicebus Queue.
 
 To use this Kamelet you'll need to set up Events on your Azure Storage Blob 
account and select as an endpoint an Azure Servicebus Queue.
+
+For the Azure Storage Blob access, you can use these Azure authentication 
methods:
+
+- Azure Identity mechanism:  `AZURE_IDENTITY`
+- Plain Shared Account Key:  `SHARED_ACCOUNT_KEY`
+- Shared Key Credential:  `SHARED_KEY_CREDENTIAL`
+- Client Secret Credentials:  `CLIENT_SECRET`
+
+For `CLIENT_SECRET` you'll need to provide `clientId`, `clientSecret`, and 
`tenantId` properties.
+
+For more information, see the 
https://learn.microsoft.com/en-us/java/api/overview/azure/identity-readme[Azure 
Identity documentation]
diff --git 
a/docs/modules/ROOT/partials/azure-storage-blob-sink-description.adoc 
b/docs/modules/ROOT/partials/azure-storage-blob-sink-description.adoc
index 49b358386..4b563d5a8 100644
--- a/docs/modules/ROOT/partials/azure-storage-blob-sink-description.adoc
+++ b/docs/modules/ROOT/partials/azure-storage-blob-sink-description.adoc
@@ -6,17 +6,20 @@ In this Kamelet, you can use these Azure authentication 
methods:
 
 - Azure Identity mechanism:  `AZURE_IDENTITY`
 - Plain Shared Account Key:  `SHARED_ACCOUNT_KEY`
+- Client Secret Credentials:  `CLIENT_SECRET`
 
 The order of evaluation for `AZURE_IDENTITY` is the following:
 
  - Enviroment
- - Workload Identity 
- - Managed Identity 
- - Azure Developer CLI 
+ - Workload Identity
+ - Managed Identity
+ - Azure Developer CLI
  - IntelliJ
  - Azure CLI
  - Azure Powershell
 
+For `CLIENT_SECRET` you'll need to provide `clientId`, `clientSecret`, and 
`tenantId` properties.
+
 For more information, see the 
https://learn.microsoft.com/en-us/java/api/overview/azure/identity-readme[Azure 
Identity documentation]
 
 === Optional Headers
diff --git 
a/docs/modules/ROOT/partials/azure-storage-blob-source-description.adoc 
b/docs/modules/ROOT/partials/azure-storage-blob-source-description.adoc
index 4f8ab514f..8f1567dd4 100644
--- a/docs/modules/ROOT/partials/azure-storage-blob-source-description.adoc
+++ b/docs/modules/ROOT/partials/azure-storage-blob-source-description.adoc
@@ -6,15 +6,18 @@ In this Kamelet, you can use these Azure authentication 
methods:
 
 - Azure Identity mechanism:  `AZURE_IDENTITY`
 - Plain Shared Account Key:  `SHARED_ACCOUNT_KEY`
+- Client Secret Credentials:  `CLIENT_SECRET`
 
 The order of evaluation for `AZURE_IDENTITY` is the following:
 
  - Enviroment
- - Workload Identity 
- - Managed Identity 
- - Azure Developer CLI 
+ - Workload Identity
+ - Managed Identity
+ - Azure Developer CLI
  - IntelliJ
  - Azure CLI
  - Azure Powershell
 
+For `CLIENT_SECRET` you'll need to provide `clientId`, `clientSecret`, and 
`tenantId` properties.
+
 For more information, see the 
https://learn.microsoft.com/en-us/java/api/overview/azure/identity-readme[Azure 
Identity documentation]
diff --git a/kamelets/azure-storage-blob-append-sink.kamelet.yaml 
b/kamelets/azure-storage-blob-append-sink.kamelet.yaml
index 4f7f3cb78..3dbf5a8cb 100644
--- a/kamelets/azure-storage-blob-append-sink.kamelet.yaml
+++ b/kamelets/azure-storage-blob-append-sink.kamelet.yaml
@@ -54,11 +54,32 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:core"
@@ -89,6 +110,9 @@ spec:
           uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
           parameters:
             accessKey: "{{?accessKey}}"
+            azureClientId: "{{?clientId}}"
+            azureClientSecret: "{{?clientSecret}}"
+            azureTenantId: "{{?tenantId}}"
             operation: "commitAppendBlob"
             blobType: "appendBlob"
             credentialType: "{{credentialType}}"
diff --git a/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml 
b/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
index 6b66edb34..2e76d5460 100644
--- a/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
+++ b/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
@@ -35,7 +35,6 @@ spec:
     required:
       - period
       - accountName
-      - accessKey
     type: object
     properties:
       period:
@@ -56,6 +55,33 @@ spec:
         format: password
         x-descriptors:
           - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      credentialType:
+        title: Credential Type
+        description: Determines the credential strategy to adopt.
+        type: string
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
+        default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:azure-storage-blob"
     - "camel:kamelet"
@@ -73,8 +99,11 @@ spec:
             uri: "azure-storage-blob:{{accountName}}"
             parameters:
               operation: "getChangeFeed"
-              accessKey: "{{accessKey}}"
-              credentialType: "SHARED_ACCOUNT_KEY"
+              accessKey: "{{?accessKey}}"
+              azureClientId: "{{?clientId}}"
+              azureClientSecret: "{{?clientSecret}}"
+              azureTenantId: "{{?tenantId}}"
+              credentialType: "{{credentialType}}"
         - split:
             expression:
               simple: "${body}"
diff --git a/kamelets/azure-storage-blob-event-based-source.kamelet.yaml 
b/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
index 210e531f8..6bacd0b05 100644
--- a/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
+++ b/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
@@ -37,7 +37,6 @@ spec:
       - connectionString
       - accountName
       - containerName
-      - accessKey
     type: object
     properties:
       topicOrQueueName:
@@ -78,12 +77,33 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
         default: SHARED_ACCOUNT_KEY
-        enum: ["SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", 
"AZURE_IDENTITY", "CLIENT_SECRET"]
       getBlob:
         title: Get Object in Container
         description: >-
@@ -135,6 +155,6 @@ spec:
                         - simple: 
'${exchangeProperty.azure-storage-blob-event-type} == 
"Microsoft.Storage.BlobCreated" && 
${exchangeProperty.azure-storage-blob-subject} contains "{{containerName}}"'
                           steps:
                             - toD: >-
-                                
azure-storage-blob:{{accountName}}/{{containerName}}?accessKey=RAW({{accessKey}})&operation=getBlob&blobName=${exchangeProperty.azure-storage-blob-blob-name}&credentialType={{credentialType}}
+                                
azure-storage-blob:{{accountName}}/{{containerName}}?accessKey=RAW({{?accessKey}})&azureClientId=RAW({{?clientId}})&azureClientSecret=RAW({{?clientSecret}})&azureTenantId=RAW({{?tenantId}})&operation=getBlob&blobName=${exchangeProperty.azure-storage-blob-blob-name}&credentialType={{credentialType}}
         - to: 'kamelet:sink'
 
diff --git a/kamelets/azure-storage-blob-sink.kamelet.yaml 
b/kamelets/azure-storage-blob-sink.kamelet.yaml
index e6fe7a5c7..b2e186270 100644
--- a/kamelets/azure-storage-blob-sink.kamelet.yaml
+++ b/kamelets/azure-storage-blob-sink.kamelet.yaml
@@ -54,11 +54,32 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:core"
@@ -89,5 +110,8 @@ spec:
           uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
           parameters:
             accessKey: "{{?accessKey}}"
+            azureClientId: "{{?clientId}}"
+            azureClientSecret: "{{?clientSecret}}"
+            azureTenantId: "{{?tenantId}}"
             operation: "uploadBlockBlob"
             credentialType: "{{credentialType}}"
diff --git a/kamelets/azure-storage-blob-source.kamelet.yaml 
b/kamelets/azure-storage-blob-source.kamelet.yaml
index b90546a7a..296e6289c 100644
--- a/kamelets/azure-storage-blob-source.kamelet.yaml
+++ b/kamelets/azure-storage-blob-source.kamelet.yaml
@@ -54,13 +54,34 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       delay:
         title: Delay
         description: The number of milliseconds before the next poll of the 
selected blob.
         type: integer
         default: 500
       deleteAfterRead:
-        title: Auto-delete Blob 
+        title: Auto-delete Blob
         description: Specifies to delete blobs after consuming them
         type: boolean
         default: false
@@ -68,7 +89,7 @@ spec:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dataTypes:
     out:
@@ -148,6 +169,9 @@ spec:
       uri: "azure-storage-blob:{{accountName}}/{{containerName}}"
       parameters:
         accessKey: "{{?accessKey}}"
+        azureClientId: "{{?clientId}}"
+        azureClientSecret: "{{?clientSecret}}"
+        azureTenantId: "{{?tenantId}}"
         credentialType: "{{credentialType}}"
         delay: "{{delay}}"
       steps:
@@ -162,5 +186,8 @@ spec:
                       parameters:
                         operation: "deleteBlob"
                         accessKey: "{{?accessKey}}"
+                        azureClientId: "{{?clientId}}"
+                        azureClientSecret: "{{?clientSecret}}"
+                        azureTenantId: "{{?tenantId}}"
                         credentialType: "{{credentialType}}"
 
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
index 4f7f3cb78..3dbf5a8cb 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-append-sink.kamelet.yaml
@@ -54,11 +54,32 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:core"
@@ -89,6 +110,9 @@ spec:
           uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
           parameters:
             accessKey: "{{?accessKey}}"
+            azureClientId: "{{?clientId}}"
+            azureClientSecret: "{{?clientSecret}}"
+            azureTenantId: "{{?tenantId}}"
             operation: "commitAppendBlob"
             blobType: "appendBlob"
             credentialType: "{{credentialType}}"
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
index 6b66edb34..2e76d5460 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-changefeed-source.kamelet.yaml
@@ -35,7 +35,6 @@ spec:
     required:
       - period
       - accountName
-      - accessKey
     type: object
     properties:
       period:
@@ -56,6 +55,33 @@ spec:
         format: password
         x-descriptors:
           - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      credentialType:
+        title: Credential Type
+        description: Determines the credential strategy to adopt.
+        type: string
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
+        default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:azure-storage-blob"
     - "camel:kamelet"
@@ -73,8 +99,11 @@ spec:
             uri: "azure-storage-blob:{{accountName}}"
             parameters:
               operation: "getChangeFeed"
-              accessKey: "{{accessKey}}"
-              credentialType: "SHARED_ACCOUNT_KEY"
+              accessKey: "{{?accessKey}}"
+              azureClientId: "{{?clientId}}"
+              azureClientSecret: "{{?clientSecret}}"
+              azureTenantId: "{{?tenantId}}"
+              credentialType: "{{credentialType}}"
         - split:
             expression:
               simple: "${body}"
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
index 210e531f8..6bacd0b05 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-event-based-source.kamelet.yaml
@@ -37,7 +37,6 @@ spec:
       - connectionString
       - accountName
       - containerName
-      - accessKey
     type: object
     properties:
       topicOrQueueName:
@@ -78,12 +77,33 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
         default: SHARED_ACCOUNT_KEY
-        enum: ["SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "SHARED_KEY_CREDENTIAL", 
"AZURE_IDENTITY", "CLIENT_SECRET"]
       getBlob:
         title: Get Object in Container
         description: >-
@@ -135,6 +155,6 @@ spec:
                         - simple: 
'${exchangeProperty.azure-storage-blob-event-type} == 
"Microsoft.Storage.BlobCreated" && 
${exchangeProperty.azure-storage-blob-subject} contains "{{containerName}}"'
                           steps:
                             - toD: >-
-                                
azure-storage-blob:{{accountName}}/{{containerName}}?accessKey=RAW({{accessKey}})&operation=getBlob&blobName=${exchangeProperty.azure-storage-blob-blob-name}&credentialType={{credentialType}}
+                                
azure-storage-blob:{{accountName}}/{{containerName}}?accessKey=RAW({{?accessKey}})&azureClientId=RAW({{?clientId}})&azureClientSecret=RAW({{?clientSecret}})&azureTenantId=RAW({{?tenantId}})&operation=getBlob&blobName=${exchangeProperty.azure-storage-blob-blob-name}&credentialType={{credentialType}}
         - to: 'kamelet:sink'
 
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-sink.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-sink.kamelet.yaml
index e6fe7a5c7..b2e186270 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-sink.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-sink.kamelet.yaml
@@ -54,11 +54,32 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       credentialType:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dependencies:
     - "camel:core"
@@ -89,5 +110,8 @@ spec:
           uri: "azure-storage-blob://{{accountName}}/{{containerName}}"
           parameters:
             accessKey: "{{?accessKey}}"
+            azureClientId: "{{?clientId}}"
+            azureClientSecret: "{{?clientSecret}}"
+            azureTenantId: "{{?tenantId}}"
             operation: "uploadBlockBlob"
             credentialType: "{{credentialType}}"
diff --git 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-source.kamelet.yaml
 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-source.kamelet.yaml
index b90546a7a..296e6289c 100644
--- 
a/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-source.kamelet.yaml
+++ 
b/library/camel-kamelets/src/main/resources/kamelets/azure-storage-blob-source.kamelet.yaml
@@ -54,13 +54,34 @@ spec:
         format: password
         x-descriptors:
         - urn:camel:group:credentials
+      clientId:
+        title: Client Id
+        description: The Azure Storage Blob client Id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      clientSecret:
+        title: Client Secret
+        description: The Azure Storage Blob client secret.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
+      tenantId:
+        title: Tenant Id
+        description: The Azure Storage Blob tenant id.
+        type: string
+        format: password
+        x-descriptors:
+        - urn:camel:group:credentials
       delay:
         title: Delay
         description: The number of milliseconds before the next poll of the 
selected blob.
         type: integer
         default: 500
       deleteAfterRead:
-        title: Auto-delete Blob 
+        title: Auto-delete Blob
         description: Specifies to delete blobs after consuming them
         type: boolean
         default: false
@@ -68,7 +89,7 @@ spec:
         title: Credential Type
         description: Determines the credential strategy to adopt.
         type: string
-        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY"]
+        enum: ["SHARED_ACCOUNT_KEY", "AZURE_IDENTITY", "CLIENT_SECRET"]
         default: "SHARED_ACCOUNT_KEY"
   dataTypes:
     out:
@@ -148,6 +169,9 @@ spec:
       uri: "azure-storage-blob:{{accountName}}/{{containerName}}"
       parameters:
         accessKey: "{{?accessKey}}"
+        azureClientId: "{{?clientId}}"
+        azureClientSecret: "{{?clientSecret}}"
+        azureTenantId: "{{?tenantId}}"
         credentialType: "{{credentialType}}"
         delay: "{{delay}}"
       steps:
@@ -162,5 +186,8 @@ spec:
                       parameters:
                         operation: "deleteBlob"
                         accessKey: "{{?accessKey}}"
+                        azureClientId: "{{?clientId}}"
+                        azureClientSecret: "{{?clientSecret}}"
+                        azureTenantId: "{{?tenantId}}"
                         credentialType: "{{credentialType}}"
 

Reply via email to