Skip to content

Commit 8c5ab78

Browse files
authored
Updated mTLS support to add details
@wpbrown Please review when you get a chance
1 parent 82ee7ce commit 8c5ab78

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

articles/iot-hub/iot-hub-tls-support.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,13 @@ IoT Edge devices can be configured to use TLS 1.2 when communicating with IoT Hu
126126

127127
After a successful TLS handshake, IoT Hub can authenticate a device using a symmetric key or an X.509 certificate. For certificate-based authentication, this can be any X.509 certificate, including ECC. IoT Hub validates the certificate against the thumbprint or certificate authority (CA) you provide. To learn more, see [Supported X.509 certificates](iot-hub-dev-guide-sas.md#supported-x509-certificates).
128128

129-
## Mutual TLS support
129+
## Mtual TLS authentication support
130130

131-
When a device is configured for X.509 authentication in the device registry, mutual TLS (mTLS) is supported by IoT Hub.
131+
Mutual TLS authentication ensures the client _authenticates_ the server certificate AND the server _authenticates_ the [X.509 client certificate or X.509 Thumbprint](tutorial-x509-introduction). _Authorization_ is performed by IoT Hub after _authentication_ is complete.
132+
133+
For AMQP and MQTT protocols the server will request a client certificate in the initial TLS handshake. If one is provided, client certificate is _authenticated_ along with the client _authenticating_ the server certificate (mutual TLS _authentication_). When IoT Hub receives an MQTT connect packet or an AMQP link open, IoT Hub performs _authorization_ for the requesting client and determines if the client requires X.509 _authentication_. If mutual TLS _authentication_ was completed AND the client is _authorized_ to connect as the device, it is allowed. However, if the client requires X.509 _authentication_ and mutual TLS _authentication_ was NOT completed during the initial handshake then IoT Hub will initiate a new TLS handshake requiring client _authentication_. Once the mutual TLS _authentication_ is complete, IoT Hub will perform _authorization_ again with the now _authenticated_ client.
134+
135+
For HTTP protocol the server will NOT request a client certificate in the initial TLS handshake. Once the client makes its first request then the server checks if client requires X.509 _authentication_. If so, IoT Hub will initiate a new TLS handshake requiring client _authentication_. Once the mutual TLS _authentication_ is complete, IoT Hub will perform _authorization_ again with the now _authenticated_ client.
132136

133137
## Certificate pinning
134138

0 commit comments

Comments
 (0)