Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configurar los servicios gRPC

Configure el servidor gRPC para permitir que un cliente use los servicios gRPC en el dispositivo de red, incluidos: servicios de interfaz de operaciones de red (gNOI) gRPC, servicios de interfaz de administración de red gRPC (gNMI) y servicios de interfaz base de información de enrutamiento gRPC (gRIBI).

En este tema se explica cómo configurar los servicios gRPC en dispositivos Junos, incluidas las opciones de autenticación y cómo configurar cada opción. Antes de que el servidor y el cliente puedan establecer una sesión gRPC, debe cumplir los requisitos descritos en las secciones siguientes:

Descripción de la autenticación y autorización para servicios basados en gRPC

Las interfaces gNOI, gNMI y gRIBI utilizan el marco de llamadas a procedimiento remoto gRPC para el transporte. El servidor gRPC se ejecuta en el dispositivo de red y escucha las solicitudes de conexión en un puerto especificado. La aplicación cliente gRPC se ejecuta en un sistema de administración de red remoto (NMS) y establece un canal gRPC con el servidor en el host y el puerto especificados. El cliente ejecuta RPC a través de la sesión gRPC cifrada SSL para realizar operaciones de servicio de red. La figura 1 ilustra una conexión simple entre un cliente gRPC y un servidor.

Figura 1: Interacción entre el servidor gRPC y el gRPC Server and Client Interaction cliente

Los canales gRPC utilizan credenciales de canal para controlar la autenticación entre el servidor y el cliente. Las credenciales de canal estándar utilizan certificados digitales X.509 para autenticar el servidor y el cliente. Un certificado digital proporciona una forma de autenticar a los usuarios a través de un tercero de confianza denominado entidad emisora de certificados o entidad de certificación (CA). La CA verifica la identidad del titular del certificado y lo "firma" para certificar que no ha sido falsificado ni alterado. El estándar X.509 define el formato del certificado. Los certificados digitales se pueden usar para establecer una conexión segura entre dos puntos de conexión a través de la validación de certificados. Para establecer un canal gRPC, cada extremo (dispositivo o aplicación) que requiera autenticación debe proporcionar un certificado X.509 en el intercambio.

Los dispositivos Junos admiten tanto la autenticación solo de servidor como la autenticación mutua para sesiones gRPC basadas en SSL. Cuando se configura la autenticación de solo servidor, el servidor proporciona su certificado de clave pública cuando se establece el canal. El cliente utiliza el certificado de CA raíz del servidor para autenticar el servidor. Cuando se configura la autenticación mutua, el cliente también proporciona su certificado cuando se conecta al servidor y el servidor valida el certificado. Si la validación del certificado se realiza correctamente, el cliente puede realizar llamadas. Se recomienda configurar la autenticación mutua y usar certificados firmados por una CA para obtener la seguridad más sólida, aunque se aceptan certificados autofirmados.

Una infraestructura de clave pública (PKI) admite la distribución e identificación de claves de cifrado públicas, lo que permite a los usuarios intercambiar datos de forma segura a través de redes como Internet y verificar la identidad de la otra parte. Para los servicios basados en gRPC, la PKI de Junos debe contener el certificado del dispositivo local que actúa como servidor gRPC. Si utiliza la autenticación mutua, la PKI de Junos también debe contener los certificados de CA raíz necesarios para validar los certificados de cualquier cliente gRPC que se conecte al dispositivo.

En la Tabla 1 se describen los requisitos generales para la autenticación solo de servidor y la autenticación mutua cuando un cliente gRPC se conecta al dispositivo para realizar servicios basados en gRPC. El certificado del servidor gRPC debe definir el nombre de host del servidor en el campo Nombre común (CN) o debe definir la dirección IP del servidor en el campo Dirección IP Nombre alternativo del sujeto (subjectAltName o SAN). La aplicación cliente debe usar el mismo valor para establecer la conexión con el servidor. Si el certificado define el campo Dirección IP SubjectAltName, el campo Nombre común se omite durante la autenticación.

Tabla 1: Requisitos para la autenticación mutua y solo de servidor para sesiones gRPC
Requisitos Autenticación solo servidor Autenticación mutua
Certificados

El servidor debe tener un certificado de clave pública X.509.

Si el cliente se conecta a la dirección IP del servidor en lugar del nombre de host, el certificado del servidor debe incluir el campo de extensión de la dirección IP subjectAltName (SAN) con la dirección IP del servidor.

El servidor y el cliente deben tener un certificado de clave pública X.509.

Si el cliente se conecta a la dirección IP del servidor en lugar del nombre de host, el certificado del servidor debe incluir el campo de extensión de la dirección IP subjectAltName (SAN) con la dirección IP del servidor.

Junos PKI

El certificado local del servidor debe cargarse en la PKI de Junos.

El certificado local del servidor y el certificado de CA raíz de cada cliente deben cargarse en la PKI de Junos.

Credenciales de canal

El cliente debe pasar el certificado de CA raíz del servidor cuando se establece el canal gRPC.

El cliente debe pasar su certificado y clave y el certificado de CA raíz del servidor cuando se establece el canal gRPC.

Las credenciales de canal se adjuntan al canal gRPC y permiten que la aplicación cliente tenga acceso al servicio. Por otro lado, las credenciales de llamada se adjuntan a una operación de servicio específica (solicitud RPC) y proporcionan información sobre la persona que usa la aplicación cliente. Las credenciales de llamada se envían por solicitud, es decir, para cada llamada RPC. Para ejecutar operaciones basadas en gRPC en dispositivos Junos, debe proporcionar credenciales de llamada en la solicitud. El usuario debe tener una cuenta de usuario definida localmente en el dispositivo o debe autenticarse mediante un servidor TACACS+ que, a continuación, asigna al usuario a una cuenta de plantilla de usuario definida localmente en el dispositivo. Puede proporcionar las credenciales de llamada (nombre de metadata usuario y contraseña) en el argumento del RPC. Si la autenticación se realiza correctamente, el dispositivo Junos ejecuta la solicitud RPC utilizando los privilegios de cuenta del usuario especificado.

Nota:

Como alternativa a la transferencia de credenciales de llamada para cada RPC ejecutado en un dispositivo Junos, puede usar la API del kit de herramientas jnx_authentication_service de extensión de Juniper para iniciar sesión en el dispositivo una vez al inicio de la sesión gRPC y se autenticarán todos los RPC posteriores ejecutados en el canal. Puede descargar la biblioteca IDL del cliente JET desde el sitio de descargas de Juniper Networks.

De forma predeterminada, los dispositivos Junos autorizan a un cliente gRPC autenticado a ejecutar todas las RPC gRPC. Opcionalmente, puede configurar la clase de inicio de sesión de un usuario gRPC para permitir o denegar explícitamente RPC gRPC específicas. Para especificar las RPC, configure las allow-grpc-rpc-regexps instrucciones and deny-grpc-rpc-regexps y defina expresiones regulares que coincidan con las RPC. Consulte Configurar la autorización RPC de gRPC para obtener más información.

Obtener certificados X.509

La sesión gRPC cifrada SSL utiliza certificados de clave pública X.509 para autenticar el servidor y el cliente gRPC. Para la autenticación solo de servidor, el servidor gRPC debe tener un certificado. Para la autenticación mutua, tanto el servidor gRPC como el cliente deben tener certificados. Los requisitos para los certificados son:

  • El certificado puede estar firmado por una autoridad de certificación (CA) o autofirmado.

  • El certificado debe estar codificado en PEM.

  • El certificado del servidor gRPC debe definir el nombre de host del servidor gRPC en el campo Nombre común (CN) o debe definir la dirección IP del servidor gRPC en el campo Dirección IP SubjectAltName (SAN). El cliente gRPC debe utilizar el mismo valor para establecer la conexión con el servidor. Si el certificado define la dirección IP SubjectAltName, el campo Nombre común se omite durante la autenticación.

Para utilizar OpenSSL para obtener el certificado del servidor gRPC:

  1. Genere una clave privada y especifique la longitud de la clave en bits.
  2. Si el cliente gRPC se conecta a la dirección IP del servidor gRPC, actualice su archivo de configuración openssl.cnf o equivalente para definir la subjectAltName=IP extensión con la dirección IP del servidor gRPC.
  3. Genere una solicitud de firma de certificado (CSR), que contiene la clave pública de la entidad e información sobre su identidad.

    Como alternativa, puede proporcionar la información de CSR en un solo comando, por ejemplo:

  4. Genere el certificado mediante una de las siguientes acciones:
    • Envíe la CSR a una entidad emisora de certificados para solicitar un certificado X.509 y proporcione el archivo de configuración para incluir cualquier extensión adicional.

    • Firme la CSR con una CA para generar el certificado e incluya la -extfile opción si necesita hacer referencia al archivo de configuración y las extensiones.

    • Firme la CSR con la clave del servidor para generar un certificado autofirmado e incluya la -extfile opción si necesita hacer referencia al archivo de configuración y las extensiones.

  5. Compruebe que el campo Nombre común (CN) y las extensiones del certificado, si se proporcionan, son correctos.

Para la autenticación mutua, repita los pasos anteriores con la información para que el cliente gRPC genere la clave y el certificado del cliente. El certificado de cliente no requiere el campo de extensión IP de SAN.

Cargar el certificado local del servidor gRPC en la PKI de Junos

El dispositivo de red que ejecuta el servidor gRPC debe tener un certificado X.509 que identifique el dispositivo para los clientes gRPC. Para realizar servicios basados en gRPC en el dispositivo Junos, debe cargar el certificado de clave pública y la clave para el dispositivo de red local en la PKI de Junos. Después de cargar el certificado y realizar la configuración inicial, los clientes gRPC pueden usar cualquier microservicio para actualizar el certificado. Por ejemplo, un cliente gRPC puede usar el servicio gNOI CertificateManagement para instalar un nuevo certificado o reemplazar un certificado existente.

Para cargar el certificado y la clave del dispositivo local en la PKI:

  1. Descargue el certificado y la clave del dispositivo que actúa como servidor gRPC para ese dispositivo.
  2. En el modo operativo, defina un identificador y cargue el certificado y la clave del dispositivo local en la PKI.
  3. (Opcional) Compruebe que el certificado está presente en la base de datos PKI.

Habilitar los servicios gRPC

Los servicios basados en gRPC utilizan una configuración de conexión API basada en la tecnología Secure Socket Layer (SSL). Para una conexión basada en SSL, debe especificar un certificado local que identifique el servidor gRPC.

Después de habilitar los servicios gRPC y especificar un certificado local, el dispositivo de red utiliza la autenticación de solo servidor. A continuación, puede configurar opcionalmente la autenticación mutua completando los pasos descritos en Configurar la autenticación mutua (bidireccional) para servicios gRPC.

Para configurar el dispositivo de red para los servicios gRPC y especificar el certificado local utilizado para la autenticación del servidor:

  1. Vaya a la configuración de conexión de API basada en SSL para los servicios gRPC.
  2. Configure el puerto que se usará para los servicios gRPC.

    Por ejemplo:

  3. Especifique un certificado local.

    Introduzca el identificador del certificado local que cargó previamente en la PKI de Junos con el comando de request security pki local-certificate load modo operativo.

    En el ejemplo siguiente se configura el certificado gnoi-serverlocal:

  4. Configure el dispositivo para usar la base de datos PKI para certificados.
  5. Habilite el dispositivo para que vuelva a cargar certificados sin terminar la sesión gRPC.
  6. (Opcional) Especifique una dirección IP para escuchar las conexiones entrantes.

    Por ejemplo:

    Nota:

    Si no especifica una dirección IP, la dirección predeterminada de :: se utiliza para escuchar las conexiones entrantes.

  7. (Opcional) Configure el seguimiento de los servicios de extensión para depurar cualquier problema que pueda surgir.
    Nota:

    Para ver los archivos de seguimiento de Junos OS Evolved para los servicios de extensiones, utilice los comandos y show trace application jsd live modo show trace application jsd operativo.

  8. Confirme la configuración.

Para configurar la autenticación mutua en lugar de la autenticación solo de servidor, también debe completar los pasos descritos en Configurar autenticación mutua (bidireccional) para servicios gRPC.

Configurar la autenticación mutua (bidireccional) para los servicios gRPC

Puede configurar la autenticación mutua (bidireccional) para las sesiones gRPC, que autentican tanto el dispositivo de red como el servidor gRPC y el sistema de administración de red como el cliente gRPC mediante certificados SSL. El dispositivo Junos utiliza las credenciales proporcionadas por el cliente externo para autenticar al cliente y autorizar una conexión.

Puede configurar la autenticación mutua en dispositivos Junos mediante una de las siguientes opciones:

  • Configure las opciones de autenticación mutua directamente en el nivel de [edit system services extension-service request-response grpc ssl mutual-authentication] jerarquía.

  • Configure inicialmente la autenticación solo de servidor y, a continuación, utilice el servicio gNOI CertificateManagement para cargar los certificados de CA necesarios en el dispositivo.

Si configura la autenticación mutua directamente en la configuración del dispositivo, la configuración del dispositivo tiene prioridad sobre cualquier configuración realizada utilizando los servicios gNOI.

Antes de empezar:

En las secciones siguientes se describen los distintos métodos para configurar la autenticación mutua. Puede usar el método que mejor se adapte a su entorno.

Configurar la autenticación mutua en la configuración del dispositivo

Para configurar la autenticación para el cliente gRPC directamente en la configuración del dispositivo de red:

  1. Descargue el certificado de CA raíz que se utilizará para validar el certificado del cliente en el dispositivo local que actúa como servidor gRPC.

  2. Configure el perfil de entidad de certificación para la CA raíz del certificado de cliente en la [edit security pki] jerarquía.

    Por ejemplo:

  3. Confirme la configuración.

  4. En el modo operativo, cargue el certificado de CA raíz que se usará para comprobar el certificado del cliente en la PKI de Junos. Especifique el ca-profile identificador que configuró en los pasos anteriores.

    Por ejemplo:

    Propina:

    Para cargar un paquete de certificados de CA, ejecute el request security pki ca-certificate ca-profile-group load ca-group-name ca-group-name filename bundle-path comando.

    Después de cargar el certificado, ingrese al modo de configuración y continúe configurando la autenticación mutua.

  5. Habilite la autenticación mutua y especifique los requisitos para los certificados de cliente.

    Por ejemplo, para especificar la autenticación más segura, que requiere un certificado y su validación, utilice require-certificate-and-verify.

    Nota:

    El valor predeterminado es no-certificate. Las otras opciones son: request-certificate, request-certificate-and-verify, require-certificate, require-certificate-and-verify.

    Se recomienda usar la no-certificate opción solo en un entorno de prueba.

  6. Especifique el perfil de entidad emisora de certificados que se usará para comprobar el certificado de cliente.

    El perfil de entidad emisora de certificados se configuró en el paso 2.

    Por ejemplo, para especificar el perfil de la entidad emisora de certificados denominado gnoi-client:

  7. Confirme la configuración.

Configurar la autenticación mutua mediante el servicio de administración de certificados gNOI

Puede utilizar el servicio gNOI CertificateManagement para configurar la autenticación mutua entre el cliente gRPC y el servidor gRPC en lugar de configurar los ajustes directamente en la configuración del dispositivo. Inicialmente configure la autenticación solo de servidor y, a continuación, utilice las RPC de servicio gNOI CertificateManagement para cargar los certificados de CA del cliente. Consulte Servicio de Administración de Certificados gNOI para obtener información sobre cómo cargar los certificados utilizando el servicio gNOI CertificateManagement .

El servidor gRPC solo admite un paquete de certificados de CA global para los servicios gNOI. Cuando utiliza el servicio gNOI CertificateManagement para cargar el paquete de certificados de CA, el dispositivo utiliza implícitamente la autenticación mutua. Sin embargo, debe tener en cuenta lo siguiente:

  • El CertificateManagement servicio siempre carga el paquete de certificados de CA utilizando el ca-profile-group identificador gnoi-ca-bundlereservado.

  • Si usa el CertificateManagement servicio para cargar el paquete de certificados de CA, el dispositivo utiliza implícitamente la autenticación mutua y asume la siguiente configuración, aunque no esté configurada explícitamente en el dispositivo.

  • Si el CertificateManagement servicio envía una solicitud para cargar un nuevo paquete de certificados de CA, el servidor borra del dispositivo los certificados del paquete de CA anterior y carga los nuevos.

  • Si utiliza el CertificateManagement servicio para cargar un paquete de certificados de CA y también configura la jerarquía de instrucciones [edit system services extension-service request-response grpc ssl mutual-authentication] , las instrucciones configuradas tienen prioridad.

Configurar la cuenta de usuario para los servicios gRPC

Las credenciales de canal se adjuntan al canal gRPC y permiten que la aplicación cliente tenga acceso al servicio. Las credenciales de llamada se adjuntan a una solicitud RPC específica y proporcionan información sobre el usuario que usa la aplicación cliente. Debe proporcionar credenciales de llamada en cada solicitud RPC, lo que requiere una cuenta de usuario para el dispositivo de red. El usuario debe tener una cuenta de usuario definida localmente en el dispositivo de red o debe autenticarse mediante un servidor TACACS+ que, a continuación, asigna al usuario a una cuenta de plantilla de usuario definida localmente en el dispositivo.

Para crear una cuenta de usuario:

  1. Configure la user instrucción con un nombre de usuario único e incluya la class instrucción para especificar una clase de inicio de sesión que tenga los permisos necesarios para que el usuario realice todas las acciones. Por ejemplo:
  2. Para las cuentas de usuario locales, configure la contraseña del usuario.

    Puede omitir la contraseña para las cuentas de plantilla de usuario local porque el usuario se autentica a través de un servidor de autenticación remoto.

  3. (Opcional) Configure la full-name instrucción para especificar el nombre del usuario.
  4. Confirme la configuración para activar la cuenta de usuario en el dispositivo.
  5. Repita los pasos anteriores en cada dispositivo de red en el que el cliente gRPC ejecutará RPC en una sesión gRPC.

Configurar la autorización RPC de gRPC

De forma predeterminada, los dispositivos Junos autorizan a un cliente gRPC autenticado a ejecutar todas las RPC gRPC. Puede configurar una clase de inicio de sesión de Junos para permitir o denegar explícitamente las RPC gRPC. Para especificar las RPC, configure las allow-grpc-rpc-regexps instrucciones and deny-grpc-rpc-regexps y defina expresiones regulares que coincidan con las RPC. Si hay expresiones conflictivas en las listas de permitir y denegar, la lista de denegación tiene prioridad. Si un RPC no coincide con ninguna de las listas, el RPC está permitido de forma predeterminada.

Los dispositivos Junos usan la siguiente sintaxis para especificar RPC gRPC:

donde package, servicey rpc son los nombres definidos en la instrucción respectiva del archivo de definición de proto. Por ejemplo:

Puede configurar varias allow-grpc-rpc-regexps instrucciones y deny-grpc-rpc-regexps con una o más expresiones. Escriba cada expresión entre comillas (" "). Incluya varias expresiones entre corchetes [ ] y separe las expresiones con un espacio.

Para crear una clase de inicio de sesión que defina la autorización para RPC gRPC:

  1. Configure el nombre y los permisos de la clase de inicio de sesión.

    Por ejemplo:

  2. Dentro de la clase, configure expresiones regulares para las RPC que permita la clase.

    Por ejemplo, la siguiente instrucción permite el RPC gNMI Get() y todos los RPC de servicio gNOI System .

  3. Configure expresiones regulares para las RPC que la clase denega.

    Por ejemplo, las siguientes instrucciones niegan el RPC de gNMI Set() y también niegan todos los RPC para el gRIBI servicio, así como el servicio gNOI CertificateManagement .

  4. Asigne la clase de inicio de sesión a los usuarios gRPC adecuados.

    Por ejemplo, la instrucción siguiente asigna la grpc-operator clase al grpc-user usuario.

Después de habilitar los servicios gRPC en el dispositivo de red, configure el sistema de administración de red remoto como un cliente gRPC. Para permitir que el cliente ejecute operaciones de gNOI, configure el cliente como se describe en Configurar servicios de gNOI.