Gerenciamento de JWTs

Tokens JSON da Web (JWTs) são um meio compacto e seguro para URLs de representar reivindicações a serem transferidas entre duas partes. A Vonage utiliza JWTs para autenticação em diversas APIs, tanto no front-end quanto no back-end; para obter uma lista completa das APIs que utilizam JWTs, consulte a tabela na Autenticação guia.

Geração de JWTs

O CLI da Vonage contém um vonage jwt create comando que pode ser usado para gerar JWTs. Para usar o comando, você precisa ter tanto o seu app-id e private-key. A chave privada é gerada a partir do painel do aplicativo ou executando vonage apps create. Você pode encontrar mais informações sobre esse comando em Gerenciamento de Applications.

Ao criar o JWT, você pode passar um caminho de arquivo que aponte para o seu arquivo de chave privada ou salvar essas informações para a CLI executando vonage auth set (ver aqui (para mais informações). O conteúdo da chave privada será então salvo no .vonagerc arquivo ou $HOME/.vonage/config.json.

Credenciais da Vonage:

Bandeira Descrição Tipo
--app-id O ID do aplicativo a ser utilizado. Ele pode ser encontrado na seção “Applications” do painel de controle ou é exibido com vonage apps. String
--private-key O caminho ou o conteúdo da chave privada. A chave privada só pode ser acessada quando o aplicativo é criado ou quando você regenera as chaves no painel de controle. String

**JWT Options:**
Bandeira Descrição Tipo
--exp A data e hora em que o token expira Número
--ttl O tempo de vida em segundos Número
--sub O assunto do token String
--acl A lista de controle de acesso para o token String
# 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 Controle de Acesso (ACL)

Se você estiver gerando um JWT para uso com os SDKs do Vonage Client, talvez seja necessário especificar uma ACL, que é usada para definir permissões para os usuários.

Na CLI, uma ACL é configurada usando o comando --acl flag. No exemplo abaixo, você pode ver o path objeto, que contém uma lista de diferentes pontos de extremidade que correspondem às diversas permissões concedidas ao usuário. Uma lista completa desses pontos de extremidade pode ser encontrada no Autenticação guia.

# 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

Validação de JWTs

O vonage jwt validate <token> O comando pode ser usado para verificar se o token está corretamente assinado para o seu aplicativo, mas também permite verificar as demais reivindicações. Isso pode ser útil caso você enfrente problemas de autenticação ao fazer chamadas de API.

Por padrão, serão utilizadas a chave privada e o ID do aplicativo definidos na configuração; você pode verificar esses valores usando vonage auth show.

Se você quiser validar um token com uma chave privada ou um ID de aplicativo diferente, pode usar o --private-key e --app-id opções para sobrescrevê-los.

Credenciais da Vonage:

Bandeira Descrição Tipo
--app-id O ID do aplicativo a ser utilizado. Ele pode ser encontrado na seção “Applications” do painel de controle ou é exibido com vonage apps. String
--private-key O caminho ou o conteúdo da chave privada. A chave privada só pode ser acessada quando o aplicativo é criado ou quando você regenera as chaves no painel de controle. String

**JWT Options:**
Bandeira Descrição Tipo
--sub O assunto do token String
--acl A lista de controle de acesso para o token String
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