Síntomas
Echo API comenzó repentinamente a generar diversos tipos de HTTP 401: errores no autorizados al invocar las operaciones que se encuentran bajo ella. Las operaciones Crear recurso y Recuperar recursos muestran este mensaje de error:
{
"statusCode": 401,
"message": "Acceso denegado debido a una clave de suscripción no válida. Asegúrese de proporcionar una clave válida para una suscripción activa."
}
Mientras que el resto de las operaciones se muestran
{
"statusCode": 401,
"message": "Acceso denegado debido a que falta la clave de suscripción. Asegúrese de incluir la clave de suscripción al realizar solicitudes a una API."
}
El código de respuesta HTTP esperado para todas las operaciones es 200, pero el cuerpo de la respuesta variará a medida que la API de back-end siempre haga eco de lo que envíe como cuerpo de la solicitud además de los encabezados.
-
Para obtener acceso a la API, los desarrolladores deben suscribirse primero a un producto. Cuando se suscriben, obtienen una clave de suscripción que se envía como parte del encabezado de solicitud que es adecuada para cualquier API de ese producto. Ocp-Apim-Subscription-Key es el encabezado de solicitud enviado para la clave de suscripción del producto asociado a esta API. La clave se rellena automáticamente.
-
Con respecto al error Acceso denegado debido a una clave de suscripción no válida. Asegúrese de proporcionar una clave válida para una suscripción activa, está claro que envía un valor incorrecto del encabezado de solicitud Ocp-Apim-Subscription-Key al invocar las operaciones Crear recurso y Recuperar recurso .
-
Para comprobar la clave de suscripción de un producto determinado desde el portal para desarrolladores de APIM, vaya a la página Perfil después del inicio de sesión, como se muestra a continuación.
-
Seleccione el botón Mostrar para ver las claves de suscripción de los productos respectivos a los que se ha suscrito.
-
Si comprueba los encabezados que se envían desde la pestaña Prueba , observará que el valor del encabezado de solicitud Ocp-Apim-Subscription-Key es incorrecto. Es posible que se pregunte por qué es posible, ya que APIM rellena automáticamente este encabezado de solicitud con la clave de suscripción adecuada.
-
Vamos a comprobar la definición de front-end de Crear recursos y Recuperar operaciones de recursos en la pestaña Diseño . Tras una inspección cuidadosa, observaría que estas operaciones tenían un valor codificado de forma rígida incorrecto del encabezado de solicitud Ocp-Apim-Subscription-Key agregado en la pestaña Encabezados .
-
Puede quitarlo, esto debería resolver el problema de la clave de suscripción no válida, pero aún así obtendría el error de clave de suscripción que falta.
Puede recibir el siguiente mensaje de error:
HTTP/1.1 401 No autorizado
Longitud del contenido: 152
Tipo de contenido: application/json
Fecha: Sol, 29 de julio de 2018 14:29:50 GMT
Vary: Origin WWW-Authenticate: AzureApiManagementKey realm=""https://pratyay.azure-api.net/echo
,name="Ocp-Apim-Subscription-Key",type="header" {
"statusCode": 401,
"message": "Acceso denegado debido a que falta la clave de suscripción. Asegúrese de incluir la clave de suscripción al realizar solicitudes a una API." } -
Vaya a echo APIIsettings y compruebe si está asociado a cualquiera de los productos disponibles. Si no es así, debe asociar esta API a un producto para obtener una clave de suscripción.
Los desarrolladores deben suscribirse primero a un producto para obtener acceso a la API. Cuando se suscriben, obtienen una clave de suscripción que es adecuada para cualquier API de ese producto. Si ha creado la instancia de APIM, ya es administrador, por lo que está suscrito a todos los productos de forma predeterminada.
Estos pasos te apoyarán a encontrar una solución a los errores 401.