Gestión de JWT

Tokens web JSON (JWT) son un método compacto y compatible con las URL para representar afirmaciones que se van a transferir entre dos partes. Vonage utiliza JWT para la autenticación en diversas API, tanto en el front-end como en el back-end; para consultar la lista completa de las API que utilizan JWT, véase la tabla en el Autenticación guía.

Generación de JWT

La CLI de Vonage contiene un vonage jwt create que se puede utilizar para generar JWTs. Para utilizar el comando, debe tener tanto su app-id y private-key. La clave privada se genera desde el panel de control de la aplicación o ejecutando vonage apps create. Puedes encontrar más información sobre este comando en Gestión de Applications.

Al crear el JWT, puedes indicar una ruta de archivo que apunte a tu archivo de clave privada o guardar esta información para la CLI ejecutando vonage auth set (véase aquí (para más información). A continuación, el contenido de la clave privada se guardará en el .vonagerc archivo o $HOME/.vonage/config.json.

Credenciales de Vonage:

Bandera Descripción Tipo
--app-id ID de la aplicación que se va a utilizar. Se encuentra en la sección "Applications" del panel de control o se obtiene con vonage apps. Cadena
--private-key La ruta o el contenido de la clave privada. Solo se puede acceder a la clave privada cuando se crea la aplicación o cuando se regeneran las claves en el panel de control. Cadena

**JWT Options:**
Bandera Descripción Tipo
--exp Fecha de caducidad del token Numbers
--ttl El tiempo de vivir en segundos Numbers
--sub El tema del token Cadena
--acl La lista de control de acceso para el token Cadena
# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key

# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzYyODE5NDYsImp0aSI6IjBmZjcwZDNmLTAzN2EtNGY4MC04ODZjLWI3MmM3MmQyMWNmMiIsImlhdCI6MTczNjI4MTA0NiwiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.gA7jClpqaZ2OoS0iri-zGCbda4jO7C0M8mka0EnSyjlds1EeY8fNoBEx3FTXHfkkzzrj0TskrWc_dcs1wuM8Kx55c5rLQ7taVpDAYopKSc_CeeOaad8S6aWnRkTUTNeduO4aIn-0CbyRTluBYsH1RBqYBQvobuQIDEwbFw8xBgx0UfREMMN6DAWknR57eiVXN9x_oD6CGQJ1yV3025nGboeMsP9YgX4Nwc-rE2r8c1ZGwCLO81x8i19Qil3Nwu5q1nzouyavQjIw00B_TZkushnI1ufdi_GNqk-h5q2HvGkg7Pj9bVkZHFdVTO8im03JYNyJmcV83vnpjOLuCFRzxQ

Lista de control de acceso (ACL)

Si estás generando un JWT para utilizarlo con los SDK para clientes de Vonage, es posible que debas especificar una ACL, que se utiliza para especificar permisos para usuarios.

En la CLI, una ACL se configura mediante el parámetro --acl bandera. En el siguiente ejemplo, se puede ver la bandera path objeto, que contiene una lista de distintos puntos finales que se corresponden con los distintos permisos concedidos al usuario. Se puede consultar una lista completa de estos puntos finales en el Autenticación guía.

# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}'

# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ

Validación de JWT

El vonage jwt validate <token> El comando se puede utilizar para comprobar que el token esté correctamente firmado para tu aplicación, pero también permite verificar el resto de reclamaciones. Esto puede resultar útil si te encuentras con problemas de autenticación al realizar llamadas a la API.

Por defecto, se utilizarán la clave privada y el identificador de aplicación de la configuración; puede comprobar estos valores utilizando vonage auth show.

Si desea validar un token con una clave privada o un identificador de aplicación diferentes, puede utilizar la función --private-key y --app-id para sobrescribirlas.

Credenciales de Vonage:

Bandera Descripción Tipo
--app-id ID de la aplicación que se va a utilizar. Se encuentra en la sección "Applications" del panel de control o se obtiene con vonage apps. Cadena
--private-key La ruta o el contenido de la clave privada. Solo se puede acceder a la clave privada cuando se crea la aplicación o cuando se regeneran las claves en el panel de control. Cadena

**JWT Options:**
Bandera Descripción Tipo
--sub El tema del token Cadena
--acl La lista de control de acceso para el token Cadena
vonage jwt create <JWT Token> `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{"paths":{"/*/rtc/**":{},"/*/users/**":{},"/*/conversations/**":{},"/*/sessions/**":{},"/*/devices/**":{},"/*/image/**":{},"/*/media/**":{},"/*/applications/**":{},"/*/push/**":{},"/*/knocking/**":{},"/*/legs/**":{}}}' `
--exp=872827200

✅ Token was signed with the correct private key
✅ Token has not expired
✅ Application Id [00000000-0000-0000-0000-000000000000] matches [00000000-0000-0000-0000-000000000000]
✅ Subject [Alice] matches [Alice]
✅ ACL matches
  ✅ [ANY]  /*/rtc/**
  ✅ [ANY]  /*/users/**
  ✅ [ANY]  /*/conversations/**
  ✅ [ANY]  /*/sessions/**
  ✅ [ANY]  /*/devices/**
  ✅ [ANY]  /*/image/**
  ✅ [ANY]  /*/media/**
  ✅ [ANY]  /*/applications/**
  ✅ [ANY]  /*/push/**
  ✅ [ANY]  /*/knocking/**
  ✅ [ANY]  /*/legs/**
✅ All checks complete! Token is valid