Uso de JWT simple para la autenticación de API orientada al público

2

Estoy buscando métodos de seguridad para las API. El uso de tokens de acceso JWT después del inicio de sesión del cliente con usuario / contraseña funcionará bien para las aplicaciones web internas utilizando nuestras propias API. Sin embargo, estoy analizando cómo debemos proteger nuestras API externas que otros sistemas / clientes pueden usar para consumir datos.

Por lo general, veo servicios de API que proporcionan un client_id y client_secret. Sin embargo, esto termina siendo usado en OAuth2, que preferiría no tener que implementar ya que no estoy seguro de una implementación exitosa y segura de una especificación tan grande y tampoco quiero depender de auth0.

Creo que si utilizo JWT simple para las API externas consumidas por las aplicaciones, tendré que tener un tipo de identidad diferente al del usuario / contraseña. Como una identificación y una clave segura. ¿Qué sería lo mejor?

    
pregunta Edward 19.05.2017 - 04:19
fuente

1 respuesta

1

Sí, un token simple es suficiente para consumir de forma segura una API pública.

Estructura de este token:

  • una parte única o debe ser única en sí misma (esta será la identificación)
  • una parte aleatoria

Solo la persona que tiene el token puede acceder a la API. En cada solicitud a la API, envía el token con ella. Su API valida el token y devuelve los datos si es válido.

Pero, la pregunta difícil es ¿cómo se obtiene este token?

Necesitará una página de autenticación en algún lugar. Una vez que el usuario se haya autenticado, puede permitirle crear / descargar un token de API. Luego, puede entregar este token a cualquier persona o cualquier aplicación que desee y ellos podrán acceder a sus datos.

OAuth2 automatiza principalmente el proceso de obtención de este token para que el usuario no tenga que realizar pasos manuales como copiar y pegar para compartir el token.

Nota

Un juego que jugué en el pasado usó este esquema para su API pública: Guild Wars 2. Al acceder a su cuenta en el sitio web, un usuario puede crear y copiar su token, luego dárselo a otras aplicaciones que analizarían su cuenta. información de la cuenta.

    
respondido por el Gudradain 19.05.2017 - 23:32
fuente

Lea otras preguntas en las etiquetas