Actualmente estoy trabajando en la construcción de un servicio de descanso que utilizarán otras aplicaciones que creamos (desde servidores de aplicaciones back-end). Mi proceso actual utiliza un único valor de clave privada para autenticar y autorizar una solicitud de API particular. Por ejemplo, si se realiza la siguiente solicitud:
curl -v -X POST https://sample.api.url/transaction \
-H "Private-Key: ThePrivateKeyStringValueGoesHERE" \
-d '{
"test":"testVal"
}'
Si ThePrivateKeyStringValueGoesHERE
existe dentro del sistema, la solicitud se procesará, de lo contrario, el servicio emitirá una respuesta 401.
Obviamente, si alguna vez se ha filtrado el Private-Key
que obtuviera, tendría acceso a la API, sin embargo, si alguna vez ocurriera esto, podría emitirse una nueva clave y la aplicación podría actualizarse para usar la nueva clave (sin embargo, este proceso necesitaría se realizará cambiando manualmente la clave dentro del archivo de configuración de la aplicación, ya que no habría lógica para solicitar una nueva clave).
¿Hay alguna preocupación que deba tener en cuenta antes de seguir por este camino? ¿O esto suena como un enfoque razonable?