Guía Completa de Autenticación y Envío de Datos

1. Modos de Autenticación Más Comunes en APIs

La autenticación es el proceso de verificar quién eres. La mayoría de las APIs requieren autenticación para proteger sus recursos. Postman soporta múltiples mecanismos de forma nativa:

  1. Basic Auth (Autenticación Básica): Es el método más simple. Consiste en enviar un nombre de usuario y una contraseña. Postman los combina, los codifica en Base64 y los envía en el header Authorization con el prefijo Basic. Aunque es fácil de implementar, es poco seguro si no se usa sobre HTTPS.
  2. Bearer Token (Token de Portador): Es uno de los métodos más populares. La API genera un token (una cadena de caracteres alfanumérica) que el cliente debe incluir en el header Authorization con el prefijo Bearer. Este token actúa como una credencial temporal.
  3. API Key (Clave de API): Consiste en una clave única que identifica a la aplicación cliente. La API puede esperar esta clave en un header personalizado (ej: X-API-Key) o como un parámetro de consulta (query parameter).

2. Configurar Autenticación Básica (Basic Auth)

Vamos a simular una petición a un endpoint que requiere autenticación básica usando el servicio de pruebas httpbin.org.

  1. Crea una nueva petición de tipo GET a la URL https://httpbin.org/basic-auth/user/passwd. En este caso, httpbin espera que el usuario sea "user" y la contraseña "passwd".
  2. Ve a la pestaña Authorization y, en el menú desplegable TYPE, selecciona Basic Auth.
  3. Seleccionar Basic Auth en Postman
  4. A la derecha, introduce user en el campo Username y passwd en Password.
  5. Al rellenar estos campos, Postman automáticamente generará el header Authorization. Puedes verlo si vas a la pestaña Headers. ¡No necesitas crearlo manually!
  6. Header de Basic Auth generado automáticamente
  7. Al enviar la petición, si las credenciales son correctas, recibirás una respuesta con código 200 OK.
  8. Importante: Para no exponer tus credenciales, guárdalas en variables de entorno (ej: {{username}} y {{password}}), como veremos más adelante.

3. Manejo de Bearer Tokens

Este es el método estándar en APIs modernas que usan OAuth 2.0 o JWT.

  1. Primero, necesitas obtener un token válido de tu API. Generalmente, esto se consigue enviando una petición POST a un endpoint de login (ej: /api/login) con tus credenciales, y la API te devuelve un token.
  2. Crea una nueva petición GET para acceder a un recurso protegido, por ejemplo: https://api.example.com/profile. Nota: esta URL es un ejemplo, deberás reemplazarla por la de tu propia API.
  3. Ve a la pestaña Authorization y selecciona Bearer Token en el menú TYPE.
  4. Configurar Bearer Token en Postman
  5. En el campo Token a la derecha, pega el token que has obtenido. Para mayor seguridad y reutilización, es recomendable guardar el token en una variable de entorno (ej: {{authToken}}).
  6. Al igual que con Basic Auth, Postman creará el header Authorization por ti, con el formato correcto: Bearer tu-token-aqui.
  7. Los tokens suelen tener una fecha de expiración. Es una buena práctica añadir tests a tus peticiones para verificar que el código de estado no sea 401 Unauthorized, lo que indicaría que el token ha expirado.

4. Ejemplo Práctico: Creación de un Recurso con JSON

Usaremos el servicio de pruebas JSONPlaceholder para simular la creación de un nuevo post enviando datos en formato JSON.

  1. Crea una nueva petición y selecciona el método POST.
  2. Introduce la URL del endpoint: https://jsonplaceholder.typicode.com/posts.
  3. Ve a la pestaña Body, selecciona la opción raw y, en el menú desplegable que aparece a la derecha, elige JSON.
  4. Configurar el cuerpo de la petición como JSON
  5. En el área de texto, escribe el objeto JSON con los datos del post que quieres crear.
{
    "title": "Mi primer post en Postman",
    "body": "Este es el contenido de mi post.",
    "userId": 1
}
  1. Haz clic en Send. La API simulará la creación del post y te devolverá una respuesta con los datos que enviaste más un id asignado por el servidor.
{
    "title": "Mi primer post en Postman",
    "body": "Este es el contenido de mi post.",
    "userId": 1,
    "id": 101
}

5. Cabeceras y Validaciones Clave al Enviar Datos

Cuando envías datos en el cuerpo de una petición, es crucial configurar bien los headers para que el servidor sepa cómo interpretarlos.

  • Content-Type: Al seleccionar raw y JSON en la pestaña Body, Postman añade automáticamente el header Content-Type: application/json. Este header es fundamental para que el servidor entienda que le estás enviando datos en formato JSON.
  • Accept: Aunque no siempre es obligatorio, es una buena práctica añadir el header Accept: application/json. Con esto, le indicas al servidor que prefieres recibir la respuesta también en formato JSON.

Además, puedes añadir tests para validar que la operación fue exitosa. Ve a la pestaña Scripts y añade código para verificar, por ejemplo, que el código de estado es 201 Created y que el nombre en la respuesta coincide con el que enviaste.

pm.test("El post fue creado exitosamente", function () {
    pm.response.to.have.status(201);
});

pm.test("El título del post en la respuesta es correcto", function () {
    const responseData = pm.response.json();
    pm.expect(responseData.title).to.eql("Mi primer post en Postman");
});
scripts en Postman para validaciones

6. Prácticas de Seguridad para tus Credenciales

Nunca debes guardar credenciales (contraseñas, tokens, API keys) directamente en tus peticiones, especialmente si compartes la colección con tu equipo.

  1. Usa Variables de Entorno: Crea un entorno en Postman (ej: "Desarrollo Local") y define variables para tus credenciales (ej: api_token). En tus peticiones, usa la variable ({{api_token}}) en lugar del valor real.
  2. Uso de variables de entorno para credenciales
  3. Tipos de Variable "Secret": Al crear una variable en un entorno, puedes elegir el tipo secret. Esto ocultará el valor en la pantalla, evitando que quede expuesto accidentalmente.
  4. No subas credenciales a repositorios: Si usas Git, asegúrate de que tu archivo de entorno con las credenciales de producción no se incluya en el control de versiones. Puedes tener un archivo de ejemplo (entorno.ejemplo.json) sin valores reales.
  5. Renovación de Tokens: Si un token se ve comprometido, revócalo inmediatamente desde el panel de la API y genera uno nuevo.