gRPC authentication modes
A gRPC authentication mode is a security mechanism for gRPC communication that
- provides different methods to verify the identity of clients and servers,
- supports both metadata-based and certificate-based approaches for authentication, and
- enables compliance with varying security requirements through configurable settings such as TLS, Mutual TLS, and non-TLS options.
This section details the authentication modes supported by gRPC to secure communication and ensure authorized access to services.
gRPC supports multiple authentication modes to secure communication between clients and servers. These modes ensure that only authorized entities can access gRPC services such as gNOI, gRIBI, and P4RT. Upon receiving a gRPC request, the device authenticates the user and performs authorization checks.
The following table lists the authentication types and their configuration requirements:
| Type |
Authentication Method |
Authorization Method |
Configuration Requirement |
Requirement From Client |
|---|---|---|---|---|
|
Metadata with TLS |
username, password |
username |
grpc |
username, password, and CA |
|
Metadata without TLS |
username, password |
username |
grpc no-tls |
username, password |
|
Metadata with Mutual TLS |
username, password |
username |
grpc tls-mutual |
username, password, client certificate, client key, and CA |
|
Certificate based Authentication |
client certificate's common name field |
username from client certificate's common name field |
grpc tls-mutual and grpc certificate authentication |
client certificate, client key, and CA |
Certificate-based authentication
In Extensible Manageability Services (EMS) gRPC, certificates play a vital role in ensuring secure and authenticated communication. The EMS gRPC utilizes these certificates for authentication:
/misc/config/grpc/ems.pem
/misc/config/grpc/ems.key
/misc/config/grpc/ca.cert
![]() Note |
For clients to use the certificates, ensure to copy the certificates from /misc/config/grpc/ |
Generation of certificates
These certificates are typically generated using a Certificate Authority (CA) by the device. The EMS certificates, including the server certificate (ems.pem ), public key (ems.key ), and CA certificate (ca.cert ), are generated with specific parameters like the common name ems.cisco.com to uniquely identify the EMS server and placed in the /misc/config/grpc/ location.
The default certificates that are generated by the server are Server-only TLS certificates and by using these certificates you can authenticate the identity of the server.
Usage of certificates
These certificates are used for enabling secure communication through Transport Layer Security (TLS) between gRPC clients and the EMS server. The client should use ems.pem and ca.cert to initiate the TLS authentication.
To update the certificates, ensure to copy the new certificates that have been generated earlier to the location and restart the server.
Custom certificates
If you want to use your own certificates for EMS gRPC communication, then you can follow a workflow to generate custom certificates with the required parameters and then configure the EMS server to use these custom certificates. This process involves replacing the default EMS certificates with the custom ones and ensuring that the gRPC clients also trust the custom CA certificate. For more information on how to customize the common-name , see Certificate Common-Name For Dial-in Using gRPC Protocol.
Configure authentication for gRPC services
This task explains how to configure different types of authentication for gRPC services, including TLS and AAA-based authentication.
Before you begin
Ensure that the router supports gRPC and that you have access to the CLI in configuration mode. TLS and AAA configurations must be available if required by the authentication method.
Starting from release 24.4.1, the gRPC server supports TLS version 1.3
Procedure
|
Step 1 |
Configure your preferred authentication method:
|
|
Step 2 |
Verify the configuration. Example:
|
The gRPC service is configured with the selected authentication method and is ready to accept secure client connections.
What to do next
Verify the gRPC connection and monitor authentication logs to ensure proper access control.
gRPC servers with TLS version 1.3 support
gRPC servers with TLS version 1.3 support are network security solutions that
-
provide end-to-end encrypted communication between clients and servers,
-
use modern cryptographic protocols for stronger security and performance, and
-
allow administrators to configure minimum and maximum TLS versions for compliance and interoperability.
|
Feature Name |
Release Information |
Description |
|---|---|---|
|
gRPC Server TLS Version 1.3 Support |
Release 24.4.1 |
You can now enhance the security of your network connections with stronger protection against vulnerabilities by enabling TLS 1.3 support over gRPC services. This update improves performance with faster connection times and reduced latency by reducing the number of round trips required to establish a connection and removing outdated ciphers. Additionally, it complies with internal security mandates, providing a more robust and future-proof solution for your network management needs. Previously, gRPC server supported TLS version 1.2. The feature introduces these changes: CLI: |
Security benefits of TLS 1.3
The gRPC Remote Procedure Calls (gRPC) server Transport Layer Security (TLS) version 1.3 support is a security feature that:
-
Provides end-to-end communications security over networks
-
Prevents unauthorized access and eavesdropping
-
Protects against tampering and message forgery
The TLS private key is encrypted before being stored on the disk. For more details on SSL or TLS version certificates, keys, and communication parameters, see Manage certificates using Certz.proto.
Guidelines and limitations for TLS configuration
TLS version configuration limitations
-
Ensure that the
tls-min-versionvalue is not greater than thetls-max-versionvalue. -
Starting in Release 2.4.4.1, the
tlsv1-disablecommand is deprecated. Avoid using this command in new configurations. -
If you use the
tlsv1-disablecommand, do not use thetls-min-versionortls-max-versioncommands. -
If you use the
tls-min-versionandtls-max-versioncommands, do not use thetlsv1-disablecommand.
Best practice for disabling TLS 1.0
To disable TLS version 1.0, set the tlsv1-disable command. Alternatively, you can set the tls-min-version to a value greater than 1.0.
Configure gRPC TLS version
Configuring gRPC TLS version enables you to control which TLS protocol versions are permitted for secure gRPC communication between the router and clients. This can be important for maintaining compatibility and achieving desired security standards.
Before you begin
-
Verify that gRPC is enabled on the router.
-
Determine which TLS versions (1.0, 1.1, 1.2, or 1.3) your environment and clients require.
Procedure
|
Step 1 |
Configure gRPC TLS minimum, maximum, or both versions. Example:
|
|
Step 2 |
Verify the gRPC TLS minimum and maximum versions. Example:
The TLS 1.3 cipher suites are not configurable, they are either fixed or static. |
After completing this task, the router will use the specified TLS version for gRPC communication.
Example
For example, enabling only TLS 1.3 ensures that gRPC connections use the most secure protocol version supported by the router.
What to do next
After configuring the TLS version, verify the gRPC server status and test connectivity using a gRPC client to ensure compatibility.

Feedback