Skip to content

Commit fc15b61

Browse files
authored
Merge pull request #311006 from dominicbetts/aio-connector-security
AIO: Clarify connector and certificate security
2 parents 8e66722 + bf239d4 commit fc15b61

12 files changed

Lines changed: 202 additions & 134 deletions

articles/iot-operations/discover-manage-assets/howto-configure-opc-ua.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ Your IT administrator must configure the OPC UA connector template for your Azur
4040

4141
An OPC UA server that you can reach from your Azure IoT Operations cluster. If you don't have an OPC UA server, use the OPC PLC simulator from the Azure IoT Operations samples repository.
4242

43+
## Configure a certificate trust list for the connector
44+
45+
[!INCLUDE [connector-certificate-application](../includes/connector-certificate-application.md)]
46+
4347
## Create a device
4448

4549
An Azure IoT Operations deployment can include a sample OPC PLC simulator. To create a device that uses the OPC PLC simulator:
@@ -152,8 +156,6 @@ To use the `UsernamePassword` authentication mode, complete the following steps:
152156

153157
### Other security options
154158

155-
To manage the trusted certificates list for the connector for OPC UA, see [Manage certificates for external communications](../secure-iot-ops/howto-manage-certificates.md#manage-certificates-for-external-communications).
156-
157159
When you create the inbound endpoint, you can also select:
158160

159161
| Option | Type | Description |
@@ -384,7 +386,7 @@ Now you can define the events associated with the asset. To add OPC UA events in
384386

385387
### Event filters
386388

387-
Define event filters to customize the information that's included in event notifications from the server. By default, the server sends a selection of standard fields in event notifications. The server determines the exact selection for each event type. For example:
389+
Define event filters to customize the information included in event notifications from the server. By default, the server sends a selection of standard fields in event notifications. The server determines the exact selection for each event type. For example:
388390

389391
```json
390392
{
@@ -401,7 +403,7 @@ Define event filters to customize the information that's included in event notif
401403

402404
Use an event filter to:
403405

404-
- Include additional fields in event notifications.
406+
- Include extra fields in event notifications.
405407
- Exclude fields from event notifications.
406408
- Modify field names in event notifications.
407409

@@ -424,7 +426,7 @@ The three properties for a filter row are:
424426
- _Type definition ID_. Optional value that specifies the OPC UA type definition of the source field.
425427
- _Field ID_. Optional value that specifies the name to use for the field in the forwarded event notification. If you don't specify a field ID, the original field name is used.
426428

427-
The resulting message forwarded by the connector now looks like the following:
429+
The resulting message forwarded by the connector now looks like the following example:
428430

429431
```json
430432
{
@@ -527,7 +529,7 @@ resource asset 'Microsoft.DeviceRegistry/namespaces/assets@2025-10-01' existing
527529
output asset object = asset
528530
```
529531

530-
To update an existing asset, for example to modify the description and add a data point, use a template like the following:
532+
To update an existing asset, for example to modify the description and add a data point, use a template like the following example:
531533

532534
```bicep
533535
param aioNamespaceName string = '<AIO_NAMESPACE_NAME>'

articles/iot-operations/discover-manage-assets/howto-use-http-connector.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,24 @@ In Azure IoT Operations, the connector for HTTP/REST enables access to data from
1818

1919
[!INCLUDE [iot-operations-device-definition](../includes/iot-operations-device-definition.md)]
2020

21-
The connector for HTTP/REST supports the following features:
22-
23-
- Automatic retries when sampling failures occur. Reports a failed status for errors that can't be retried.
24-
- Integration with OpenTelemetry.
25-
- Use of _device endpoints_ and _assets_.
26-
- Optionally transform incoming data using WASM modules.
27-
- Device endpoint and asset definition validation for REST compatibility.
28-
- Multiple authentication methods:
29-
- Username/password basic HTTP authentication
30-
- x509 client certificates
31-
- Anonymous access for testing purposes
32-
- To establish a TLS connection to the HTTP endpoint, you can configure a certificate trust list for the connector.
21+
The following table summarizes the features the connector for HTTP/REST currently supports:
22+
23+
| Feature | Supported | Notes |
24+
|---------|:---------:|-------|
25+
| Username/password authentication | Yes | Basic HTTP authentication |
26+
| X.509 client certificates | Yes | Certificates for client authentication and authorization |
27+
| Anonymous access | Yes | For testing purposes |
28+
| Certificate trust list | Yes | For secure TLS connections to the HTTP endpoint |
29+
| OpenTelemetry integration | Yes | |
30+
| Automatic retries | Yes | Reports failed status for nonretryable errors |
31+
| WASM data transformation | Yes | Optionally transform incoming data |
32+
| Schema generation | Yes | Registers inferred schema with the schema registry |
3333

3434
For each configured dataset, the connector for HTTP/REST:
3535

36-
- Performs a GET request to the address specified in the device endpoint and appends the dataset's data source from the asset.
37-
- Generates a message schema for each dataset based on the data it receives, and registers it with Schema Registry and Azure Device Registry.
38-
- Forwards the data to the specified destination.
36+
1. Performs a GET request to the address specified in the device endpoint and appends the dataset's data source from the asset.
37+
1. Generates a message schema for each dataset based on the data it receives, and registers it with the schema registry in Azure Device Registry.
38+
1. Forwards the data to the specified destination.
3939

4040
This article explains how to use the connector for HTTP/REST to perform tasks such as:
4141

@@ -56,6 +56,10 @@ You need any credentials required to access the HTTP source. If the HTTP source
5656

5757
[!INCLUDE [deploy-connectors-simple](../includes/deploy-connectors-simple.md)]
5858

59+
### Configure a certificate trust list for the connector
60+
61+
[!INCLUDE [connector-certificate-application](../includes/connector-certificate-application.md)]
62+
5963
## Create a device
6064

6165
To configure the connector for HTTP/REST, first create a device that defines the connection to the HTTP source. The device includes the URL of the HTTP source and any credentials you need to access the HTTP source:
@@ -160,11 +164,7 @@ To use the `Username password` authentication mode, complete the following steps
160164

161165
### Configure a device to use an X.509 certificate
162166

163-
[!INCLUDE [connector-certificate](../includes/connector-certificate.md)]
164-
165-
### Configure a certificate trust list for a device to use
166-
167-
To manage the trusted certificates list for the connector for HTTP/REST, see [Manage certificates for external communications](../secure-iot-ops/howto-manage-certificates.md#manage-certificates-for-external-communications).
167+
[!INCLUDE [connector-certificate-user](../includes/connector-certificate-user.md)]
168168

169169
## Create an asset
170170

articles/iot-operations/discover-manage-assets/howto-use-media-connector.md

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,36 @@ In Azure IoT Operations, the media connector enables access to media from media
1818

1919
[!INCLUDE [iot-operations-device-definition](../includes/iot-operations-device-definition.md)]
2020

21+
The following table summarizes the features the media connector supports:
22+
23+
| Feature | Supported | Notes |
24+
|---------|:---------:|-------|
25+
| Username/password authentication | Yes | Basic HTTP authentication |
26+
| X.509 client certificates | No | |
27+
| Anonymous access | Yes | For testing purposes |
28+
| Certificate trust list | Yes | For secure TLS connections to to media sources |
29+
| OpenTelemetry integration | Yes | |
30+
| Northbound username/password authentication | Yes | For RTSP and RTSPS endpoints |
31+
| Northbound anonymous access | Yes | For RTSP and RTSPS endpoints |
32+
| Northbound certificate trust list | Yes | For secure connections to RTSPS endpoints only |
33+
| Snapshot to MQTT | Yes | Publish image snapshots to MQTT topics |
34+
| Clip to file system | Yes | Save video clips to local storage |
35+
| Snapshot to file system | Yes | Save image snapshots to local storage |
36+
| Stream to RTSP/RTSPS | Yes | Proxy live video streams to an RTSP or RTSPS endpoint |
37+
38+
For each configured stream, the connector for media:
39+
40+
1. Opens a connection to the stream from the media source.
41+
1. Generates clips, captures snapshots, or proxies the stream as specified in the stream configuration.
42+
1. Sends the media to the specified destination.
43+
2144
This article explains how to use the media connector to perform tasks such as:
2245

2346
- Define the devices that connect media sources to your Azure IoT Operations instance.
2447
- Add assets, and define their streams for capturing media from the media source.
2548
- Send an image snapshot to the MQTT broker.
2649
- Save a video clip to Azure storage.
2750

28-
The media connector supports the following southbound authentication methods:
29-
- Username/password authentication
30-
- Anonymous access for testing purposes
31-
32-
To establish a TLS connection to the media source, you can configure a certificate trust list for the connector.
33-
34-
The media connector supports the following northbound authentication methods:
35-
- Username/password for RTSP and RTSPS endpoints
36-
- Anonymous access for testing purposes on RTSP and RTSPS endpoints
37-
- Certificate trust list for RTSPS endpoints only
38-
3951
## Prerequisites
4052

4153
To configure devices and assets, you need a running instance of Azure IoT Operations.
@@ -90,6 +102,10 @@ Example uses of the media connector include:
90102

91103
[!INCLUDE [deploy-connectors](../includes/deploy-connectors.md)]
92104

105+
### Configure a certificate trust list for the connector
106+
107+
[!INCLUDE [connector-certificate-application](../includes/connector-certificate-application.md)]
108+
93109
## Create a device with a media endpoint
94110

95111
To configure the media connector, first create a device that defines the connection to the media source. The device includes the URL of the media source and any credentials you need to access the media source:
@@ -190,10 +206,6 @@ To use the `Username password` authentication mode, complete the following steps
190206

191207
---
192208

193-
### Configure a certificate trust list for a device to use
194-
195-
To manage the trusted certificates list for the media connector, see [Manage certificates for external communications](../secure-iot-ops/howto-manage-certificates.md#manage-certificates-for-external-communications).
196-
197209
## Create an asset to publish an image snapshot
198210

199211
To define an asset that publishes an image snapshot from the media source to the MQTT broker:
@@ -300,7 +312,7 @@ The following steps show you how to run the **mosquitto_sub** tool in the cluste
300312

301313
[!INCLUDE [deploy-mqttui](../includes/deploy-mqttui.md)]
302314

303-
To save the payload of a single message, use a command like the following:
315+
To save the payload of a single message, use a command like the following example:
304316

305317
```bash
306318
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/my-camera/#" -C 1 -F %p --cafile /var/run/certs/

articles/iot-operations/discover-manage-assets/howto-use-mqtt-connector.md

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,29 @@ ms.date: 10/21/2025
1212

1313
# Configure the connector for MQTT (preview)
1414

15-
This is a preview version of the connector for MQTT connector that lets you model external MQTT endpoints as assets in Azure IoT Operations. The MQTT connector can detect new topic paths as they appear, you can view the custom resources that represent the detected topics.
15+
This preview version of the connector for MQTT connector lets you model external MQTT endpoints as assets in Azure IoT Operations. The MQTT connector can detect new topic paths as they appear, you can view the custom resources that represent the detected topics.
1616

1717
[!INCLUDE [iot-operations-asset-definition](../includes/iot-operations-asset-definition.md)]
1818

1919
[!INCLUDE [iot-operations-device-definition](../includes/iot-operations-device-definition.md)]
2020

21-
The connector for MQTT (preview) supports the following features:
21+
The following table summarizes the features the connector for MQTT (preview) supports:
2222

23-
- Enables topics from MQTT device to be represented as assets in Azure Device Registry (ADR).
24-
- Establishes communication with MQTT broker for northbound and southbound connections.
25-
- Detects new topics that appear under a given topic path and communicates with Akri. Akri creates the _detected asset_ custom resource ready for OT approval and import into ADR.
26-
- Detects new topics that appear under a given MQTT wildcard path and communicates with Akri. Akri creates the _detected asset_ custom resource ready for OT approval and import into ADR.
27-
- For approved or imported assets, the connector copies data from raw paths to user-assigned unified namespace paths.
28-
- Follows MQTTS practices for secure communications with the Azure IoT Operations MQTT broker.
23+
| Feature | Supported | Notes |
24+
|---------|:---------:|-------|
25+
| Username/password authentication | Yes | Basic HTTP authentication |
26+
| X.509 client certificates | No | |
27+
| Anonymous access | Yes | For testing purposes |
28+
| Certificate trust list | Yes | MQTTS for secure communications with the inbound endpoint |
29+
| OpenTelemetry integration | Yes | |
30+
| WASM data transformation | No | |
31+
| Schema generation | Yes | Registers inferred schema with the schema registry |
32+
33+
The connector for MQTT:
34+
35+
1. Detects new topics that appear under a given topic path or MQTT wildcard path and communicates with Akri.
36+
1. Akri creates the *detected asset* custom resource ready for OT approval and import into Azure Device Registry.
37+
1. For approved or imported assets, the connector for MQTT subscribes to the topics and forwards the data to the unified namespace topics you specify.
2938

3039
This article explains how to use the connector for MQTT to perform tasks such as:
3140

@@ -38,14 +47,18 @@ This article explains how to use the connector for MQTT to perform tasks such as
3847

3948
[!INCLUDE [iot-operations-entra-id-setup](../includes/iot-operations-entra-id-setup.md)]
4049

41-
Your IT administrator must have configured the connector for MQTT template for your Azure IoT Operations instance in the Azure portal.
50+
Your IT administrator must configure the connector for MQTT template for your Azure IoT Operations instance in the Azure portal.
4251

4352
You need any credentials required to access the MQTT source. If the MQTT source requires authentication, you need to create a Kubernetes secret that contains the username and password for the MQTT source.
4453

4554
## Deploy the connector for MQTT
4655

4756
[!INCLUDE [deploy-connectors-simple](../includes/deploy-connectors-simple.md)]
4857

58+
### Configure a certificate trust list for the connector
59+
60+
[!INCLUDE [connector-certificate-application](../includes/connector-certificate-application.md)]
61+
4962
## Create a device
5063

5164
To configure the connector for MQTT, first create a device that defines the connection to the MQTT topic to subscribe from. The device includes the address of the MQTT topic and any credentials you need to access it:
@@ -88,10 +101,6 @@ To use the `Username password` authentication mode:
88101

89102
[!INCLUDE [connector-username-password-portal](../includes/connector-username-password-portal.md)]
90103

91-
### Configure a certificate trust list for a device to use
92-
93-
To manage the trusted certificates list for the connector for MQTT, see [Manage certificates for external communications](../secure-iot-ops/howto-manage-certificates.md#manage-certificates-for-external-communications).
94-
95104
## Discover and create assets
96105

97106
When you send a message to a topic that matches the topic filter you specified when creating the device, the connector for MQTT detects the new topic and creates a _detected asset_ custom resource. For example, if you specified the topic filter as `A/B/+`, and you send a message to the topic `A/B/asset1`, the connector for MQTT detects the new topic and creates a _detected asset_ that you can view in the operations experience web UI:
@@ -112,7 +121,7 @@ To create an asset from the detected asset, follow these steps:
112121
:::image type="content" source="media/howto-use-mqtt-connector/detected-asset-dataset.png" alt-text="Screenshot that shows the dataset created from the detected asset." lightbox="media/howto-use-mqtt-connector/detected-asset-dataset.png":::
113122

114123
> [!TIP]
115-
> You can add more datasets if required to capture messages from other topics.
124+
> You can add more datasets if necessary to capture messages from other topics.
116125
117126
Select **Next** to continue.
118127

articles/iot-operations/discover-manage-assets/howto-use-onvif-connector.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,27 @@ ms.date: 12/11/2025
1212

1313
# Configure the connector for ONVIF
1414

15-
In Azure IoT Operations, the connector for ONVIF enables you to discover and use an [ONVIF conformant](https://www.onvif.org/profiles-add-ons-specifications/) camera that's connected to your Azure IoT Operations cluster.
15+
In Azure IoT Operations, the connector for ONVIF enables you to discover and use an [ONVIF conformant](https://www.onvif.org/profiles-add-ons-specifications/) camera connected to your Azure IoT Operations cluster.
1616

1717
[!INCLUDE [iot-operations-asset-definition](../includes/iot-operations-asset-definition.md)]
1818

1919
[!INCLUDE [iot-operations-device-definition](../includes/iot-operations-device-definition.md)]
2020

21+
The following table summarizes the features the connector for ONVIF supports:
22+
23+
| Feature | Supported | Notes |
24+
|---------|:---------:|-------|
25+
| Username/password authentication | Yes | |
26+
| X.509 client certificates | No | |
27+
| Anonymous access | Yes | For testing purposes |
28+
| Certificate trust list | Yes | For secure TLS connections to ONVIF cameras |
29+
| OpenTelemetry integration | Yes | |
30+
| Device discovery | Yes | Discovers ONVIF cameras on the network |
31+
| Capability discovery | Yes | Discovers PTZ and other device capabilities |
32+
| Media endpoint discovery | Yes | Discovers media streams, framerate, resolution, encoding |
33+
| Camera configuration | Yes | Retrieve and update camera settings |
34+
| PTZ control | Yes | Control pan, tilt, and zoom |
35+
2136
The connector connects ONVIF cameras to your Azure IoT Operations instance and registers them in the Azure Device Registry. The connector then automatically discovers:
2237

2338
- The capabilities, such as pan-tilt-zoom (PTZ), of the ONVIF device.
@@ -45,12 +60,6 @@ This article describes how to use the operations experience web UI and Azure CLI
4560
- Create a device that represents the media endpoints exposed by the ONVIF camera.
4661
- Create an asset that captures snapshots from the media endpoint and publishes them to the MQTT broker.
4762

48-
The connector for ONVIF supports the following authentication methods:
49-
- Username/password authentication
50-
- Anonymous access for testing purposes
51-
52-
To establish a TLS connection to the ONVIF camera, you can configure a certificate trust list for the connector.
53-
5463
## Prerequisites
5564

5665
[!INCLUDE [enable-resource-sync-rules](../includes/enable-resource-sync-rules.md)]
@@ -80,6 +89,10 @@ The connector enables support for the following capabilities:
8089

8190
[!INCLUDE [deploy-connectors-simple](../includes/deploy-connectors-simple.md)]
8291

92+
### Configure a certificate trust list for the connector
93+
94+
[!INCLUDE [connector-certificate-application](../includes/connector-certificate-application.md)]
95+
8396
## Create a device with an ONVIF endpoint
8497

8598
To add a device that includes an ONVIF endpoint for a compliant camera:
@@ -172,8 +185,6 @@ To use the `Username password` authentication mode, complete the following steps
172185

173186
### Other security options
174187

175-
To manage the trusted certificates list for the connector for ONVIF, see [Manage certificates for external communications](../secure-iot-ops/howto-manage-certificates.md#manage-certificates-for-external-communications).
176-
177188
When you create the inbound endpoint in the operations experience, you can also select the following options on the **Advanced** tab:
178189

179190
| Option | Type | Description |

0 commit comments

Comments
 (0)